操作系统 - 架构



操作系统允许用户应用程序与系统硬件交互。由于操作系统是一个如此复杂的结构,其架构在其使用中起着重要的作用。操作系统架构的每个组件都应该有明确的输入、输出和功能定义。

重要术语

在操作系统架构中,我们有两个主要术语来定义操作系统的主要组件。

  • 内核 (Kernel) − 内核是大多数操作系统架构实现中的核心组件。内核负责所有主要操作以及与硬件的交互。内核管理内存、处理器、输入/输出设备,并为应用程序提供与硬件组件交互的接口。

  • Shell (外壳) − Shell 是操作系统的接口。它可以是命令行接口或图形用户接口。用户使用 Shell 与操作系统交互。应用程序也可以使用 Shell 接口与底层操作系统交互。

  • 系统软件 − 系统软件是与内核交互并提供安全管理、内存管理和其他低级活动接口的程序。

  • 应用程序 − 应用程序软件/程序是用户与操作系统交互所使用的程序。例如,文字处理器用于创建文档并将其保存到文件系统中,记事本用于创建笔记等。

流行的架构

以下是操作系统架构的各种流行实现。

  • 简单架构

  • 单体架构

  • 微内核架构

  • 外核架构

  • 分层架构

  • 模块化架构

  • 虚拟机架构

简单架构

许多操作系统具有相当简单的结构。它们最初是小型系统,后来迅速扩展到远超出其范围的程度。MS-DOS就是一个常见的例子。它最初的设计只是为了满足一小部分人的需求,并没有预料到它会如此流行。

Operating System Basic Architecture

一些操作系统具有简单而强大的架构,例如 MS-DOS。这将带来对计算机系统及其各种应用程序的更大控制。简单的架构允许程序员根据需要隐藏信息,并根据需要实现内部例程,而无需更改外部规范。

优点

以下是简单操作系统架构的优点。

  • 易于开发 - 在简单的操作系统中,由于接口很少,开发很容易,尤其是在只需要提供有限功能的情况下。

  • 性能更好 - 这样的系统由于层数少且直接与硬件交互,因此与其他类型的操作系统相比,性能更好。

缺点

以下是简单操作系统架构的缺点。

  • 系统故障频繁 - 由于设计不完善,这样的系统不够健壮。如果一个程序失败,整个操作系统都会崩溃。因此,简单的操作系统中系统故障非常频繁。

  • 可维护性差 - 由于操作系统的各个层紧密耦合,一层中的更改可能会严重影响其他层,并使代码随着时间的推移难以管理。

单体架构

在单体架构操作系统中,一个名为内核的中央代码段负责操作系统的全部主要操作。这些操作包括文件管理、内存管理、设备管理等等。内核是操作系统的核心组件,它向应用程序和系统程序提供操作系统的全部服务。

内核可以访问所有资源,并且充当应用程序和底层硬件之间的接口。单体内核架构促进了分时、多编程模型,并被用于旧的银行系统。

Operating System Monolith Architecture

优点

以下是单体操作系统架构的优点。

  • 易于开发 - 由于内核是唯一需要开发所有主要功能的层,因此设计和开发更容易。

  • 性能 - 由于内核负责内存管理和其他操作,并且可以直接访问硬件,因此性能更好。

缺点

以下是单体操作系统架构的缺点。

  • 容易崩溃 - 由于内核负责所有功能,如果一个功能失败,整个操作系统都会失败。

  • 难以增强 - 在单体操作系统中,添加新服务而不影响其他服务非常困难。

微内核架构

与单体架构只有一个内核不同,在微内核中,我们有多个内核,每个内核都专门负责一项特定服务。每个微内核都是独立开发的,这使得系统更加稳定。如果一个内核失败,操作系统将继续使用其他内核的功能。

Operating System Micro-Kernel Architecture

优点

