大家好,今天小编关注到一个比较有意思的话题,就是关于linux内核源代码学习的问题,于是小编就整理了2个相关介绍Linux内核源代码学习的解答,让我们一起看看吧。
关于linux内核原理的入门书籍有哪些值得推荐的?
没必要看linux,除非你做linux开发,学习的话操作系统那本经典的用minix做范本的书才是精华,不过单看会觉得有点枯燥。辅助找本自己从头写一个操作系统之类的书,动动手会比较容易理解。基础打好后,再看linux内核的书,什么都可以,都不会感觉太难。操作系统基础在大学里面一般都会学,那么多年没什么太大变化,那个才是精华,一个学期是不够的,多看几遍,每年都能上升到一个新高度。
谢小编邀。
@云瑄软件回答的已经很全面了,他推荐的几本书都是内核入门经典中的经典。
我再推荐几本接触过好书:
《linux设备驱动程序》 Jonathan Corbet著,讲内核设备驱动开发,对内核抽象层次,设备原理讲的很细,还介绍了不少内核开发调试的技巧。
《linux内核设计的艺术》中科院新设计团队著,这本书褒贬不一,但是书中对于一些内核的算法数据结构讲的很详细,对内核bootloader也讲了很多,对我帮助不少。
另外强烈推荐先过一遍《深入理解计算机系统》,这本书深入浅出,可以说是基本功中的基本功了。
最后的最后,如果想自己开发内核,推荐一个网站:osdev.org,这个网站几乎可以找到所有内核开发的资料。
共勉。
需要多久才能看完linux内核源码?
Linux内核分为CPU调度、内存管理、网络和存储四大子系统,针对硬件的驱动成百上千。代码的数量更是大的惊人。看看最新的关于内核代码量的统计。
从图中可以看出,2020年1月份,内核的代码量大约是2千6百万行。回忆你一下你一天能看懂多少代码?反正我自己觉得自己一辈子都看不完Linux内核的代码。
其实阅读代码无非是为了学习代码中有用的内容,所以,我们没有必要阅读所有的代码,只需要阅读关键的代码,或者说对自己有用的代码。
由于内核分为四大子系统,因此我们可以选择自己相关的子系统来阅读。比如你是做存储相关的,可以阅读存储栈相关的代码,如果你是做网络的,你可以做网络相关的代码。
对于代码阅读方法从两个角度来介绍,一个方面是需要选择一个比较有效阅读代码的工具,这样能辅助我们来理解代码;另外一个方面是先阅读基础代码,比如链表,自旋锁等等。
当然,Linux内核确实博大精深,想要一下子搞明白是不可能的。
有些人推荐先阅读一些低版本的内核,比如0.01版的,总代码量才1万行左右。阅读这个代码大概一个月应该能比较清晰了。但是,改代码与现在的代码差异巨大,阅读后可以理解基本思想,但对理解现有代码的帮助不是特别明显。所以,还是要根据自己的需求来选择性的阅读比较好。
linux 0.11的内核源码,结合下面这本书,我花了大概一个寒假(1个半月),看了一遍。
然而,现在的内核已经膨胀的不成样子了,以还不算最新的linux-4.9.229为例:
整个内核源码一共约 801M:
驱动代码占了大概一半,大约407M:
体系相关的代码大约164M:
网路子系统相关的代码29M:
文件系统相关的代码38M:
linux内核核心代码大约7.7M:
但是就这7.7M,其实你要完全看完看懂也不容易。linux内核代码涉及c语言、硬件组成原理、操作系统、数据结构和算法等,这些基础知道你都具备了吗?如果没有具备,即使看完linux内核源码,你也看不懂liux内核的精髓。
到此,以上就是小编对于linux内核源代码学习的问题就介绍到这了,希望介绍关于linux内核源代码学习的2点解答对大家有用。