Recent Posts
-
November 25, 2011
让vc和gcc生成预编译后的源文件
下载LOFTER我的照片书 有时一些宏很复杂,代码看起来不是很直观,可以配置vc让他生成经过处理后的吧宏替换后的代码。GCC也有类似的代码吧在 “工程属性” —〉“C/C++”—〉“Project Options” 手工填入/P,然后rebuild,会产生于.cpp同名的.i文件,在这里宏被展开了。vc2008中, 可以用上面安格办法,也可以直接在“c/c++” 里面的“Preprocessor” -> “Generate Preprocessed...
-
October 20, 2011
Linux内核镜像文件vmlinux 和压缩格式bzimage格式分析
组内搞培训,根据某牛人的blog,学习一下linux初始化过程。我都快要走人了,也给我分了一下任务,唉。内核镜像文件格式解析=================1、 需要使用的命令================readelf -- 显示elf格式文件信息 。 反汇编等objdump -- 显示object格式文件信息 例如反汇编objcopy -- 复制object文件段落,生成新的object文件。 可用于copy remove 一个object文件的某个段。nm ...
-
October 08, 2011
我这五年都干了些什么
决定离职了,明天到了公司跟leader提出申请吧。 非常非常非常快的,五年一下子就过了,时间真是过得飞快啊!五年都够我再读一次大学了,好像也什么都没学会。 小心翼翼地写个总结,以便n年以后翻翻我的博客的时候,还能够看到我当年都是怎么过来的,花花年华都是怎么被我浪费掉的。我层次比较低,记个流水帐,什么体会什么的写不出来。 一到公司,被分到一个网页测试小组,项目已经是后期了,我进入应该是一个星期还是两个星期,然后项目就结束了。我唯一记得的事情是这个项目我们组长偷偷的使用了...
-
July 21, 2011
字符串匹配的boyer Moore algorithm和高效小巧的 sunday algorithm
下载LOFTER我的照片书 |BM 算法最坏的情况可能比较字符的次数没有KMP算法好,但他最好的时间复杂度可以达到O(n/m) 要比KMP好,在字符集比较大的应用场合一般情况下好像是KMP性能的3到5倍? 说是是这个BM已经是字符匹配算法性能比较的基准了,算比较的实现了吧,很多文本编辑器的“查找”功能都是使用的这个。他算法从字符串的末尾向前面开始比较:abcdaddddddddddddddddd abcde ^比如像上面这个字符串,先比较最后一个字符e 和 a,然后不匹...
-
May 24, 2011
Linux 设备驱动模型和scsi磁盘的设备的发现和移除
“The Linux Kernel Driver Model”============================== 由 bus 、driver 、device 、class 等部分组成,是linux为各种各样的总线和设备搞的一个统一模型。实现了支持现代计算机的设备热拔插模型("plug and play", power management, and hot plug),满足英特尔和微软倡导的ACPI规范的各种各样的设备应该都可以通过这个模型表现出来。 这个模型的定义了一系列...
-
February 01, 2011
Bash的按tab键自动补全(自动完成)的原理与扩展
用过bash的人,可能都对TAB自动补全功能有印象吧,按一下“TAB“键就自动帮你把命令或者文件名补全,确实好用。这个应该是bash解析用户输入的时候,加上这个自动补全的功能的。方便的地方是bash提供的内置命令complete允许你对这个功能进行自定义扩展。 比如complete -F _my_host my_ssh 就会指定 my_ssh这个名字的自动完成由 _my_host 这个函数去处理比如我在 .bashrc 后面加上下面这个代码之后----------------------...
-
January 18, 2011
Kdb和kprobe的兼容问题
下载LOFTER我的照片书 |想到服务器上去用kprobe调试一下结果发现这2.6.9的内核上面,kdb和kprobe是有冲突的。/* 默认的kdb patch和 kprobe有冲突 要修改这个才能cblade版本里使用 kprobe一开始以为是linux的crash dump 和kdb注册的panic事件通知有关。内核的panic注册函数都放在panic_notifier_list这个全局链表里面,当内核panic的时候,他就调用这个链表下面的注册函数,linux cras...
-
January 17, 2011
Linux scsi target framework (tgt) 虚拟磁盘scsi驱动
一个scsi驱动,可以让linux当作scsi的指令的接受机使用。比如虚拟机DVD的,虚拟磁带,iscsi主机等。听说准备被整合进2.6.38版本的内核去了。要写虚拟scsi设备驱动的,可以参考一下实现。 主页是http://stgt.sourceforge.net/ ,支持设备和虚拟设备很多的:Tgt supports various target driversiSCSI target driver for Ethernet NICsiSER target driver for I...
-
December 09, 2010
使用crash工具分析linux 的crash dump文件的常用命令
Crash 工具主页http://people.redhat.com/anderson/(1) “ crash + dump 文件 + 调试版本内核“命令,启动crash例如:crash vmcore vmlinux-2.6.18-92.EL.fulldebug注意这个内核应该和你dump的机器的内核相对应,这里还可以指定 system.map的符号文件等。(2) bt 命令查看调用堆栈,估计的最有效的一个命令的了。bt + pid 列出相应的进程堆栈bt -f 会列出所有堆栈里面数据 ...
-
December 01, 2010
Linux网络协议栈:cisco vpn client实现代码和linux抓包接口的学习
这几天在做一个网络包相关的bug,都是通过 Linux上的思科vpn客户端连到客户的服务器上面去测试的,抓包测试的时候,才发现wireshark没有办法把cisco vpn client接口的返回包抓下来,出去的包是可以抓的到的。bug终于有点头绪了,回来没事做到csdn逛了逛,想起这个问题来,就找了cisco的vpn client的代码,看看能不能发现是什么问题,说Linux的网络的,发现两本书好像讲的不错“Understanding_Linux_Network_Internals.ch...