Recent Posts
-
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...
-
October 08, 2010
Linux 内核的virtio框架
VirtIO 是一个用来实现“虚拟IO”的通用框架,典型的用于虚拟机上面实现虚拟的pci,网卡,磁盘等虚拟设备,kvm等都使用了这个技术。大概浏览了一下相关的内核代码,这个virtio应该是专门应用于那种“半虚拟化?(部分虚拟化)”的虚拟机的来虚拟各种通用io设备的,好像不是很适合单纯的用来虚拟设备。参考资料Virtio:针对 Linux 的 I/O 虚拟化框架 http://www.ibm.com/developerworks/cn/linux/l-virtio/index.html?c...
-
May 06, 2009
Gdb调试程序常用命令
记得用gcc 加-g 参数编译程序,以便生成的程序中带有调试信息。1。gdb载入程序gdb a.out2。运行程序run 加程序需要的参数3。设置源代码目录gdb directory /代码目录4。查看函数名字用 infogdb info functions类似的有gdb info files查看函数所在的源代码行数gdb info line 函数名字(gdb) info line *0xb6779198(gdb) list *0xb67791985。下断点(gdb) br net.c:...
-
January 20, 2009
虚拟光驱学习
这段时间,看了很多代码和图书,包括一个Linux平台的虚拟cd驱动,一个wiindows平台的虚拟光驱驱动,《Linux设备驱动》等书关于 block device驱动的描述,网上pdf文档“Guide to the implementation of SCSI in Linux 2.6.X kernel”,等等。还有一个实际项目中Linux虚拟光驱的实现代码。 其实做一个虚拟光驱也不是很复杂。你按照系统规范实现一个block device 驱动或者scsi底层驱动。然后系统自动会在相应的...
-
July 19, 2006
闲着没事做了个歌词插件
在5Q下载了些 《走遍美国》的MP3,虽然有很多英文的LRC格式的歌词文件,但显示不出来。想到有很多歌词插件 ,于是也想自己动手做一个,还可以练练手。 刚好看到Kmplayer论坛上有人提到歌词文件这个问题,在Kmplayer主页找了找,只看到Kmplayer支持Winamp标准的插件的,象 MiniLRC这类支持Winamp标准的 歌词插件论坛上也有人说可以在Kmplayer 中使用。但是没有找到什么编程相关的资料。在kmplayer的安装目录下SDK里面倒是有一个例...