![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
简述操作系统
或许在你之前的职业生涯中,并不知道 操作系统 是什么,但你一定使用过电脑。像我们日常使用的电脑实际上是由众多组件组成的。
这其中有硬件,「诸如, CPU 、 内存 、 硬盘 、 机箱 、 风扇 、 鼠标 、 键盘 等等一系列组成电脑的必备元件」,还有软件,例如你所使用的 浏览器 、 游戏 等等。所有在你电脑中能够看到的 程序 ,统称为 软件 。
然而,对于组成计算机的绝大多数硬件设备,「诸如CPU、内存等设备」,使用者无法直接和硬件设备进行交流和使用,况且对于大多数使用者而言,他们并不清楚计算机的组成和运行原理,自然也无法直接和计算机的硬件去大交道。因此,早期的开发者们在计算机硬件的基础上,开发出来一套可以适用于硬件之上的软件,通过这层软件来达到对计算机硬件的控制和交互,从而满足用户需求,这种软件被称之为 操作系统 。
操作系统诞生后,极大简化了开发者对于计算机程序的探知和求索。相比于过去,操作系统诞生后为开发者和使用提供了一个更清晰、简单的计算机模型。
时至今天, 操作系统 经过一代代的发展和完善,已经变得非常普遍和易用。我们一般常见的操作系统主要有 Windows 、 MAC OS 、 Linux 等。
下图为组成计算机的硬件和软件关系:
计算机的运行总是离不开操作系统的,操作系统作为计算机硬件与软件之间的一道桥梁,既向上承载着软件程序的运行环境,又向下衔接了与硬件的交互。既然操作系统的功能如此强大,那么是什么使得操作系统具备这些功能呢?
实际上,组成计算机操作系统的部件众多。其中最重要的部分为 驱动程序 、 内核 、 系统接口库 、 外围设备 。
各个部件分工明确,互为一体。其中,
驱动程序 主要负责与硬件控制器进行信息交流,为了使驱动程序能够正常工作,必须将驱动程序安装在操作系统中,(例如网卡驱动、磁盘驱动等等);
内核 控制着计算机上的所有硬件和软件,是操作系统中最重要的部分;
系统接口库 是一系列特殊的程序(API)库,主要提供给开发人员开发程序使用;
外围 指的是操作系统除 内核 、 驱动程序 、 系统接口 三类以外的部分。
内核 是一个操作系统的核心。内核控制着计算机上的所有硬件和软件,在必要时调度硬件,并根据指令执行相应的软件。
操作系统的内核 主要负责四种功能: 系统内存管理 、 软件程序管理 、 硬件设备管理 、 文件系统管理 。
操作系统内核的主要功能之一是 内存管理 。 内核 不仅管理计算机上的物理内存,还可以创建和管理虚拟内存。 内核 通过硬盘上的存储空间来实现虚拟内存,这块区域称为 交换空间(swap space) 。 内核 不断在「 交换空间 」和「 物理空间 」之间反复交换虚拟内存中的内容,这使得操作系统拥有比物理内存更多的可用内存。
操作系统将系统中正在运行的程序称为 进程 。内核控制着操作系统对运行在当前系统环境中的所有进程的管理。
内核的第三个功能是 管理硬件设备 。操作系统需要与对应的硬件设备进行通信,首先需要在内核中植入对应硬件的驱动程序。驱动程序相当于应用程序和硬件设备的中间人,允许内核与设备之间交换数据。
内核 的另一个功能是提供 文件系统的管理 。文件系统是操作系统中负责管理「 持久化 」数据的子系统,通过将用户的文件从内存写到磁盘中,保证用户数据的完整性。另一方面, 文件系统 负责将磁盘上的目录及文件进行组织化管理。