如何进行Linux 内核架构分析

发布时间:2021-12-27 17:53:02 作者:柒染
来源:亿速云 阅读:95

这篇文章将为大家详细讲解有关如何进行Linux 内核架构分析,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

  1. 概述

通常地,Linux操作系统如下图所示,由四大子系统组成:

如何进行Linux 内核架构分析

2.内核架构

2.1 内核之作用

2.2 内核之结构

如何进行Linux 内核架构分析

内核主要由以下五大组成部分:

从依赖性的角度分析:

2.3 内核之重要数据结构

3.各子系统架构分析

3.1 进程调度器架构

进程调度器是Linux内核中最重要的子系统。其目的是控制对计算机CPU的访问。这不仅包括用户进程的访问,还包括其他内核子系统的访问。

如何进行Linux 内核架构分析

由上图可知,进程调度器可分为四大模块:

进程调度器维护一个数据结构,即任务列表,每个活动进程具有一个条目。此数据结构包含足够的信息来暂停和恢复过程,但还包含其他记帐和状态信息。该数据结构可在整个内核层公开使用。

如前所述,进程调度程序将调用内存管理器子系统。因此,进程调度程序子系统依赖于内存管理器子系统。此外,所有其他内核子系统都依赖进程调度程序来挂起和恢复进程,同时等待硬件请求完成。这些依赖关系通过函数调用和对共享任务列表数据结构的访问来表示。所有内核子系统都读取和写入代表当前任务的数据结构,从而导致整个系统中的双向数据流。

除了内核层中的数据和控制流之外,O / S服务层还为用户进程提供了一个接口,用于注册计时器通知。这对应于[Garlan 1994]中描述的隐式执行体系结构样式。这导致控制从调度程序流向用户进程。恢复休眠过程的通常情况在正常情况下不视为控制流程,因为用户进程无法检测到此操作。最后,调度程序与CPU通信以挂起和恢复进程。这导致数据流和控制流。CPU负责中断当前正在执行的进程,并允许内核调度另一个进程。

3.2 内存管理器架构

内存管理器子系统负责控制对硬件内存资源的进程访问。这是通过硬件内存管理系统完成的,该系统提供了进程内存引用与机器物理内存之间的映射。内存管理器子系统在每个进程的基础上维护此映射,以便两个进程可以访问相同的虚拟内存地址并实际使用不同的物理内存位置。此外,内存管理器子系统还支持交换。它将未使用的内存页面移至持久性存储,以使计算机支持的虚拟内存多于物理内存。

3.2.1 模块结构分析

如何进行Linux 内核架构分析

内存管理器主要由以下三个模块组成:

3.2.2 从数据表征的角度分析:

内存管理器存储物理地址到虚拟地址的每个进程的映射。该映射作为参考存储在流程调度程序的任务列表数据结构中。除了此映射之外,数据块中的其他详细信息还告诉内存管理器如何获取和存储页面。例如,可执行代码可以将可执行映像用作后备存储,但是必须将动态分配的数据备份到系统页面文件中。最后,内存管理器在此数据结构中存储权限和记帐信息,以确保系统安全。

3.2.3 数据流,控制流和依赖关系

内存管理器控制内存硬件,并在发生页面错误时从硬件接收通知-这意味着内存管理器模块和内存管理器硬件之间存在双向数据和控制流。另外,内存管理器使用文件系统来支持交换和内存映射的I / O。此要求意味着内存管理器需要对文件系统进行过程调用以存储和从持久性存储中获取内存页面。由于无法立即完成文件系统请求,因此内存管理器需要暂停一个过程,直到将内存换回为止。此要求导致内存管理器对过程调度程序进行过程调用。同样,由于每个进程的内存映射都存储在进程调度程序的数据结构中,因此在内存管理器和进程调度程序之间存在双向数据流。用户进程可以在进程地址空间内设置新的内存映射,并可以注册自己以在新映射的区域内通知页面错误。这引入了从内存管理器到系统调用接口模块再到用户进程的控制流。从传统意义上讲,没有来自用户进程的数据流,但是用户进程可以使用系统调用接口模块中的选择系统调用从内存管理器中检索某些信息。

3.3 虚拟文件系统架构

虚拟文件系统旨在提供存储在硬件设备上的数据的一致视图。计算机中几乎所有的硬件设备都是使用通用设备驱动程序接口表示的。虚拟文件系统进一步发展,并允许系统管理员在任何物理设备上安装一组逻辑文件系统中的任何一个。逻辑文件系统促进与其他操作系统标准的兼容性,并允许开发人员使用不同的策略来实现文件系统。虚拟文件系统抽象了物理设备和逻辑文件系统的详细信息,并允许用户进程使用通用接口访问文件,而不必知道文件驻留在哪个物理或逻辑系统上。

除了传统的文件系统目标之外,虚拟文件系统还负责加载新的可执行程序。该责任由逻辑文件系统模块完成,这使Linux支持多种可执行格式。

故简言之:

3.3.1 模块结构分析

如何进行Linux 内核架构分析

可分为四大模块:

3.4 网络接口层架构

网络子系统允许Linux系统通过网络连接到其他系统。支持许多可能的硬件设备,以及可以使用的许多网络协议。网络子系统抽象了这两个实现细节,因此用户进程和其他内核子系统可以访问网络而不必知道正在使用什么物理设备或协议。

3.4.1 模块结构组成

如何进行Linux 内核架构分析

简言之,

关于如何进行Linux 内核架构分析就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

推荐阅读:
  1. 怎么进行Linux系统的启动
  2. linux如何进行故障处理

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

linux

上一篇:数据分析中的NumPy深拷贝与浅拷贝是怎样的

下一篇:在MyEclipse 6.5下怎么使用jetty

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》