linux内核主要由哪几个部分组成

  1. 简述
  2. Linux内核简称kernel是整个操作系统的最底层,它负责整个硬件的驱动,以及提供各种系统所需的核心功能,包括防火墙机制、是否支持LVM或Quota等文件系统等等,如果内核不认识某个最新的硬件,那么硬件也就无法被驱动,你也就无法使用该硬件 。
  3. 组成
  4. 一个完整的Linux内核一般由5部分组成,它们分别是进程管理、内存管理、进程间通信、虚拟文件系统和网络接口 。

linux内核主要由哪几个部分组成

  1. Linux内核整体架构.png
  2. Process Scheduler,也称作进程管理、进程调度。负责管理CPU资源,以便让各个进程可以以尽量公平的方式访问CPU。
  3. 进程调度是Linux内核中最重要的子系统,它主要提供对CPU的访问控制。因为在计算机中,CPU资源是有限的,而众多的应用程序都要使用CPU资源,所以需要“进程调度子系统”对CPU进行调度管理。
  4. 进程调度子系统包括4个子模块(见下图),它们的功能如下:

linux内核主要由哪几个部分组成

  1. 进程调度.gif
  2. 1.1) Scheduling Policy,实现进程调度的策略,它决定哪个(或哪几个)进程将拥有CPU。
  3. 1.2) Architecture-specific Schedulers,体系结构相关的部分,用于将对不同CPU的控制,抽象为统一的接口。这些控制主要在suspend和resume进程时使用,牵涉到CPU的寄存器访问、汇编指令操作等。
  4. 1.3) Architecture-independent Scheduler,体系结构无关的部分。它会和“Scheduling Policy模块”沟通,决定接下来要执行哪个进程,然后通过“Architecture-specific Schedulers模块”resume指定的进程。
  5. 1.4) System Call Interface,系统调用接口。进程调度子系统通过系统调用接口,将需要提供给用户空间的接口开放出去,同时屏蔽掉不需要用户空间程序关心的细节。
  6. Memory Manager,内存管理。负责管理Memory(内存)资源,以便让各个进程可以安全地共享机器的内存资源。另外,内存管理会提供虚拟内存的机制,该机制可以让进程使用多于系统可用Memory的内存,暂时不用的内存会通过文件系统保存在外部非易失存储器中,需要使用的时候,再取回到内存中。
  7. 内存管理主要提供对内存资源的访问控制。Linux系统会在硬件物理内存和进程所使用的内存(称作虚拟内存)之间建立一种映射关系,这种映射是以进程为单位,因而不同的进程可以使用相同的虚拟内存,而这些相同的虚拟内存,可以映射到不同的物理内存上。
  8. 内存管理子系统包括3个子模块(见下图),它们的功能如下:

linux内核主要由哪几个部分组成

  1. 内存管理.gif
  2. 2.1) Architecture Specific Managers,体系结构相关部分。提供用于访问硬件Memory的虚拟接口。
  3. 2.2) Architecture Independent Manager,体系结构无关部分。提供所有的内存管理机制,包括:以进程为单位的memory mapping;虚拟内存的Swapping。
  4. 2.3) System Call Interface,系统调用接口。通过该接口,向用户空间程序应用程序提供内存的分配、释放,文件的map等功能。
  5. VFS(Virtual File System),虚拟文件系统。Linux内核将不同功能的外部设备,例如Disk设备(硬盘、磁盘、NAND Flash、Nor Flash等)、输入输出设备、显示设备等等,抽象为可以通过统一的文件操作接口(open、close、read、write等)来访问。这就是Linux系统“一切皆是文件”的体现 。
  6. 文件系统的实质,就是“存储和组织数据的方法”,文件系统的表现形式,就是“从某个设备中读取数据和向某个设备写入数据”。常见文件系统的类型 :FAT、FAT32、NTFS、EXT2、EXT3,EXT4 。而为了兼容,操作系统或者内核,要以相同的表现形式,同时支持多种类型的文件系统,这就延伸出了虚拟文件系统(VFS)的概念。VFS的功能就是管理各种各样的文件系统,屏蔽它们的差异,以统一的方式,为用户程序提供访问文件的接口。
  7. 我们可以从磁盘、硬盘、NAND Flash等设备中读取或写入数据,因而最初的文件系统都是构建在这些设备之上的。这个概念也可以推广到其它的硬件设备,例如内存、显示器(LCD)、键盘、串口等等。我们对硬件设备的访问控制,也可以归纳为读取或者写入数据,因而可以用统一的文件操作接口访问。Linux内核就是这样做的,除了传统的磁盘文件系统之外,它还抽象出了设备文件系统、内存文件系统等等。这些逻辑,都是由VFS子系统实现。
  8. VFS子系统包括6个子模块(见下图),它们的功能如下:

