宏内核

宏内核的概念

Q: 什么是宏内核?
A: 将系统的主要功能模块都作为一个紧密联系的整体运行在核心态, 从而为用户程序提供高性能的系统服务, 也称单内核或大内核。
202408171301084.webp

宏内核的优缺点

Q: 宏内核的性能优势来源于什么?
A: 各管理模块之间共享信息, 能有效利用相互之间的有效特性。

Q: 宏内核的缺点有哪些?
A: ①由于包含大量功能模块, 导致内核代码庞大, 维护和扩展困难;
所有模块都运行在内核态,一个模块出错会导致整个系统崩溃。

微内核

微内核的概念

Q: 什么是微内核?
A: 将内核中最基本的功能保留在内核, 而将那些不需要在核心态执行的功能移到用户态执行, 从而降低内核的设计复杂性。

微内核的结构

Q: 微内核结构将操作系统划分为哪两大部分?
A: 微内核和多个服务器。

Q: 微内核通常包含哪些功能?
A: ①与硬件处理紧密相关的部分;
②一些较基本的功能, 如进程 (线程) 管理、低级存储器管理、中断和陷入处理等;
③客户和服务器之间的通信。

Q: 在微内核结构中, 客户与服务器之间是如何实现交互的?
A: 借助微内核提供的消息传递机制。

微内核的特点

Q: 微内核结构是如何实现高可靠性的?
A: 只有微内核运行在内核态, 其余模块都运行在用户态, 一个模块中的错误只会使这个模块崩溃, 而不会使整个系统崩溃。

Q: 微内核结构通常利用什么原理来构造 OS 结构?
A: 机制与策略分离的原理。

Q: 微内核结构的主要优点有哪些?
A: ①扩展性和灵活性;
②可靠性和安全性;
③可移植性;
④分布式计算。

Q: 微内核结构的主要缺点是什么?
A: 性能问题, 因为需要频繁地在核心态和用户态之间进行切换, 操作系统的执行开销偏大。

宏内核与微内核的区别

Q: 宏内核和微内核的主要区别是什么?
A: 宏内核将操作系统的主要功能模块都运行在内核态, 而微内核只将最基本的功能保留在内核态, 其他功能移到用户态执行。

外核

外核的概念

Q: 什么是外核?
A: 是一种对资源进行划分的策略, 给每个用户分配整个资源的一个子集, 运行在内核态
202408171301086.webp
202408171301088.webp
在这种操作系统中,操作系统=内核+外核
负责为用户进程分配未经抽象的硬件资源(例如磁盘的存储空间、内存的存储空间),且由外核负责保护资源使用安全

外核的任务

Q: 外核的任务是什么?
A: 为虚拟机分配资源, 并检查这些资源使用的安全性, 以确保没有机器会使用他人的资源。
负责为用户进程分配未经抽象的硬件资源(例如磁盘的存储空间、内存的存储空间),且由外核负责保护资源使用安全
202408171301089.webp

外核的优缺点

Q: 外核机制的优点有哪些?
A: ①减少了资源的 “映射层”;
②将多道程序 (在外核内) 与用户操作系统代码 (在用户空间内) 加以分离, 而且相应的负载并不重。
202408171301089.webp

机制与策略分离

机制与策略分离的应用

Q: 微内核结构如何应用机制与策略分离的原理?
A: 将机制部分以及与硬件紧密相关的部分放入微内核,而将策略部分放入微内核外服务器实现。

Q: 请举例说明机制与策略分离的应用。
A: - 进程调度: 微内核提供进程切换和优先级队列等机制, 而调度算法等策略则由用户态的调度服务器实现。

  • 内存管理: 微内核提供页表机制和地址变换机制等机制, 而页面置换算法内存分配策略等策略则由用户态的内存管理服务器实现。

操作系统引导

