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

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

一、操作系统体系结构

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的系统调用


相关文章
|
6天前
|
存储 边缘计算 分布式计算
探索操作系统的心脏:内核
【6月更文挑战第12天】本文深入探讨了操作系统中最为关键的组成部分——内核。我们将从内核的定义和功能出发,逐步解析其如何管理计算机硬件资源、提供系统服务以及保障系统安全。通过具体实例,本文揭示了内核在操作系统中的不可替代性,并展望了未来内核技术的发展趋势。
|
6天前
|
机器学习/深度学习 算法 安全
探索现代操作系统的内核设计与优化
在当今数字化时代,操作系统的内核是计算机系统稳定、高效运行的关键。本文深入探讨了现代操作系统内核的设计原则和优化方法,从微内核到宏内核,详细分析了它们各自的优缺点,并探讨了未来内核的发展趋势和创新方向。
20 1
|
14天前
|
存储 Linux 数据处理
探索Linux操作系统的内核与文件系统
本文深入探讨了Linux操作系统的核心组件,包括其独特的内核结构和灵活的文件系统。文章首先概述了Linux内核的主要功能和架构,接着详细分析了文件系统的工作原理以及它如何支持数据存储和检索。通过比较不同的文件系统类型,本文旨在为读者提供一个关于如何根据特定需求选择合适文件系统的参考框架。
|
18天前
|
安全 算法 网络协议
探索Linux操作系统的内核管理
【5月更文挑战第31天】本文将深入探讨Linux操作系统的内核管理机制,包括其设计原则、主要组件以及它们如何协同工作以提供高效的系统性能。通过分析Linux内核的关键特性和功能,我们将揭示这一开源操作系统如何在各种计算环境中保持其稳定性和灵活性。
|
18天前
|
算法 搜索推荐 开发工具
探索代码的奥秘:技术感悟与实践探索操作系统的心脏:内核
【5月更文挑战第31天】在数字世界的编织中,每一行代码都承载着创造者的智慧和汗水。本文将带你深入编程的核心,揭示那些隐藏在日常开发实践中的技术真谛。从算法的精妙到系统的架构,我们将一同探讨如何通过技术提升效率,解决问题,并在这个过程中获得个人成长。 【5月更文挑战第31天】本文深入剖析了操作系统的核心组件——内核,探讨了其设计哲学、功能职责以及在现代计算环境中的重要性。通过分析内核的工作原理和它如何与硬件、软件交互,我们将揭示这个隐藏在用户界面背后的力量之源。
|
2天前
|
存储 调度 数据安全/隐私保护
探索操作系统的心脏:内核
【6月更文挑战第16天】本文深入探讨了操作系统的核心组成部分——内核,揭示了其对系统性能和稳定性的关键影响。通过分析内核的主要功能、架构以及它如何与硬件和应用程序交互,我们提供了对这一复杂主题的全面理解。文章不仅阐述了内核的基本概念,还讨论了其在现代操作系统设计中的重要性,旨在为读者提供一个关于操作系统内核的技术性视角。
|
4天前
|
安全 算法 调度
探索操作系统的心脏:内核
【6月更文挑战第14天】在数字世界的庞大机器中,操作系统扮演着不可或缺的角色。它如同计算机系统的灵魂,协调着软硬件之间的复杂交互。本文将深入探讨操作系统的核心——内核,揭示其如何管理硬件资源、提供系统服务以及保障系统安全。我们将通过一个独特的视角,即内核的内部运作机制,来理解操作系统的复杂性和重要性。
|
4天前
|
存储 缓存 安全
Linux基础——冯诺依曼体系结构与操作系统
Linux基础——冯诺依曼体系结构与操作系统
25 1
Linux基础——冯诺依曼体系结构与操作系统
探索操作系统的心脏:内核
【6月更文挑战第10天】本文深入探讨了操作系统的核心组件——内核,分析了其设计、功能以及在现代计算机系统中的重要性。我们将通过一个虚构的故事来揭示内核如何在幕后默默工作,确保计算机系统的流畅运行。
|
7天前
|
安全 算法 Linux
探秘操作系统:从内核到用户界面的奥秘
【6月更文挑战第10天】本文将带领读者深入探索操作系统的多维世界,从其最基础的内核设计到丰富多彩的用户界面,我们将一窥这些软件巨匠如何支撑起现代计算的基石。不同于常规的技术解读,我们将通过故事化的叙述,揭示操作系统如何响应硬件、管理资源以及提供用户体验,展现它们不仅仅是代码和算法的集合,更是人类智慧与创造力的结晶。