Operating System 简明教程
Operating System - Architecture
操作系统允许用户应用程序与系统硬件进行交互。由于操作系统是一个如此复杂的结构,因此其架构对其使用情况起着重要的作用。操作系统架构的每个组件都应明确定义,具有明确的输入、输出和功能。
Import Terms
在操作系统架构中,我们有两个主要术语,它们定义了操作系统的主要组件。
-
Kernal − 在大多数实现中,内核是操作系统架构的核心组件。内核负责所有主要操作以及与硬件的交互。内核管理内存、处理器、输入/输出设备,并提供应用程序与硬件组件进行交互的接口。
-
Shell − shell 是操作系统的接口。它可以是命令行界面或图形用户界面。用户使用 shell 与操作系统进行交互。应用程序也可以使用 shell 接口与底层操作系统进行交互。
-
System Softwares - 系统软件是与内核交互的程序,为安全管理、内存管理和其他低级活动提供接口。
-
Application Programs - 应用软件/程序是用户与操作系统交互使用的程序。例如,用于创建文档并将其保存在文件系统上的文字处理器,用于创建便笺的记事本等。
Popular Architectures
以下是操作系统架构的各种流行实现。
-
Simple Architecture
-
Monolith Architecture
-
Micro-Kernel Architecture
-
Exo-Kernel Architecture
-
Layered Architecture
-
Modular Architecture
-
Virtual Machine Architecture
Simple Architecture
有许多结构相当简单的操作系统。这些系统一开始很小,后来迅速扩展,远远超出了其范围。MS-DOS 就是一个常见的例子。它仅为小部分人设计。没有迹象表明它会变得如此受欢迎。
少数操作系统具有简单但强大的体系结构,例如 MS-DOS。这将导致对计算机系统及其各种应用程序的更大控制权。简单的体系结构允许程序员根据需要隐藏信息,并根据需要实现内部例程,而无需更改外部规范。
Monolith Architecture
在整体操作系统架构中,称为内核的中心代码段负责操作系统的所有主要操作。此类操作包括文件管理、内存管理、设备管理等。内核是操作系统的主要组件,它向应用程序和系统程序提供操作系统的全部服务。
内核可以访问所有资源,并且充当应用程序和底层硬件的接口。整体内核架构促进了分时、多编程模型并在旧银行系统中使用。
Micro-Kernel Architecture
与整体架构中有一个内核一样,在微内核中,我们有多个内核,每个内核都专门用于特定服务。每个微内核独立于其他内核开发,这使系统更加稳定。如果一个内核发生故障,操作系统将继续使用其他内核的功能。
Exo-Kernel Architecture
外核架构操作系统在麻省理工学院设计和开发。此设计的目的是保持内核大小最小,同时允许应用程序直接管理硬件资源。删除硬件资源操作系统的抽象的目的是使应用程序程序员能够编写高性能代码,而外核则处理其他操作。
Layered Architecture
在操作系统中实现模块化的办法之一就是采用分层方法。在这种方法中,最底层是硬件,最顶层是用户界面。
演示分层方法的图像如下所示:
如图像所示,每一层都基于底层构建。所有层对上层隐藏一些结构、操作等。
分层架构的一个问题是需要仔细定义每一层。这是必需的,因为上层只能使用它们下层的那些功能。
Modular Architecture
模块化架构操作系统采用与单片机类似的原理工作,但设计更出色。一个中央内核负责操作系统的全部主要操作。这个内核具有一套核心功能,其他服务在操作系统启动时或在运行时作为模块动态加载到内核中。Sun Solaris 操作系统是模块化结构操作系统的一个示例。