操作系统 - 结构



操作系统是一个允许用户应用程序与系统硬件交互的结构。由于操作系统是一个如此复杂的结构,因此应谨慎创建,以便于使用和修改。一种简单的方法是将操作系统分成多个部分。每个部分都应具有明确的输入、输出和功能。

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

  • 简单结构

  • 单体结构

  • 微内核结构

  • 外核结构

  • 分层结构

  • 模块化结构

  • 虚拟机

简单结构

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

Operating System Basic Structure

与MS-DOS不同,操作系统最好具有模块化结构。这将使对计算机系统及其各种应用程序有更好的控制。模块化结构还允许程序员根据需要隐藏信息,并根据需要实现内部例程,而无需更改外部规范。

优点

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

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

  • 性能更好 - 这种系统由于层级较少,并且直接与硬件交互,因此与其他类型的操作系统相比,可以提供更好的性能。

缺点

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

  • 系统故障频繁 - 由于设计不佳,这种系统不够健壮。如果一个程序发生故障,整个操作系统都会崩溃。因此,简单操作系统中系统故障相当频繁。

  • 可维护性差 - 由于操作系统的所有层都紧密耦合,因此一层中的更改可能会严重影响其他层,并导致代码在一段时间内变得难以管理。

单体结构

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

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

Operating System Monolith Structure

优点

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

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

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

缺点

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

  • 容易崩溃 - 由于内核负责所有功能,如果一个功能发生故障,整个操作系统就会崩溃。

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

微内核结构

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

Operating System Micro-Kernel Structure

优点

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

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

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

缺点

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

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

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

外核结构

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

优点

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

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

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

缺点

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

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

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

分层结构

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

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

Operating System Layered Structure

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

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

优点

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

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

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

缺点

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

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

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

模块化结构

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

优点

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

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

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

缺点

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

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

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

虚拟机结构

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

优点

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

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

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

缺点

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

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

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

广告