Q: 操作系统引导是指什么?
A: 操作系统引导是指计算机利用CPU运行特定程序,通过程序识别硬盘、硬盘分区、硬盘分区上的操作系统,最后通过程序启动操作系统的过程。
202408171301096.webp

Q: 操作系统引导过程的第一步是什么?激活的CPU读取什么程序?该程序的作用是什么?
A: 第一步是激活CPU
激活的CPU读取ROM中的boot程序
boot程序的作用是将指令寄存器置为BIOS的第一条指令,开始执行BIOS的指令。
202408171301096.webp
注意:这里主存中包含 BIOS 应该是启动之后读取了主板上的 ROM 硬件的 BIOS 程序后的。
202408171301097.webp

Q: BIOS程序在内存最开始的空间构建什么?为什么要构建它?
A: BIOS程序在内存最开始的空间构建中断向量表,因为后续的POST过程(通电自检)需要用到中断功能。

Q: 通电自检(POST)检查什么?如果硬件自检出现故障,会发生什么?如果没有故障呢?
A: 通电自检(POST)检查硬件是否出现故障。如果出现故障,主板会发出不同含义的蜂鸣,启动中止;
如果没有故障,屏幕会显示CPU、内存、硬盘等信息。

Q: BIOS如何加载带有操作系统的硬盘?CPU如何加载存储设备中的内容?
A: BIOS通过读取Boot Sequence(启动顺序),将控制权交给启动顺序排在第一位的存储设备。
CPU将该存储设备引导扇区的内容加载到内存中。

Q: 主引导记录(MBR)的作用是什么?它包含什么?
A: 主引导记录(MBR)的作用是告诉CPU去硬盘的哪个主分区去找操作系统。
它包含硬盘分区表。

Q: 硬盘分区表如何区分活动分区和非活动分区?主引导记录如何识别含有操作系统的硬盘分区?
A: 硬盘分区表通过特定的标识符区分活动分区和非活动分区。
主引导记录扫描硬盘分区表,识别活动分区。

Q: 分区引导记录(PBR)的作用是什么?分区引导记录如何加载启动管理器?
A: 分区引导记录(PBR)的作用是寻找并激活分区根目录下用于引导操作系统的程序(启动管理器)。
分区引导记录搜索活动分区中的启动管理器,并加载。

Q: 操作系统引导的最后一步是什么?
A: 将操作系统的初始化程序加载到内存中执行。

虚拟机

Q: 什么是虚拟机?虚拟化技术的作用是什么?
A: 虚拟机是指利用虚拟化技术,将一台物理机器虚拟化为多台逻辑上的机器。
虚拟化技术的作用是隐藏特定计算平台的实际物理特性,为用户提供抽象的、统一的、模拟的计算环境。

Q: 有几类虚拟化方法?
A: 两类。
第一类 VM(运行在硬件之上);
第二类 VM(运行在宿主机之上)。

第一类虚拟机管理程序

Q: 第一类虚拟机管理程序像什么?它运行在哪里?具备什么功能?
A: 第一类虚拟机管理程序像操作系统,它运行在裸机上,具备多道程序功能
202408171301101.webp

Q: 第一类虚拟机管理程序向上层提供什么?这些虚拟机是什么?为什么在不同的虚拟机上可以运行任何不同的操作系统?
A: 第一类虚拟机管理程序向上层提供若干虚拟机。
这些虚拟机是裸机硬件的精确复制品
因为每台虚拟机都与裸机相同,所以在不同的虚拟机上可以运行任何不同的操作系统。
202408171301101.webp

Q: 虚拟机作为什么运行?它是否允许执行敏感指令?
A: 虚拟机作为用户态一个进程运行,不允许执行敏感指令。

Q: 虚拟机上的操作系统认为自己运行在哪里?(补充说明:这称为虚拟内核态) 虚拟机中的用户进程认为自己运行在哪里?
A: 虚拟机上的操作系统认为自己运行在内核态(实际上不是)。
虚拟机中的用户进程认为自己运行在用户态(实际上确实是)。

