操作系统设计/导论
操作系统,通常缩写为OS,是直接与平台硬件交互并为用户应用程序提供运行环境的基础软件。
操作系统必须提供一些功能。
现代计算机的硬件种类繁多,无法通过硬编码来控制机制。在过去,每个应用程序都需要提供自己的驱动程序才能使用硬件。由于当今硬件的多样性,大多数操作系统将实现细节从应用程序中抽象出来,使用硬件。因此,操作系统需要一种机制来可靠地处理底层平台的各种需求。这是通过驱动程序机制提供的,通过这种机制,操作系统可以控制硬件。
此外,如果没有操作系统来管理竞争应用程序之间共享资源,多任务处理将是不切实际的,甚至是不可能的。每个应用程序都必须自己访问和控制资源,同时偶尔自愿放弃对硬件的控制(如过去常见的那样,称为协作式多任务处理)。这种情况在安全性 and 稳定性方面有明显的影响,因为通常不能信任第三方应用程序直接访问硬件。因此,操作系统必须调度应用程序进程(称为抢占式调度)来访问处理器,根据一种算法,该算法可能受多种因素的影响。
应用程序需要一种安全 and 简单的访问硬件的方式。无论是分配内存、将文件写入永久存储、播放声音文件还是显示电影,应用程序最终都需要调用操作系统提供的函数。这是通过 API 或应用程序编程接口提供的。一个完善的 API 将防止代码重复,从而使应用程序开发人员无需费心就能实现所需的行为。
大多数操作系统都需要某种方式让用户在日常生活中操作它们。界面通常应该对高级用户来说效率高,同时还要为技术水平较低的用户提供帮助。界面可以是 图形化 的或 基于文本的。
操作系统通常由几个部分组成。主要部分包括
- 内核,它是 OS 的“核心”。
- 库,它为应用程序提供一系列函数。
- 驱动程序,用于与外部硬件交互 and 控制。
此外,操作系统还将附带
- 引导机制,它将内核加载到内存中。
- 命令解释器或“shell”,它接收用户的输入。
OS 还可以实现文件系统来存储数据。
一些 OS 每次只允许运行一个程序,但许多新的 OS 允许多个应用程序几乎同时运行。此类操作系统称为“多任务操作系统”。有些 OS 非常庞大,依赖于用户输入,但其他 OS 非常小,预计在没有人工干预的情况下完成工作。第一种类型是桌面操作系统,第二种类型是“实时”操作系统。