Linux内核学习笔记:前言
虽然学了很多驱动方面的知识,也看过了《linux内核设计与实现》,对linux内核有了一个大体的了解。但总觉得有些概念还是很模糊,比如内存管理中的地址空间问题,还有自旋锁的问题。我想毕竟《linux内核设计与实现》只是对linux内核做了一个大概的介绍,具体的知识没有细讲,如果想了解大概那么书中的内容就足够了,如果想深入下去那么还得找其他的书来读。《深入理解linux内核》是好多人都会推荐的一本学习linux内核的经典著作。这本书其实早就买了一直放在书架上没有看。最近拿来大体上翻了一下感觉讲的还真的不错,前言的一句话更是让人精神一振:“读完这本书,你将会成为内核的编程高手”。这不明摆着勾引我去读他吗。这么经典的书,读完不管是否能成为内核高手,但是总会有很多收获的。所以我决定将他读完。在我大体浏览这本书的时候发现这本书是按照x86架构来讲,涉及到的CPU硬件都是intel的体系结构。这对于微机原理险些挂科的我来说的确有难度,不过我想这也不是什么难事,涉及到硬件的部分我就向ARM体系结构上靠,在arm的架构下分析相关代码,这样应该会简单一下,毕竟对ARM应该是很熟悉了。《深入理解Linux内核》大体上分为以下几个部分:
(1)与进程相关的内容,包括进程调度,进程定义,信号等(2)与文件系统相关,包括虚拟文件系统,磁盘IO,块驱动程序等
(3)内核同步,包括内核同步技术,中断的下半部分。
(4)中断与异常,包括,中断机制以及系统调用异常等
(5)内存管理,包括内存分配技术,页回收技术,进程的地址空间等
(6)时间管理,包括内核延时技术
(7)驱动程序
这些方面都是一个操作系统内核的基本功能,其中我感觉内核同步技术对驱动程序的开发尤其重要,因为在内核编程时刻需要考虑并发与静态。所以这块当作重点来看。其他的一些也比较重要,理解内核各个方面实现的细节对驱动程序的编写肯定有好处。接下来的一段时间就慢慢的啃这本书了,无论读几遍吧,读懂为止。在阅读这本书的过程中,将自己学到的知识写下来总结一下,对于知识的理解很有好处。所以我决定,每当读完一部分内容就写一个学习总结。一定要坚持下来,争取在两个月内将这本书吃透。