chapter3的坑

1.scull_load中

major=$(awk "\$2==\"$module\" {print \$1}" /proc/devices)

就是 将 \\$2 变成 \$2  ,\\$1 变成 \$1

开始怀疑是没安装awk,所以

sudo apt-get install original-awk,后来没法卸载,也不知道是不是这个awk要求特殊些导致的。


2.不能将cdev包含在全局变量结构体中,因为这样,内核没法kfree包含cdev的结构体,这个结构体在data区(X86体系)。导致的结果就是,你在用户层调用close函数的时候,系统不会执行 file_operations中的 .release对应的函数!

你可能感兴趣的:(chapter3的坑)