> For the complete documentation index, see [llms.txt](https://lfool.gitbook.io/operating-system/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://lfool.gitbook.io/operating-system/untitled-1/1.-cao-zuo-xi-tong-gai-lun-gong-neng.md).

# 1. 操作系统概论 & 功能

![](/files/-MEmvEbNmxTtXbjtqSfx)

## 1. 操作系统概论 & 定义

![计算机系统的层次结构](/files/-MEmeGB-vOPqWI3AzUrL)

**操作系统**（Operating System，OS）是指控制和**管理**整个计算机系统的**硬件和软件**资源，并合理地组织调度计算机的工作和资源分配；以**提供给用户和其他软件方便的接口和环境**；它是计算机系统中最基本的**系统软件**。

1. 操作系统是系统资源的管理者
2. 向上层提供方便易用的服务
3. 是最接近硬件的一层软件

## 2. 操作系统功能 & 目标

### 1. 作为系统资源的管理者

补充知识：执行一个程序前**需要将该程序放到内存中**，才能被 CPU 处理

使用 QQ 和朋友视频聊天的过程：

1. 找到 QQ 的安装位置 —— 逐层打开文件夹，找到 QQ.exe 这个程序的存放位&#x7F6E;**（文件管理）**
2. 双击打开 QQ.exe —— 需要把该程序相关数据放入内&#x5B58;**（存储器管理）**
3. QQ 程序正常运行 —— 对应的进程被处理机 CPU 处&#x7406;**（处理机管理）**
4. 开始和朋友视频聊天 —— 需要将摄像头设备分配给进&#x7A0B;**（设备管理）**

通过上述例子，我们可知操作系统作为系统资源的管理者，提供了**文件管理**、**存储器管理**、**处理机管理**、**设备管理**四个功能。

### 2. 向上层提供方便易用的服务

对于硬件来说，只听得懂二进制指令，用户很难直接操作硬件，所以操作系统进行了一定的封装，仅仅暴露出简单易用的接口。

封装思想：操作系统把一些难以直接操作的硬件功能封装成简单易用的服务，使用户能更方便地使用计算机，用户无需关心底层硬件的原理，只需要对操作系统发出命令即可。

![](/files/-MEmsnf6ia7HU28Dyxgt)

![](/files/-MEmtEId9OVfeIQTjdlH)

### 3. 作为最接近硬件的层次

需要实现**对硬件机器的拓展**

没有任何软件支持的计算机成为**裸机**。在裸机上安装的操作系统，可以提供资源管理功能和方便用户的服务功能，将裸机改造成功能更强、使用更方便的机器

通常把覆盖了软件的机器成为**扩充机器**，又称之为**虚拟机**

类比汽车：&#x20;

* 发动机 —— 只会转；轮胎 —— 只会滚&#x20;
* 在原始的硬件机器上覆盖一层传动系统 —— 让发动机带着轮子转 —— 使原始的硬件机器得到拓展

操作系统对硬件机器的拓展：将CPU、内存、磁盘、显示器、键盘等硬件合理地组织起来，让各种硬件能够相互协调配合，实现更多更复杂的功能

普通用户无需关心这些硬件在底层是怎么组织起来工作的，只需直接使用操作系统提供的接口即可
