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

操作系统的体系结构、内核、虚拟机


在这里插入图片描述

🐌个人主页: 🐌 叶落闲庭
💨我的专栏:💨
c语言
数据结构
javaweb

石可破也,而不可夺坚;丹可磨也,而不可夺赤。


操作系统结构

  • 一、操作系统体系结构
    • 1.1操作系统的内核
      • 1.1.1大内核(又名:宏内核/单内核)
      • 1.1.2微内核
    • 1.3分层结构
    • 1.4模块化
    • 1.5外核(exokernel)
  • 二、操作系统引导
    • 2.1什么是操作系统引导?
    • 2.2操作系统引导过程
  • 三、虚拟机

一、操作系统体系结构

1.1操作系统的内核

  • 内核是操作系统最基本、最核心的部分
  • 实现操作系统内核功能的那些程序就是内核程序
  • 与硬件关系较紧密的模块:
    • 时钟管理:实现计时功能
    • 中断处理:负责实现中断机制
    • 原语:
      • 是一种特殊的程序
      • 处于操作系统最底层,是最接近硬件的部分
      • 这种程序的运行具有原子性 – – 其运行只能一气呵成,不可中断
      • 运行时间较短、调用频繁
  • 对资源系统进行管理的功能:
    • 进程管理
    • 存储器管理
    • 设备管理
  • 注意:这些管理工作更多的是对数据结构的操作,不会直接涉及硬件

在这里插入图片描述


  • 注意:
    • 操作系统内核需要运行在内核态
    • 操作系统非内核功能运行在用户态

1.1.1大内核(又名:宏内核/单内核)

  • 将操作系统的主要功能模块都作为系统内核,运行在核心态
  • 优点:高性能
  • 缺点:
    • 1.内核代码庞大,结构混乱,难以维护
    • 2.大内核中某个功能模块出错,就可能导致整个系统崩溃
  • 典型的大内核/宏内核/单内核 操作系统:Linux、UNIX
  • 特征、思想:
    • 所有系统功能都放在内核里(大内核结构的OS通常也采用了“模块化”的设计思想)

在这里插入图片描述


1.1.2微内核

  • 只把最基本的功能保留在内核
  • 优点:
    • 1.内核功能少,结构清晰,方便维护,内核可靠性高
    • 2.内核外的某个功能模块出错不会导致整个系统崩溃
  • 缺点:
    • 1.需要频繁地在核心态和用户态之间切换,性能低
    • 2.用户态下的各功能模块不可以直接相互调用,只能通过内核的“消息传递”来间接通信
  • 典型的微内核操作系统:Windows NT

在这里插入图片描述


1.3分层结构

  • 特征、思想:内核分多层,每层可单向调用更低一层提供的接口
  • 优点:
    • 1.便于调试和验证、自底向上逐层调试验证
    • 2.易扩充和易维护,各层之间调用接口清晰固定
  • 缺点:
    • 1.仅可调用相邻低层,难以合理定义各层的边界
    • 2.效率低,不可跨层调用,系统调用执行时间长

在这里插入图片描述


1.4模块化

模块化是将操作系统按功能划分为若干个具有一定独立性的模块,每个模块具有某方面的管理功能,并规定好各模块间的接口,使各模块之间能通过接口进行通信,还可以进一步将各模块细分为若干个具有一定功能的子模块,同样也规定好各子模块之间的接口,把这种设计方法称为模块–接口法。

  • 特征、思想:将内核分为多个模块,各模块之间相互协作
  • 内核=主模块+可加载内核模块
  • 主模块:只负责核心功能,如进程调度、内存管理
  • 可加载内核模块:可以动态加载新模块到内核,而无需重新编译整个内核
  • 优点:
    • 1.模块间逻辑清晰易于维护,确定模块间接口后即可多模块同时开发
    • 2.支持动态加载新的内核模块(如:安装设备驱动程序、安装新的文件系统模块到内核),增强OS适应性
    • 3.任何模块都可以直接调用其他模块,无需采用详细传递进行通信,效率高
  • 缺点:
    • 1.模块间的接口定义未必合理
    • 2.模块间相互依赖,更难调试和验证

1.5外核(exokernel)

  • 特征、思想:内核负责进程调度、进程通信等功能,外核负责为用户进程分配未经抽象的硬件资源,且由外核负责保证资源使用安全
  • 优点:
    • 1.外核可直接给用户进程分配“不虚拟、不抽象”的硬件资源,使用户进程可以更灵活的使用硬件资源
    • 2.减少了虚拟硬件资源的“映射层”,提升效率
  • 缺点:
    • 1.降低了系统的一致性
    • 2.是系统变得更复杂