linux内核主要由哪几个部分组成

  1. 虚拟文件系统.gif
  2. 3.1) Device Drivers,设备驱动,用于控制所有的外部设备及控制器。由于存在大量不能相互兼容的硬件设备(特别是嵌入式产品),所以也有非常多的设备驱动。因此,Linux内核中将近一半的Source Code都是设备驱动,大多数的Linux底层工程师(特别是国内的企业)都是在编写或者维护设备驱动,而无暇估计其它内容(它们恰恰是Linux内核的精髓所在)。
  3. 3.2) Device Independent Interface, 该模块定义了描述硬件设备的统一方式(统一设备模型),所有的设备驱动都遵守这个定义,可以降低开发的难度。同时可以用一致的形势向上提供接口。
  4. 3.3) Logical Systems,每一种文件系统,都会对应一个Logical System(逻辑文件系统),它会实现具体的文件系统逻辑。
  5. 3.4) System Independent Interface,该模块负责以统一的接口(快设备和字符设备)表示硬件设备和逻辑文件系统,这样上层软件就不再关心具体的硬件形态了。
  6. 3.5) System Call Interface,系统调用接口,向用户空间提供访问文件系统和硬件设备的统一的接口。
  7. Network,网络子系统。负责管理系统的网络设备,并实现多种多样的网络标准。
  8. 网络子系统在Linux内核中主要负责管理各种网络设备,并实现各种网络协议栈,最终实现通过网络连接其它系统的功能。在Linux内核中,网络子系统几乎是自成体系,它包括5个子模块(见下图),它们的功能如下:

linux内核主要由哪几个部分组成

  1. 网络系统.gif
  2. 4.1) Network Device Drivers,网络设备的驱动,和VFS子系统中的设备驱动是一样的。
  3. 4.2) Device Independent Interface,和VFS子系统中的是一样的。
  4. 4.3) Network Protocols,实现各种网络传输协议,例如IP, TCP, UDP等等。
  5. 4.4) Protocol Independent Interface,屏蔽不同的硬件设备和网络协议,以相同的格式提供接口(socket)。
  6. 4.5) System Call interface,系统调用接口,向用户空间提供访问网络设备的统一的接口。
  7. IPC(Inter-Process Communication),进程间通信。IPC不管理任何的硬件,它主要负责Linux系统中进程之间的通信。

本文【linux内核主要由哪几个部分组成】由作者: 递归 提供,本站不拥有所有权,只提供储存服务,如有侵权,联系删除!
本文链接:https://www.cuoshuo.com/blog/4218.html

(0)
上一篇 2023-03-11 08:04:57
下一篇 2023-03-11 08:14:16

