linux内核没有集成对调试器的支持。
指令级的KDB(kernel debudgger 内核调试器)
源代码级调试器kgdb(kernel GNU DEBUGGER) 内核GNU调试器
udev 工作
1.内核中的sysfs支持,sysfs是Linux设备模型的重要组成部分。位于内存中,在启动时被挂载在/SYS目录下
2.一套用户空间守护程序和实用工具 ,如udevd 和udeinfo
3.用户自定义的规则,位于etc/udev/rules.d
如有两驱动器,一个usb dvd驱动器 另一个usb cd-rw驱动器。根据热插拔设备的顺序不同,一个命名为dev/sr0,l另外一个dec/sr1
在没有udev情况下,必须这样区分对应的设备。但是有udev后,不管什么顺序都能区分
一个 命名 dev/usbdvd DVD
一个命名dev/usbcdrw CD_RW
首先,从sysfs相应的文件中提取产品信息。假定targus Dvd驱动器被分配的设备节点为
/dev/sr0
/dev/sr1
使用udevinfo 可收集的设备信息:
bash>udevinfo -a -p /sys/block/sro
bash>udevinfo -a -p /sys/block/sr1
...
looking at the device chain at
'/sys/device/pci000:00/000:00:ld.7/usb1/1-3':
bus=="usb"
id=="1-3"
sysfs{bconfigurationvalue}=="2"
...
sysfs{idproduct}=="0302"
sysfs{idvendor}=="0dbf"
sysfs{manufacture}=="addonics"
sysfs{maxchild}=="0"
sfsfs{product}=="usb to IDE cable"
....
根据收集到的产品信息标识设备并且添加到udev命名规则
创建/etc/udev/rules.d/40-cdvd.rules
命令从shell脚本中挂载设备
mount/dev//usbdvd/mnt/dvd
测试语法规则是否错误,用
/sys/blcok/sr* 运行udevtest
内核的结构化设备模型在用户空间就称为 sysfs
procfs是查看内核的一个通用视窗。而sysfs则对应特定的设备模型。
kobject 封装了一些共用对象属性,通常嵌入在更大的数据结构中
bus_register()为/sys/bus增加一个相应的的入口
device_register() 为sys/devices 增加相应的入口
3个结构体
bus_type 总线
device 设备
device_driver 驱动程序
混杂设备驱动 (RTC驱动程序)
bash>modproble rtc
bash>ls -lr /sys/class/misc
bash>ls -1/dev/rtc