【文章推荐】CSDNhttps://mp.csdn.net/mp_blog/creation/editor/127774142
为了让大家建立知识体系,零散的讲可能会让读者觉得有点难以接受,晦涩。所以本文呢,整体的讲解下内核重要的5个子系统。首先一张熟悉的图来说明GNU/linux的基本体系结构:
体系的上部分是用户(或应用程序)空间,这是用户应用程序执行的地方。用户空间之下是内核空间,Linux 内核正是位于这里。
Linux 内核可以进一步划分成 3 层:最上面是系统调用接口,用户程序通过软件中断后,调用系统内核提供的功能,这个在用户空间和内核提供的服务之间的接口称为系统调用,它实现了一些基本的功能,例如 read 和 write,这些都是系统调用;
系统调用接口之下是内核代码,可以更精确地定义为独立于体系结构的内核代码,这些代码是 Linux 所支持的所有处理器体系结构所通用的;
内核代码之下是依赖于体系结构的代码,构成了通常称为 BSP(Board Support Package)的部分,这些代码用作给定体系结构的处理器和特定于平台的代码,依赖特定硬件结构。
然后我们来了解下Linux内核的五个子系统:
Linux内核主要由进程调度(SCHED)、内存管理(MM)、虚拟文件系统(VFS)、网络接口(NET)和进程间通信(IPC)5个子系统组成,每个都很重要,缺一不可。如下图所示。
Linux内核的组成部分与关系
进程调度
进程调度控制系统中的多个进程对CPU的访问,使得多个进程能在CPU中“微观串行,宏观并行”地执行。进程调度处于系统的中心位置,内核中其他的子系统都依赖它,因为每个子系统都需要挂起或恢复进程。