- 论坛徽章:
- 1
|
说说您的Linux内核源码的学习经验和感受
1, 动手编译内核 2, 精读《Linux内核设计与实现》此外就凭自己兴趣选择吧。常常有人问:我想学习内核,需要什么基础吗?Linus Torvalds本人是这样回答的:你必须使用过Linux。 我想下面几个基础可能还是需要的,尽管不一定必需:1, 关于操作系统理论的最初级的知识。不需要通读并理解《操作系统概念》《现代操作系统》等巨著,基本概念要知道啊,进程是个什么东西,CPU和系统总线、内存的关系(很粗略即可),等等。2, 关于C语言。不需要已经很精通C语言,只要能熟练编写C程序,能看懂链表、散列表等数据结构的C实现,用过gcc编译器,就可以了。当然,如果已经精通C语言显然是大占便宜的。3, 关于CPU的知识。这块儿可以在学习内核过程中补,但这样的话你就需要看讲解很详细的书,比方《情景分析》。你是否熟悉Intel 80386 CPU?尝试着回答这几个问题来判断一下:1)说出80386的中断门和陷阱门的区别;2)说出保护模式与实模式的区别;3)多处理器机器上,普通的读- 改-写回一块内存这样的动作,为什么需要特殊的手段来保护。等等。讲解基于其它CPU的Linux内核的书,目前好象只有一本《IA64Linux内核: 设计与实现》──也还是Intel的,其它都是讲解基于IA32的。
开发人员对系统了解的越多,越能开发出高效的程序,同时对排查故障也有很大的帮助
|
|