什么是操作系统?

有一类软件负责让程序运行变得容易,允许程序共享内存让程序能够与设备交互。这些软件被称为操作系统。

要做到这一点,操作系统主要利用了一种通用的技术,即虚拟化。即将物理资源(如CPU,内存,磁盘)转换为更通用,更强大且易于使用的虚拟形式。

虚拟化CPU

在硬件的帮助下,操作系统提供了系统拥有非常多虚拟CPU的假象。将单个CPU,转换为看似数量无限的CPU,从而让许多程序看似同时运行

虚拟化内存

真实的物理内存模型非常简单。内存就是一个字节数组,要读取内存,必须指定一个地址读取那里的数据。

而操作系统虚拟化内存,让每个进程拥有自己私有的虚拟地址空间,操作系统以某种方式映射到机器的物理内存上。一个正在运行的程序中的内存引用不会影响其他进程的地址空间。

并发

并发问题首先出现在操作系统中。操作系统需要同时处理很多事情,现代多线程程序也存在该问题。

持久性

在系统内存中,数据容易丢失。因此需要硬件和软件来持久地存储数据。一般会使用磁盘或者固态硬盘。

操作系统中管理磁盘的软件称为文件系统。它负责以可靠和高效的方式,将用户创建的任何文件存储在系统的磁盘上。

操作系统**不会为每个应用程序创建专用的虚拟磁盘。**相反,磁盘数据经常要被多个线程所共享。

设计目标

操作系统取得CPU,内存,磁盘等物理资源,对他们进行虚拟化。它处理与并发相关的麻烦且棘手的问题,持久地保存存储问卷,使他们长期安全。

为了建立这个系统需要有一些目标,方便设计与实现:

抽象

需要建立一些抽象方便使用

高性能

目标最小化操作系统的开销

安全

在应用程序之间以及操作系统与应用系统之间需要提供保护。要确保一个程序的恶意行为,不会损害其他程序。

Q.E.D.


吃的苦中苦,卷成王中王🏆