Linux内核学习(一)

前言:

大家好,今天给大家分享一下我个人学习Linux内核的总结,由于新的内核版本太过于庞大,说实话,啃不动,然借鉴前人的建议,故开始从早期的Linux0.11版本开始学习。

为了鲜明的对比早期版本的精简和后期版本的复杂,我们大体从它的目录来做一个对比就可知了:

  • 0.01版本内核目录:

042cf0d12f831599d2c2aa04abd750f5.png
  • 0.11版本内核目录:

055f5661abb69022d58e103e1268d72b.png

前期的版本差别不大,但随着时代的发展,内核功能也扩展的越来越多,所以就变的复杂起来了:

6fc6c721f033801f8da143f8f70e27d7.png
2.6内核版本目录

上面内核版本的源码可以从下面下载:

  • 在线浏览早期内核源码:

http://lxr.linux.no/linux-old

0.11版本的内核源码下载:

https://github.com/KrisJiaqiXie/linux_kernel_study

好了,下面我开始大体先讲述linux内核的整体框架图:

一、操作系统的框架:

在我们平时或多或少都接触到不同的操作系统,他们整体框架是差不多的,我们先从大体框架来看,若要学习某个系统,再去探其细节:

  • 操作系统的结构框架:

3fc944098ba4589a0051a157c781d51d.png
操作系统的结构

有了这个大体认识后,我们来看一下这里的操作系统服务层:

  • 这里你可以把它看作是一个快递中转站,它把用户态转换成内核态(具体的实现是,使用特定的参数值执行系统调用指令,这样让cpu从用户态切换到内核态!);然后操作系统根据这个具体的参数值调用特定的系统调用服务程序(特定的服务程序需要底层的操作函数来支持实现);最后在完成了应用程序的服务后,操作系统又会从内核状态切换到用户状态,继续执行后面的指令!

这里先大体对这个服务层有一个认识就行!

0.11版本Linux内核的组成:

在0.11版本的Linux,它主要是由五个模块组成:

  • 进程调度模块

  • 进程间通信模块

  • 内存管理模块

  • 文件系统模块

  • 网络接口模块

54646e795ae7c1cd539d2cfb00e740ba.png
图片参考Linux内核0.11完全注释

总结:

好了,今天我们先大体分享这么多,后面具体的源代码和模块机制,我再花时间总结。

文章资料相关参考:

  • Linux内核0.11完全注释

  • https://www.bilibili.com/video/BV1tQ4y1d7mo?spm_id_from=333.337.search-card.all.click

对了,个人朋友圈,已经开放,坑位有限,时常分享一些非技术性的东西,感兴趣的,可以来唠唠嗑,交个朋友;技术方面的也行,大家相互学习,共同进步:三人行,必有我师焉!

acc79cfee66fe723acad1f1212cd8c7e.png
我扫你,还是你扫我?

猜你喜欢

转载自blog.csdn.net/Dada_ping/article/details/125139493