> 文章列表 > 操作系统的结构与功能流程

操作系统的结构与功能流程

操作系统的结构与功能流程

一、用户态和内核
用户态可以理解为用户模式,内核态理解为内核模式

二、功能流程举例
假设你是一名顾客在一家餐厅用餐,餐厅有一个厨师负责烹饪食物,而你作为顾客只能在餐厅的就餐区域内进行点餐、享用餐点。这里就可以将就餐区域看作用户态,厨师看作内核态。

在用户态,你只能在就餐区域内享用餐点,不能直接进入厨房进行烹饪操作,也不能直接控制厨房的设备和资源,比如燃气灶、刀具等。你只能通过服务员(类似于系统调用接口)向厨师发出菜单(类似于系统调用请求),然后厨师根据菜单进行烹饪(类似于内核态下的操作),最后将做好的餐点送到你的就餐区域供你享用(类似于系统调用结果返回给应用程序)。这时,你可以在用户态下享用餐点,但不能直接控制厨房的操作。

而在内核态,厨师具有更高的权限,可以自由进入厨房,使用各种设备和资源,进行烹饪操作,如调整燃气灶的火候、使用刀具进行切割等。厨师在内核态下具有更高的权限,可以直接控制厨房的操作,执行特权操作。

类似地,在计算机系统中,应用程序在用户态下只能访问受限的资源,并通过系统调用接口向操作系统发起请求以执行需要特权的操作。而操作系统在内核态下具有更高的权限,可以直接访问系统的核心功能和资源,执行特权操作。用户态和内核态之间的切换需要经过系统调用接口,类似于餐厅中的服务员将菜单传递给厨师进行处理,然后将处理结果返回给应用程序。

三、详解
操作系统的结构与功能流程
注:内核态和硬件之间存在硬件系统(各种驱动),硬件管理管理驱动,驱动启动硬件;
操作系统的结构与功能流程
1、用户态:程序,sdk等可以让用户直观调用的;

2、操作系统服务层:调用系统接口,可以把操作系统服务层比喻为一个类似于酒店前台的角色。在酒店中,前台作为酒店客户(用户态)和酒店内部各个部门之间(内核态模块)的接口,负责接待客户、处理客户的需求,并协调各个部门的工作(去调用系统调用接口),以提供满意的服务。

3、五大基础模块

文件系统
(一)普通文件系统:FAT、EXT4等等文件系统;
(二)虚拟文件系统(VFS):基于文件系统的多样性,给出了抽象的统一管理接口
举例:想象你是一个旅行者,计划在一个国家里旅游。这个国家有多个城市,每个城市都有自己的交通系统,例如公交车、出租车、地铁等。每个城市的交通系统都有不同的车辆、路线和票价,由不同的交通公司负责。这里,每个城市的交通系统对应于实际的文件系统,例如FAT文件系统、NTFS文件系统、ext4文件系统等,它们各自独立地管理着车辆和路线信息。而虚拟文件系统(VFS)就像是一个旅行规划器,提供了一个统一的交通规划接口。你只需要在规划器上选择你的出发地和目的地,然后规划器会为你生成最佳的交通路线、票价和出行方式,无需关心每个城市的具体交通系统

内存管理模块
(一)实现对内存的合理分配、使用和释放

进程管理模块:如名
进程通信模块:如名

驱动管理模块
字符型驱动:可以类比为打印机驱动。打印机驱动负责将计算机中的字符数据转换成打印机可以识别的打印指令,控制打印机进行字符的打印输出。类似地,字符型驱动是操作系统中的一种驱动程序,负责处理字符设备,如串口、键盘等,将用户输入或者应用程序的输出转换成字符数据进行传输和处理。

块驱动:可以类比为硬盘驱动。硬盘驱动负责管理硬盘上的数据块,读取和写入文件系统中的块数据。类似地,块驱动是操作系统中的一种驱动程序,负责管理块设备,如硬盘、SSD等,将文件系统中的文件数据以块为单位进行读取和写入。

网络驱动:可以类比为网卡驱动。网卡驱动负责处理计算机与网络之间的数据传输,将数据通过网络接口传输到网络上或从网络接口接收数据并交给操作系统进行处理。类似地,网络驱动是操作系统中的一种驱动程序,负责处理网络设备,如网卡、无线网卡等,将数据在计算机与网络之间进行传输和处理。

4、硬件系统
设备驱动程序:设备驱动程序是运行在内核态的软件模块,负责控制和管理硬件设备。设备驱动程序通过与硬件设备的接口进行交互,使用硬件的特定指令和寄存器操作来控制硬件设备的行为。通过设备驱动程序,内核态可以直接与硬件层进行通信,实现对硬件设备的操作和控制。

5、硬件工作