大家好,今天小编关注到一个比较有意思的话题,就是关于linux内核源代码学习的问题,于是小编就整理了2个相关介绍Linux内核源代码学习的解答,让我们一起看看吧。
Linux的内核源代码是怎么被编译的?
Linux 内核源代码编译流程大致如下:
安装编译环境:包括 GCC 编译器、GNU Binutils、make 工具等。
下载内核源代码:通过 git 等工具从内核代码仓库下载最新的源代码。
配置内核:使用 make config、make menuconfig 或 make nconfig 等命令配置内核选项,如硬件支持、文件系统等。
编译内核:执行 make 命令,编译内核源代码。
安装内核:执行 make modules_install 和 make install 命令,将内核安装到系统中。
以上是 Linux 内核源代码编译的大致流程,但实际情况可能有所不同,具体取决于您的系统版本和需求。
需要多久才能看完linux内核源码?
linux 0.11的内核源码,结合下面这本书,我花了大概一个寒***(1个半月),看了一遍。
然而,现在的内核已经膨胀的不成样子了,以还不算最新的linux-4.9.229为例:
整个内核源码一共约 801M:
驱动代码占了大概一半,大约407M:
体系相关的代码大约164M:
网路子系统相关的代码29M:
文件系统相关的代码38M:
linux内核核心代码大约7.7M:
但是就这7.7M,其实你要完全看完看懂也不容易。linux内核代码涉及c语言、硬件组成原理、操作系统、数据结构和算法等,这些基础知道你都具备了吗?如果没有具备,即使看完linux内核源码,你也看不懂liux内核的精髓。
老铁,我也在学习linux内核,我说一下我的想法吧。
我曾经很早的时候就想学习linux内核了,当时准备啃书,并对着代码看,热情了一阵子,可由于太深奥就不了了之了。
最近工作原因,涉及到内核文件系统的研究,重新学习内核,感觉比较容易弄懂了。为了避免走弯路,我建议:
1. 不要一来就对着内核源码啃。内核源码压缩后现在都一百多M了,有生之年你也别想全看完弄懂,各种算法,诡异的写***弄晕你。
2. 先找一些内核实现原理的书来大致看一遍,这个时候不必深究细节,不懂的就做一些问题清单记起来。
3. 内核由几大模块构成,你要大概了解它们的相互关系。例如进程中就记录了打开的文件信息,进程的地址空间主要内存管理模块来分配和管理内存。
4. 选择一个模块作为切入点,通过实验对内核下手!我是从文件系统这块开始的,比较简单这次没有搞晕我了。
5. 必须动手实验,光看书是没用的!!!你亲自通过加打印,或断点调试跟踪代码调用路径,通过自己写代码实现一些功能后,你自己会豁然开朗,信心大增了!
希望我的回答对你有用!
我敢说,没有一个人把最新linux内核代码看完过,即便linus本人,也不会把内核每个部分了解得很清楚,太庞大了。
作为一个读过2.4代码和ucos II内核的过来人,读代码的目的是什么?是为了了解一个内核各个模块是如何具体实现的,比如内核如何引导的,如何从实模式切换到虚模式,内存如何分配管理的,文件系统是如何实现的,进程是如何管理调度的,中断又是如何实现的,驱动模型是什么样子。学习内核,最好结合前人的分析、一些书籍,在自己结合代码看,这样梗高效,目的是为了理解机制,和代码实现,不需要理解每行代码。国内计算机专业,理论和实践脱节了,尤其操作系统这类基础课,讲了进程管理,却不会讲具体如何实现,不过大学老师没几个能结合实际内核讲,都是照本宣科。
建议先读读ucos,代码量小,可以很深入了解进程和内存管理的实际实现,和各种锁的实现机制,尤其它进程调度算法,太经典了。
到此,以上就是小编对于linux内核源代码学习的问题就介绍到这了,希望介绍关于linux内核源代码学习的2点解答对大家有用。