当前位置: 首页 > news >正文

4、操作系统结构和发展史

一、操作系统结构

操作系统结构一般有:单体系统、分层结构、微内核、客户-服务器系统、虚拟机和外核

二、单体系统

1、了解单体系统

  • 单体系统
    • 是指整个操作系统作为一个单一的、完整的程序运行。在这种设计中,操作系统的所有功能(如进程管理、内存管理、文件系统、设备驱动等)都集成在一个大的程序中运行在内核态
  • 特点
    • 高度集成:所有功能模块都紧密耦合,运行在同一个地址空间
    • 高性能:由于模块之间的调用是直接的函数调用没有额外的通信开销,因此性能较高
    • 难以维护和扩展:由于所有功能模块都集成在一起,修改一个模块可能会影响其他模块,导致系统难以维护和扩展。
    • 可靠性问题一个模块的错误可能导致整个系统崩溃

2、结构

在这里插入图片描述

  • 单体系统开发的过程中,遵循以下原则
    • 主程序:作为系统的入口点,负责初始化系统并调度其他服务程序。
    • 服务过程:直接处理系统调用,是内核与用户空间交互的桥梁。
    • 实用(辅助服务)程序:为服务过程提供支持,如数据处理、资源管理等,形成层次化的服务架构。

三、分成系统

1、了解

  • 分层系统
    • 核心思想是将操作系统的功能划分为多个层次(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、实时操作阶段

  • 紧急作业,不需要时间片排队
  • 系统接收外部信号可及时处理

相关文章:

  • 深入理解8086指令集与反汇编技术
  • Pythonload JSON文件需要手动关闭吗?
  • 钞票准备好了吗?鸿蒙电脑 5 月见
  • linux去掉绝对路径前面部分和最后的/符号
  • CSS语言的服务器管理
  • JVM 03
  • 【专业测评】STONE 80A-L 电调:轻量化革命下的工业级动力心脏 ——112g 机身承载 80A 持续输出,重新定义无人机动力系统标杆
  • 秒杀业务优化之从分布式锁到基于消息队列的异步秒杀
  • JavaScript中匿名函数与箭头函数之间的区别与联系
  • Android Compose 框架的状态与 ViewModel 的协同(collectAsState)深入剖析(二十一)
  • 2023年TEVC SCI1区TOP:基于粒子群算法的紧凑神经结构搜索图像分类
  • 《论语别裁》第02章 为政(04) 刘备上了曹操的当
  • AF3 Rigid类make_transform_from_reference方法解读
  • C++题目
  • NO.56|基础算法-模拟|多项式输出|蛇形方阵|字符串的展开|方向向量(C++)
  • 《汽车理论》第一章作业1.3
  • 如何学好linux驱动
  • 【机器学习】什么是线性回归?
  • 3.24-1接口测试理论
  • C++输入输出流第二弹:文件输入输出流and字符串输入输出流
  • 东风着陆场近日气象条件满足神舟十九号安全返回要求
  • 全国电影工作会:聚焦扩大电影国际交流合作,提升全球影响力
  • 五一期间上海景观照明开启重大活动模式,外滩不展演光影秀
  • 野猪穿过江苏电视台楼前广场,被抓捕后送往红山森林动物园
  • CSR周刊:李宁打造世界地球日特别活动,珀莱雅发布2024年度可持续发展报告
  • 艺术与医学的对话,瑞金医院办了一个展览