读书笔记(1)

Linux内核源代码目录结构——P56

Linux内核的编译与加载,即Makefile和Kconfig——P61

Linux中GNU C语法,比如一些语句格式,typeof(), 标号元素, 当前函数名 __FUNCTION__, __func__,特殊属性说明,do{} while(0)

看目录树 tree -a

模块 modinfo, remod, lsmod, 模块参数,module_param(book_name,charp, S_IRUGO)——P87

如 insmod book.ko book_name="Gook Book"

看日志文件 /var/log/messages

MODULE_ALAIS(alternate_name) 别名

MODULE_DEVICE_TABLE所支持的设备表

模块的计数MOD_INC_USE_COUNT,MOD_DEC_USE_COUNT try_module_get ,module_put 等等——P90

文件系统中创建打开定位,一些打开标志,访问权限,比如O_RDONLY, S_IRUSR等等——P93

Linux文件系统目录结构——P97

file结构体——P99

inode结构体——P100

devfs设备文件系统

首先创建设备,注销设备为:register_chrdev(XXX_MAJOR,DEVICE_NAME,&XXX_fops); unregister_chrdev(XXX_MAJOR,DEVICE_NAME);

然后创建撤销设备文件:devfs_register(), devfs_unregister()

udev 和 dev的区别:undev完全在用户态下工作,比如命名策略,权限控制和事件处理都是在用户态下的,而dev将策略放在了内核空间,比如限定了第一个 dev/girl0 dev/girl1 等等。理想的两个打印机命名方式采用他们的序列号或者其他标志信息,但是devfs无法做到这一点,udev却可以

sysfs文件系统把连接在系统上的设备和总线组织成为一个分级的文件,他们可以由用户空间存取,向用户空间到处内核的数据结构以及它们的属性。——P104

bus_type,device_driver,device描述总线,驱动,设备,这3个结构体在 include/linux/device.h中,以及各个attribute,bus_attribute,driver_attribute,device_attribute——P109

udev的规则文件和组成——P111  其中udev的轻量级版本为mdev,它已经集成于busybox

udev中匹配关键字:ACTION,KERNEL,BUS,SYSFS,SUBSYSTEM等等

赋值关键字:NAME,SYMLINK,OWNER,GROUP,IMPORT等等

mdev -s ——P113



你可能感兴趣的:(数据结构,Module,读书,makefile,linux内核,symlink)