以下是微内核操作系统架构的优点。

  • 可靠且稳定 - 由于多个内核同时工作,操作系统失败的可能性非常小。如果一个功能出现故障,操作系统仍然可以使用稳定的内核提供其他功能。

  • 可维护性 - 由于内核体积小,代码大小易于维护。可以增强微内核代码库而不会影响其他微内核代码库。

缺点

以下是微内核操作系统架构的缺点。

  • 设计复杂 - 这种基于微内核的架构很难设计。

  • 性能下降 - 与单体架构相比,多内核、多模块通信可能会影响性能。

外核架构

外核架构操作系统在麻省理工学院设计和开发。该设计的目标是保持内核大小最小,同时允许应用程序直接管理硬件资源。移除操作系统对硬件资源的抽象的目的,是为了使应用程序程序员能够编写高性能代码,而外核则处理其他操作。

优点

以下是外核操作系统架构的优点。

  • 高性能 - 由于应用程序可以分配内存,因此设计良好的代码可以优化使用并提高性能。

  • 应用程序控制 - 由于资源管理不是由操作系统来保证的,因此应用程序对系统资源有更多控制权,并且可以在系统资源上编写自定义操作。

缺点

以下是外核操作系统架构的缺点。

  • 不可靠且不安全 - 由于安全性在应用程序级别,因此编写不当的代码可能会破坏系统。

  • 设计复杂 - 外核设计复杂。

分层架构

在操作系统中实现模块化的一种方法是分层方法。在这种方法中,底层是硬件,最顶层是用户界面。

演示分层方法的图像如下:

Operating System Layered Architecture

从图像中可以看出,每一上层都建立在下层之上。所有层都对其上层隐藏了一些结构、操作等。

分层架构的一个问题是需要仔细定义每一层。这是必要的,因为上层只能使用其下层的功能。

优点

以下是分层操作系统架构的优点。

  • 高度可定制 - 由于分层,每一层的实现都可以轻松定制。可以添加新功能而不会影响其他模块。

  • 可验证性 - 由于模块化,每一层都可以轻松验证和调试。

缺点

以下是分层操作系统架构的缺点。

  • 性能较低 - 与基本结构的操作系统相比,分层结构的操作系统性能较低。

  • 设计复杂 - 每一层都需要仔细规划,因为每一层只与下层通信,因此需要良好的设计流程才能创建分层操作系统。

模块化架构

模块化架构操作系统的工作原理与单体架构类似,但设计更好。一个中央内核负责操作系统的全部主要操作。这个内核具有一组核心功能,其他服务作为模块在启动时或运行时动态加载到内核中。Sun Solaris OS 是模块化结构操作系统的示例之一。

优点

以下是模块化操作系统架构的优点。

  • 高度可定制 - 由于模块化,每一模块的实现都可以轻松定制。可以添加新功能而不会影响其他模块。

  • 可验证性 - 由于模块化,每一层都可以轻松验证和调试。

缺点

以下是模块化操作系统架构的缺点。

  • 性能较低 - 与基本结构的操作系统相比,模块化架构的操作系统性能较低。

  • 复杂的设计 - 每个模块都需要仔细规划,因为每个模块都与内核通信。需要设计一个通信 API 来促进通信。

虚拟机架构

在这种架构中,CPU、内存、硬盘等硬件被抽象成虚拟机。用户可以使用它们,并使用执行上下文实际配置它们。虚拟机占用大量的磁盘空间,需要进行配置。可以在一台物理机上创建多个虚拟机。

优点

以下是基于虚拟机的操作系统架构的优点。

  • 高度可定制 - 由于是虚拟的,功能很容易访问,可以根据需要进行定制。

  • 安全 - 由于是虚拟的,并且没有直接访问硬件,因此此类系统非常安全。

缺点

以下是基于虚拟机的操作系统架构的缺点。

  • 性能较低 - 与模块化结构的操作系统相比,虚拟结构的操作系统性能较低。

  • 复杂的设计 - 机器中的每个虚拟组件都需要仔细规划,因为每个组件都需要抽象底层硬件。

广告