在这里插入图片描述
**

二、操作系统引导

2.1什么是操作系统引导?

操作系统引导:开机的时候,怎么让操作系统运行起来

安装操作系统后:
在这里插入图片描述

  • 磁盘包括:
    • 主引导记录(MBR)(包含:磁盘引导程序和分区表)
    • C:盘
    • D:盘
    • E:盘等
    • C:盘中又包含:
      • 引导记录PBR(负责找到“启动管理器”)
      • 根目录
      • 其他
  • 主存:
    • 由ROM(BIOS)包含:ROM引导程序,即自举程序和RAM组成

2.2操作系统引导过程


在这里插入图片描述


  • 1.CPU从一个特定的主存地址开始,取指令,执行ROM中的引导程序(先进行硬件自检,再开机)
  • 2.将磁盘的第一块 – – 主引导记录读入内存,执行磁盘引导程序,扫描分区表
  • 3.从活动区(又称主分区,即安装了操作系统的分区)读入分区引导记录,执行其中的程序
  • 4.从根目录下找到完整的操作系统初始化程序(启动管理器)并执行,完成“开机”的一系列动作

三、虚拟机

  • 虚拟机:使用虚拟化技术,将一台物理机器虚拟化为多台虚拟机器(Virtual Machien ,VM),每个虚拟机器都可以独立运行一个操作系统
  • 同义术语:虚拟机管理程序/虚拟机监控程序/Virtual Machien Monitor(VMM)/Hypervisor

在这里插入图片描述


在这里插入图片描述


  • 两类虚拟机管理程序(VMM)的对比
第一类VMM第二类VMM
对物理资源的控制权直接运行在硬件之上,能直接控制和分配物理资源运行在Host OS之上,依赖于Host OS为其分配的物理资源
资源分配方式在安装Guest OS时,VMM要在原本的硬盘上自行分配存储空间,类似于“外核”的分配方式,分配未经抽象的物理硬件Guest OS拥有自己的细腻==虚拟硬盘,该硬盘实际上是Guest OS文件系统中的一个大文件,Guest OS分配到的内存是虚拟内存
性能性能更好性能更差,需要Guest OS作为“中介”
可支持的虚拟机数量更多,不需要和Guest OS竞争资源,相同的硬件资源可以支持更多的虚拟机更少,Guest OS本身需要使用物理资源,Guest OS上运行的其他进程也需要物理资源
虚拟机的可迁移性更差更好,只需导出虚拟机镜像文件即可迁移到另一台Guest OS上,商业化应用更广泛
运行模式第一类VMM运行在最高特权级(Ring O),可以执行最该特权的指令第二类VMM部分运行在用户态、部分运行在内核态,Guest OS发出的系统调用会被VMM截获,并转化为VMM对Guest OS的系统调用
http://www.lryc.cn/news/130190.html

相关文章:

  • 【C++】vector的基本用法
  • SSM——用户、角色、权限操作
  • UI界面设置
  • 论文学习——PixelSNAIL:An Improved Autoregressive Geenrative Model
  • mySQL 视图 VIEW
  • 「UG/NX」Block UI 曲线收集器CurveCollector
  • 微信小程序:函数节流与函数防抖
  • Mathematica(42)-计算N个数值的和
  • 安装和配置 Ansible
  • 电脑系统重装日记
  • 通讯协议044——全网独有的OPC HDA知识一之聚合(十二)持续坏值时间
  • Docker:Windows container和Linux container
  • excel提示更新外部引用文件 这个提示能手动禁用
  • 2023 最新 小丫软件库app开源源码 PHP后端
  • Selenium 测试用例编写
  • es自定义分词器支持数字字母分词,中文分词器jieba支持添加禁用词和扩展词典
  • 基于libevent的tcp服务器
  • 【TypeScript】tsc -v 报错 —— 在此系统上禁止运行脚本
  • 【C++】STL---list
  • 六、分组背包
  • LangChain入门:构建LLM驱动的应用程序的初学者指南
  • gitlab修改远程仓库地址
  • VB+SQL自动点歌系统设计与实现
  • 设计模式之适配器模式(Adapter)的C++实现
  • C#系统锁屏事件例子 - 开源研究系列文章
  • R语言实现免疫浸润分析(2)
  • 系统架构设计师-信息安全技术(2)
  • STM32F4X-GPIO输入功能使用
  • Jenkins-CICD-python/Java包升级与回退
  • 模糊测试面面观 | 模糊测试工具知多少