蓉杠学习网

linux内核源代码学习,linux内核源代码分析

大家好,今天小编关注到一个比较意思的话题,就是关于linux内核源代码学习问题,于是小编就整理了2个相关介绍Linux内核源代码学习的解答,让我们一起看看吧。

  1. 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点解答对大家有用。

[免责声明]本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。 转载请注明出处:http://www.rongung.com/post/19650.html

分享:
扫描分享到社交APP