相关推荐

  • 什么是关系型数据库模型_数据库关系模型的三个组成部分

    一、前言 上一讲我们对本门课程作了简要的介绍。那么本节课我们将对数据库的基本概念作一个详细的了解。要想学习SQL语言我们首先就必须对数据库概念有一个很好的理解,弄懂什么是数据库。 二、数据库 1、概述 要想清楚数据库的概念,首先必须了解 与 数据库技术密切相关的4个基本概念,即数据、数据库、数据库管理系统 以及 数据库系统。 2、什么是数据 首先我们来了解下…

    2023-03-11
    700
  • 小天才打开adb是什么意思

    Fastboot&ADB介绍 Fastboot模式是一种比Recovery更底层的、工厂级调试模式,一般使用USB数据线连接控制手机、刷入系统、修改参数设置甚至获取最高权限,为所欲为。 ADB的全名是Android Debug Bridge,在Android开发环境中,ADB是我们经常用于开发的调试工具,使用ADB工具的前提是打开手机上的USB调试,…

    2023-03-21
    000
  • 2000w数据怎么打开bak,如何查看bak文件

    bak是什么文件?后缀名为bak文件是备份文件,该种格式的文件可能是数据库产生的备份,也可能是某些软件或系统产生的。或许很多用户觉得不重要就将其他进行了删除操作。但有时bak文件也许是被意外删除,而删除以后在回收站中也找不到它们怎么办? 假如您目前想恢复这些被删除的bak文件,您可以采用专业的数据恢复软件来进行恢复。 云骑士数据恢复软件能够恢复已删除或丢失的…

    2023-03-19
    000
  • 新手入门excel表格制作_如何制作简单表格入门

    对于很多初入职场的小伙伴来说,学会制作Excel表格是一个必备技能,在工作中很多时候都需要用到,今天就手把手教你制作一个简单的Excel表格,初入职场必备技能! 今天教大家制作的表格是就是如下图,一个技术部的工资表,看着是不是很简单,今天这个教程是针对初入职场的小白,如果你是大神请绕过。 1、首先我们新建一个Excel表格,输入以下数据,效果如下图 2、选择…

    2023-03-17
    100
  • 红蜘蛛监控软件怎么用

    大家好, 我是可爱的排骨 前言 大家在选购显示器时, 除了分辨率刷新率外, 有没有把色域/色深/色准作为参考标准呢? 现在千元以上的显示器产品介绍页面都会提示色域/色深/色准等参数信息. 如下图 低色域的显示器的呈现效果可以简单的理解为红不够红, 绿不够绿, 蓝也不够蓝. 呈现照片效果时, 高色域显示可得到更丰富的色彩, 也更接近真实效果. 游戏体验中高色域…

    2023-03-19
    000
  • 路由器ftp服务器怎么用_路由器的FTP功能如何打开

    如何电脑连接华三路由器配置ftp文件传输服务 拓扑如下,R1为ftp服务端,pc为ftp客户端,使用pc客户端去访问R1服务端上的ftp资源,并上传和下载 一,配置R1为ftp服务器端 配置R1接口 inter GigabitEthernet 0/1 [Server-GigabitEthernet0/1]ip add 192.168.0.1 24 配置R1服…

    2023-03-08
    700
  • fpga教程书籍(fpga初学者推荐书籍)

    电子信息类专业需要学习的东西太多了,涉及方方面面,任重道远。这里给大家推荐几本书籍。 1、《大话无线通信》 作者:丁奇 对于初学者,目标是整体了解,推荐人民邮电出版社的《大话无线通信》。书不厚,网上也有电子版,看过它之后,再根据自己的兴趣方向主攻其他著作,个人觉得比较合适。 2、《通信新读-从原理到应用》 作者:陈小锋 该书是一本尝试融会贯通介绍通信相关基本…

    2023-03-17
    200
  • 怎样自学电脑编程入门,如何学电脑编程入门

    可以从自己感兴趣的领域入手,从基础到进阶学习相关的编程语言,逐步实践做项目。 先跟我一起来了解编程语言及其应用: Python——一种很好的入门语言,用于web应用程序、游戏领域、人工智能和大数据 Java——用于无数种程序中,从游戏到web应用程序再到ATM软件 HTML——任何web开发人员的基本起点 C语言——是一种较古老的语言,C仍然是一个强大的工具…

    为你推荐 2023-03-21
    000
  • 简述文件名的命名规则_程序文件名的命名规则

    一 按照各地规定,对外发布的公文,再没有标注有效日期时,一般情况下至少需要存储2年。在这一期间内,公文随时可能会被调阅。 那么对有效期内的公文,如何非常快速找到,就需要在公文存储命名上有方法。 很多小伙伴儿在公文存储时,文件名命名方式上很简单,如“通知.doc”。当几个月需要查阅时,往往是把当年相关的所有文档打开,查找异常困难,更别说调取2年左右的公文了。 …

    2023-03-09
    500
  • msdn中文版手册

    MSDN的东西很多,仅仅说下常用的系统和office这两块。 不会进入? 百度一下,谁都知道。 1 Windows7的系统示例 先放图 比较推荐专业版和旗舰版两个版本。 Windows 7可供选择的版本有:入门(初级)版(Starter)、家庭普通版(Home Basic)、家庭高级版(Home Premium)、专业版(Professional)、企业版(…

    2023-03-12
    500

发表回复

登录后才能评论
返回顶部
错说博客上线啦!