LKD2:

第二章 从内核出发
1. 内核就如性格怪异的猛兽,但并非不可驯服,让我们来驾驭他
2. 不要和/usr/src/linux的目录混在一起
3. 使用补丁:patch -p1<../patch-x.y.z
4. CONFIG_FEATURE来标识。二选一,或者三选一(yes,no,module)
5. make config, make menuconfig, make xconfig, make gconfig, make defconfig,然后就是make
6. make -jn, 或者用distcc,ccache等工具。
7. 配置grub或lilo等。
8. make modules_install
9. System.map的作用
------------------------------------------------------
与编译应用程序的不同,导致内核成了一只性格迥异的猛兽
1. 没有C库
 -先有鸡还是先有蛋的问题
 -C库太大且效率不能接受
 -printk
2. GNU C
 -inline 函数:static inline void dog()
 -内联汇编
 -likely 和 unlikely
3. 缺乏内存保护机制
 -内核错误会导致oops
 -内存都不分页
4. 浮点数很难使用
 -保存和恢复浮点寄存器外,还有...
 -别这么做了,不要在内核中使用浮点数
5. 内核只有很小的定长栈
 -一般是2page
6. 注意并发和同步
 -(抢占多任务,多处理器系统,中断的异步性,内核可抢占)
 -自旋锁,信号量,原子操作
7. 可移植性
 -大部分C代码应该与体系结构无关
 -字节序,对齐,不假定字长,页面大小等。

8. 作者最后的总结
内核不外乎是一个程序,它与我们司空见惯的程序没有多大区别,不必望而生畏:
直面它,呼唤她,摆布她。
必须要全身心的投入,阅读代码,剖析代码,并毫不气馁。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值