4、操作系统结构和发展史
一、操作系统结构
操作系统结构一般有:单体系统、分层结构、微内核、客户-服务器系统、虚拟机和外核。
二、单体系统
1、了解单体系统
- 单体系统
- 是指整个操作系统作为一个单一的、完整的程序运行。在这种设计中,操作系统的所有功能(如进程管理、内存管理、文件系统、设备驱动等)都集成在一个大的程序中,运行在内核态。
- 特点:
- 高度集成:所有功能模块都紧密耦合,运行在同一个地址空间。
- 高性能:由于模块之间的调用是直接的函数调用,没有额外的通信开销,因此性能较高。
- 难以维护和扩展:由于所有功能模块都集成在一起,修改一个模块可能会影响其他模块,导致系统难以维护和扩展。
- 可靠性问题:一个模块的错误可能导致整个系统崩溃。
2、结构
- 单体系统开发的过程中,遵循以下原则
- 主程序:作为系统的入口点,负责初始化系统并调度其他服务程序。
- 服务过程:直接处理系统调用,是内核与用户空间交互的桥梁。
- 实用(辅助服务)程序:为服务过程提供支持,如数据处理、资源管理等,形成层次化的服务架构。
三、分成系统
1、了解
- 分层系统
- 其核心思想是将操作系统的功能划分为多个层次(Layer),每一层只依赖于其下一层提供的服务,并为上一层提供服务。这种设计方式通过层次化的结构,提高了系统的模块化、可维护性和可扩展性。
- 其核心思想是将操作系统的功能划分为多个层次(Layer),每一层只依赖于其下一层提供的服务,并为上一层提供服务。这种设计方式通过层次化的结构,提高了系统的模块化、可维护性和可扩展性。
2、结构
四、微内核
1、了解
- 微内核
- 其核心思想是将操作系统的最基本功能(如进程管理、内存管理、进程间通信等)保留在内核中,而将其他功能(如文件系统、设备驱动、网络协议栈等)移到用户空间,作为独立的服务运行。
- 其核心思想是将操作系统的最基本功能(如进程管理、内存管理、进程间通信等)保留在内核中,而将其他功能(如文件系统、设备驱动、网络协议栈等)移到用户空间,作为独立的服务运行。
2、结构
- 微内核之外,系统的结构可以分为三层全部运行在用户态下。
五、客户-服务器模式
1、了解
- 客户-服务器模式
- 把进程划分为两类: 服务器 ,每个服务器用来提供服务; 客户端 ,使用这些服务。这个模式就是所谓的 客户-服务器 模式。
- 客户通过发送消息与服务器通信,客户端并不需要知道这些消息是在本地机器上处理,还是通过网络被送到远程机器上处理。对于客户端而言,这两种情形是一样的:都是发送请求并得到回应。
六、计算机启动过程
1、简明启动过程
那么有了上面一些硬件再加上操作系统的支持,我们的计算机就可以开始工作了,那么计算机的启动过程是怎样的呢?下面只是一个简要版的启动过程。
- 操作系统的启动流程通常分为以下几个阶段:
- 加电自检(Power-On Self-Test, POST):
- 硬件初始化,检查硬件设备是否正常工作。
- 加载引导加载程序(Bootloader):
- 从存储设备(如硬盘、SSD)加载引导加载程序到内存。
- 引导加载程序执行:
- 引导加载程序加载操作系统的内核到内存。
- 操作系统内核初始化:
- 内核初始化硬件设备、内存管理、进程管理等核心功能。
- 用户空间初始化:
- 启动系统服务、加载用户界面(如命令行或图形界面)。
2、linux和Windows启动过程
- 1)Linux 启动流程
- BIOS/UEFI:执行 POST,加载 GRUB 引导加载程序。
- GRUB:加载 Linux 内核和 initramfs。
- Linux 内核:初始化硬件,挂载根文件系统,启动 init 或 systemd。
- systemd:启动系统服务,加载用户界面。
- (2)Windows 启动流程
- BIOS/UEFI:执行 POST,加载 Windows Boot Manager。
- Windows Boot Manager:加载 Windows 内核(NTOSKRNL.EXE)。
- Windows 内核:初始化硬件,启动系统服务(如 SMSS.EXE)。
- 用户登录:加载图形界面,显示登录界面。
3、启动流程的关键技术
- BIOS vs UEFI:
- BIOS 是传统的固件接口,使用 MBR 分区表。
- UEFI 是现代固件接口,支持 GPT 分区表和更大的硬盘容量。
- 引导加载程序:
- GRUB:Linux 常用的引导加载程序。
- Windows Boot Manager:Windows 的引导加载程序。
- initrd 和 initramfs:
- 用于在内核启动初期提供临时的根文件系统,以便加载必要的驱动和模块。
- systemd:
- 现代 Linux 系统的初始化系统,取代了传统的 init。
七、发展史
推荐看这个视频,了解,里面有许多讲解
1、手工操作阶段
就是人为进行。没有软件。比如:旧时代的电影,需要人在那里放一卷又一卷的胶片。
2、批处理阶段
2.1、单道批处理
- 内存上只能放一道作业。
- 由一个监督程序进行管理,监督程序可以将外面的作业“调度到内存中,然后”计算机上执行。【操作系统在用户执行的。说明操作系统不是都在内核态】
2.2、多道批处理
- 内存上可以放多个作业。
- 正在执行的作业I/O很慢等原因而暂停时,I/O设备利用率高 ,可以马上调度另一道作业执行。
- 无交互能力,当作业提交给系统后,用户不能再与作业交互,无法修改或者调试。
3、分时操作阶段
- 将计算机资源以时间片为单位,定时的,为多个作业服务【一台主机同时连接多台终端】。
- 优点:可以即时响应,解决人机交互问题。
4、实时操作阶段
- 紧急作业,不需要时间片排队
- 系统接收外部信号可及时处理