Linux内核系统篇

您所在的位置:网站首页 请选择linux内核的主要组成部分 Linux内核系统篇

Linux内核系统篇

2024-07-13 19:52| 来源: 网络整理| 查看: 265

为了让大家建立知识体系,零散的讲可能会让读者觉得有点难以接受,晦涩。所以本文呢,整体的讲解下内核重要的5个子系统。首先一张熟悉的图来说明GNU/linux的基本体系结构:

体系的上部分是用户(或应用程序)空间,这是用户应用程序执行的地方。用户空间之下是内核空间,Linux 内核正是位于这里。

Linux 内核可以进一步划分成 3 层:最上面是系统调用接口,用户程序通过软件中断后,调用系统内核提供的功能,这个在用户空间和内核提供的服务之间的接口称为系统调用,它实现了一些基本的功能,例如 read 和 write,这些都是系统调用;

系统调用接口之下是内核代码,可以更精确地定义为独立于体系结构的内核代码,这些代码是 Linux 所支持的所有处理器体系结构所通用的;

内核代码之下是依赖于体系结构的代码,构成了通常称为 BSP(Board Support Package)的部分,这些代码用作给定体系结构的处理器和特定于平台的代码,依赖特定硬件结构。

然后我们来了解下Linux内核的五个子系统:

Linux内核主要由进程调度(SCHED)、内存管理(MM)、虚拟文件系统(VFS)、网络接口(NET)和进程间通信(IPC)5个子系统组成,每个都很重要,缺一不可。如下图所示。

Linux内核的组成部分与关系

进程调度

进程调度控制系统中的多个进程对CPU的访问,使得多个进程能在CPU中“微观串行,宏观并行”地执行。进程调度处于系统的中心位置,内核中其他的子系统都依赖它,因为每个子系统都需要挂起或恢复进程。

Linux进程状态转换

如上图所示,Linux的进程在几个状态间进行切换。在设备驱动编程中,当请求的资源不能得到满足时,驱动一般会调度其他进程执行,并使本进程进入睡眠状态,直到它请求的资源被释放,才会被唤醒而进入就绪态。睡眠分成可被打断的睡眠和不可被打断的睡眠,两者的区别在于可被打断的睡眠在收到信号的时候会醒。

在设备驱动编程中,当请求的资源不能得到满足时,驱动一般会调度其他进程执行,其对应进程进入睡眠状态,直



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3