Linux内核的各个组成部分,Linux 内核的组成部分

linux内核主要由进程调度(SCHED)、内存管理(MM)、虚拟文件系统(VFS)、网络接口(NET)、和进程间通信(IPC)等5个子系统组成

他们的关系如下图 所示:

1.进程间调度:

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

各个进程间的转化图如下:

2.内存管理:

控制多个进程安全地共享主内存区域,当CPU提供内存管理单元(MMU)时Linux 内存管理完成为每个进程进行虚拟内存到物理内存的转换。

地址空间如图所示:

3.虚拟文件系统:

Linux虚拟文件系统(VFS)隐藏了各种硬件的具体细节,为所有的设备提供了统一的结接口。而且它独立于各个具体的文件系统,是对各种文件系统的一个抽象,它用超级块 super block 存放文件系统的相关信息,使用索引节点inode 存放文件的物理信息,使用目录项dentry存放文件的逻辑信息。

4.网络接口:

网络接口提供了对各种网络标准的存取和各种网络硬件的支持。网络接口可以分为网络协议和网络驱动程序,网络协议部分负责实现一种可能的网络传输协议,网络设备驱动程序负责与硬件设备进行通信,每一种可能的硬件设备都有相应的设备驱动程序。

5.进程通信

Linux 支持进程间通信的多种通信机制,包含信号量、共享内存、管道等,这些机制可以协助多个进程、多资源的互斥访问、进程间的同步和消息传递。

linux内核的5个组成部分之间的依赖关系如下:

进程调度与内存管理之间的关系:

这两个子系统相互依赖,在多道程序环境下,必须为程序创建进程,而创建进程的第一件事情就是将进程和数据装入内存。

进程间通信与内存管理的关系:

进程间通信子系统要依赖内存管理支持共享内存通信机制,这个机制、允许两个进程除了拥有自己的私有空间,还可以存取共同的内存区域。

虚拟文件系统与网络接口之间的关系:

虚拟文件系统利用网络接口支持网络文件系统(NFS),也利用内存管理支持RAMDISK设备。

内存管理与虚拟文件系统之间的关系:

内存管理利用虚拟文件系统支持交换,交换进程间(swapd)定期由调度程序调度,这也是内存管理依赖于进程调度的唯一原因。当 一个进程存取的内存映射被换出时,内存管理向文件系统发出请求,同时挂起当前正在运行的进程。

除了这些依赖关系外,内核中的所有子系统还要依赖于一些共同的资源。这些资源包括所有子系统都用到的历程,如分配和释放内存空间额函数、打印警告信息的函数及系统提供的调试例程等。

阅读(1031) | 评论(1) | 转发(0) |

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值