第二章读书笔记
git工具使用获取内核代码
本质:git实际上是一种开源的分布式版本控制工具
从主开发者的角度(假设主开发者不用开发代码)看,git有以下功能:
1:查看邮件或者通过其它方式查看一般开发者的提交状态。
2:打上补丁,解决冲突(可以自己解决,也可以要求开发者之间解决以后再重新提交,如果是开源项目,还要决定哪些补丁有用,哪些不用)。
3:向公共服务器提交结果,然后通知所有开发人员。
优点:
1 适合分布式开发,强调个体。
2 公共服务器压力和数据量都不会太大。
3 速度快、灵活。
4 任意两个开发者之间可以很容易的解决冲突。
5 离线工作。
缺点:资料少(起码中文资料很少)。学习周期相对而言比较长。不符合常规思维。代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。
内核源码结构
主要介绍有:
Documentation:这个目录下面没有内核代码,只有很多质量参差不齐的文档,但往往能够给我们提供很多的帮助。
arch:所有与体系结构相关的代码都在这个目录以及include/asm-*/目录中,Linux支持的每种体系结构在arch目录下都有对应的子目录,而在每个体系结构特有的子目录下又至少包含3个子目录。
kernel:存放支持体系结构特有的诸如信号量处理和SMP之类特征的实现。
lib:存放体系结构特有的对诸如strlen和memcpy之类的通用函数的实现。
mm:存放体系结构特有的内存管理程序的实现。
等等
编译内核
make config:遍历所有配置项,并让用户选择
make deconfig:按默认的配置
make oldconfig:先将/boot
目录下的配置文件写进.config
文件中,采用的是注释的形式写进新增加的功能。
内核开发特点
1 无libc库/标准头文件
2 必须使用GNU C
3 没有内存保护机制
4 难以执行浮点运算
5 每个进程只有一个很小的定长堆栈
6 必须时刻注意同步和并发
7 考虑可移植性的重要性
总结:
本章主要介绍的是关于linux内核的一些基本工具的使用以及怎么配置的问题,也为总体介绍了Linux的一些主要特点以及在使用中经常用到以及关注到的小问题
对于linux内核,C编出的代码模式总体给予了一定的介绍,为我们以后的学习打下必要的基础