linux内核学习(1)

本文详细介绍了Linux操作系统的层级结构,包括内核、系统调用接口、进程管理、内存管理和虚拟文件系统。内核主要由进程调度、内存管理、文件系统和驱动管理等模块组成,每个模块间有紧密的交互。虚拟文件系统提供统一的接口访问不同类型的硬件设备。网络管理部分则涉及网络协议和硬件设备的管理。随着时间的推移,内核驱动的种类增加,但管理方式基本保持稳定,进程调度算法有所改进。
摘要由CSDN通过智能技术生成

操作系统的层级

Linux实际上是一种开源电脑操作系统内核。一个计算机系统是一个硬件和软件的共生体,它们互相依赖,不可分割,而计算机的硬件在没有软件来操作和控制的情况下是无法工作的,完成这个控制工作的软件就称为操作系统,在Linux的术语中被称为“内核”,也可以称为“核心”。根据内核的核心功能,下面我们整体的来看待linux操作系统的分层,如下图示:
操作系统的结构
操作系统的工作方式:
1.把操作系统从用户态 切换到 内核态(用户应用程序 到 内核的流程)
2.实现操作系统的系统调用(操作系统服务层)
3.应用操作系统提供的底层函数,进行功能实现
3.1操作系统的驱动结构
4.退出后从内核态切换到用户态

操作系统内核中各级模块的相互关联
1.linux内核的整体模块:进程调度模块、内存管理模块、文件系统模块、进程间通信模块(信号量 管道 socket)、驱动管理模块
2.每个模块间的关系
1.内存管理和 驱动管理模块 虚拟内存的缓存和回存机制
2.vfs 虚拟文件系统 把硬件当作文件来使用

  1. 系统调用(System Call Interface)

系统调用接口。进程调度子系统通过系统调用接口,将需要提供给用户空间的接口开放出去,同时屏蔽掉不需要用户空间程序关心的细节。

SCI 层提供了某些机制执行从用户空间到内核的函数调用。正如前面讨论的一样,这个接口依赖于体系结构,甚至在相同的处理器家族内也是如此。SCI 实际上是一个非常有用的函数调用多路复用和多路分解服务。在 ./linux/kernel 中您可以找到 SCI 的实现,并在 ./linux/arch 中找到依赖于体系结构的部分。

  1. 进程管理(Process Management)

用户空间有那么多进程,如何让他们有条不紊地进行着正是进程管理所要做的事。每个进程都要使用到 CPU 资源(如 CPU ,内存),但 CPU 资源毕竟有限,不可能让某个进程一进独占着资源。

因此,进程管理就充当着管理员的角色,它调度着所有的进程,当需要选择下一进程运行时,会由调度算法来选择最需要运行的进程。如果某个进程在等待其它硬件资源,则它就会被挂起。

因此,通过一系列的调度算法,内核尽可能地公平地让各个进程使用到 CPU 资源。

  1. 内存管理(Memory Management)

内存管理主要提供对内存资源的访问控制,以便让各个进程可以安全地共享机器的内存资源。它提供了物理内存与虚拟内存的一种映射关系,因而不同的进程可以使用相同的虚拟内存,而这些相同的虚拟内存,可以映射到不同的物理内存上。这个映射关系主要由 MMU 来完成。

另外,内存管理会提供虚拟内存的机制,该机制可以让进程使用多于系统可用的内存,不用的内存会通过文件系统保存在外部非易失存储器中,需要使用的时候,再取回到内存中。

为了支持多个用户使用内存,有时会出现可用内存被消耗光的情况。由于这个原因,页面可以移出内存并放入磁盘中。这个过程称为交换,因为页面会被从内存交换到硬盘上。内存管理的源代码可以在 ./linux/mm 中找到。

  1. 虚拟文件系统(Virtual File System)

内核隐藏了不同功能的外部设备,例如硬盘、输入输出设备、显示设备等等的具体细节,将它们抽象为可以通过统一的文件操作接口(open、close、read、write等)来访问,也就是我们所熟知的「一切皆文件」。

随着计算机技术的发展,历史上出现了多种文件系统,比如:FAT、FAT32、NTFS、EXT2、EXT3 等等。为了兼容这些文件系统,内核将它们抽象为统一的表现形式,这就是虚拟文件系统的概念。

虚拟文件系统可分为逻辑文件系统和设备驱动程序。逻辑文件系统指 Linux 所支持的文件系统,如ext2, fat等,设备驱动程序指为每一种硬件控制器所编写的设备驱动程序模块。

  1. 网络管理(Network Stack)

网络子系统在 Linux 内核中主要负责管理各种网络设备,并实现各种网络协议栈,最终实现通过网络连接其它系统的功能。

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

以上就是对 Linux 内核子系统的简单介绍,Linux内核结构各个模块的功能都与此息息相关。我们只有通过不断的实践,真正弄懂Linux系统的运行原理和结构,才能学有所成。在本站的Linux教程中,有着对Linux系统的全面讲解,想要学好Linux的小伙伴不要错过!

在这里插入图片描述

linux系统从1991年开始以来变化的是内核驱动的种类,内核驱动的管理模式并没有巨大的改变(一段时间3个阶段的跳段 零散型 分层型
设备型),进程的调度算法发生了改变,进程的管理方式并没有发生巨大的改变。
这里是引用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值