Q: 当虚拟机操作系统执行了一条CPU处于内核态才允许执行的指令时,会发生什么?
A: 会陷入虚拟机管理程序。

Q: 在支持虚拟化的CPU上,虚拟机管理程序如何处理虚拟机操作系统执行的敏感指令?在过去不支持虚拟化的CPU上呢?
A: 在支持虚拟化的CPU上,虚拟机管理程序检查这条指令是由虚拟机中的操作系统执行的还是由用户程序执行的。
如果是前者,虚拟机管理程序将安排这条指令功能的正确执行。(直接调用硬件)
否则,虚拟机管理程序将模拟真实硬件面对用户态执行敏感指令时的行为。
在过去不支持虚拟化的CPU上,真实硬件不会直接执行虚拟机中的敏感指令, 这些敏感指令被转为对虚拟机管理程序的调用, 由虚拟机管理程序模拟这些指令的功能。

第二类虚拟机管理程序

Q: 第二类虚拟机管理程序是什么?它像什么?
A: 第二类虚拟机管理程序是一个依赖于Windows、Linux等操作系统分配和调度资源的程序。
它像一个普通的进程。
202408171301103.webp

Q: 第二类虚拟机管理程序伪装成什么?
A: 第二类虚拟机管理程序伪装成具有CPU和各种设备的完整计算机。

VMware Workstation是首个x86平台上的第二类虚拟机管理程序

Q: 运行在两类虚拟机管理程序上的操作系统称为?对于第二类虚拟机管理程序,运行在底层硬件上的操作系统称为?
A: 运行在两类虚拟机管理程序上的操作系统都称为客户操作系统。
对于第二类虚拟机管理程序, 运行在底层硬件上的操作系统称为宿主操作系统。

Q: 首次启动时,第二类虚拟机管理程序像什么?
A: 首次启动时, 第二类虚拟机管理程序像一台刚启动的计算机那样运转。

Q: 第二类虚拟机,操作系统安装到哪里?
A: 操作系统安装到虚拟磁盘上 (其实只是宿主操作系统中的一个文件)。

虚拟机管理程序

Q: 第一类虚拟机管理程序和第二类虚拟机管理程序的区别是什么?(补充说明:类比“裸机”和“非裸机”来记忆)
A: 第一类虚拟机管理程序直接运行在硬件上(“裸机”)
而第二类虚拟机管理程序运行在宿主操作系统上(“非裸机”)。
202408171301104.webp

操作系统结构

分层式构架设计的操作系统结构清晰且便于调试。

Q: 分层式结构操作系统的特点是什么?
A: 分层式结构操作系统的特点是:各层之间只能是单向依赖或单向调用,容易实现在系统中增加或替换一层而不影响其他层,但系统效率较低。

Q: 模块化操作系统的特点是什么?
A: 模块化操作系统的特点是:很多模块化的操作系统可以支持动态加载新模块到内核,适应性强;
内核中的各个模块,可以相互调用,无须通过消息传递进行通信,效率高;
各模块间相互依赖,相比于分层式操作系统,模块化操作系统更难调试和验证。

Q: 相对于微内核系统,什么不属于大内核操作系统的缺点?
A: 内核切换太慢不属于大内核操作系统的缺点,这是微内核的缺点。

微内核操作系统:内核足够小,基于C/S模式,策略与机制分离。

在采用微内核结构的操作系统中,文件系统服务不宜放在微内核中。

Q: 微内核结构的特点是什么?
A: 微内核结构的特点是:添加系统服务时,不必修改内核;使系统更可靠。

微内核结构能有效支持处理机运行,非常适合于分布式系统环境。

操作系统引导过程中的数据结构

Q: 中断向量表、硬盘分区表和引导扇区的作用是什么?
A: - 中断向量表的作用是用于存储中断处理程序的地址。

  • 硬盘分区表的作用是用于记录硬盘的分区信息
  • 引导扇区的作用是用于存储引导程序