# 操作系统基础

## :pencil2: 1、认识操作系统

操作系统（OS）是配置在计算机硬件上的第一层软件，是对硬件系统的首次扩充。UNIX是第一个实用化的分时操做系统，是第一个真正体现操作系统领域各种先进概念和技术的操作系统。

### :pen\_fountain: 1.1、基本特征

1. 并发性：引入进程：提高了系统资源的利用率和系统吞吐量，并改善了系统的性能。 引入线程：对它的调度所付出的开销比进程小得多，能更高效地提高系统内多个程序间并发执行的程度。&#x20;
2. 共享性：互斥共享方式：在一段时间内只允许一个进程访问的资源称为临界资源或独占资源。 同时访问方式：允许在一段时间内由多个进程同时对它们进行访问。&#x20;
3. 虚拟技术：通过某种技术把一个物理实体变为若干个逻辑上的对应物。 时分复用技术：利用处理机的空闲时间运行其他程序，提高处理机的利用率。空分复用技术：利用存储器的空闲空间存放其他程序，提高内存的利用率。&#x20;
4. 异步性：进程以不可预知的速度向前推进。

### :pen\_fountain: 1.2、基本功能

1. 处理机管理：主要控制和管理CPU的工作。**（CPU管理）**
2. 存储管理：主要进行内存的分配和管理   **（内存管理：内存分配、地址映射、内存保护与共享、虚拟内存等）**
3. 设备管理：主要管理基本的输入输出设备  **（IO管理：完成用户的 I/O 请求，方便用户使用各种设备，并提高设备的利用率，主要包括缓冲管理、设备分配、设备处理、虛拟设备等）**
4. 文件管理：负责对计算机文件的组织、存储、操作和保护等。 **（文件管理：文件存储空间的管理、目录管理、文件读写管理和保护等）**
5. 进程管理：也称为作业管理，是指对计算机所进行的操作进行管理。 **（作业管理或者进程管理：进程控制、进程同步、进程通信、死锁处理、处理机调度等）**

### :pen\_fountain: 1.3、系统结构

#### :microphone: 1.3.1、大内核与微内核

大内核：大内核是将操作系统功能作为一个紧密结合的整体放到内核。 由于各模块共享信息，因此有很高的性能。&#x20;

微内核：由于操作系统不断复杂，因此将一部分操作系统功能移出内核，从而降低内核的复杂性。移出的部分根据分层的原则划分成若干服务，相互独立。 在微内核结构下，操作系统被划分成小的、定义良好的模块，只有微内核这一个模块运行在内核态，其余模块运行在用户态。

微内核OS结构

* 足够小的内核
* 基于客户/服务器模式
* 应用“机制与策略分离”原理
* 采用面向对象技术

微内核的基本功能

* 进程（线程）管理
* 低级存储器管理
* 中断和陷入处理

微内核操作系统存在的问题：运行效率降低。

微内核OS的效率降低的最主要原因：频繁地在用户态和核心态之间进行切换。即在完成一次客户对OS提出的服务请求时，需要利用消息实现多次交互和进行用户/内核模式以及上下文的多次切换。

## :pencil2: 2、用户接口

Linux系统层次结构如下：

![](https://2394460149-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MB7Io-ER4uA8ffGsDSz%2F-MFoFf80NLl_xfYRQM2X%2F-MFoHD2KrzIZmb_QTs08%2Fimage.png?alt=media\&token=8843806c-83a0-4d2b-acba-af6f8ff0f92f)

用户使用计算机的两种方式：命令行（CLI）、用户图形界面（GUI）。不管是命令行还是图形，用户实质上都是通过程序来使用计算机。**一般说来，用户可以通过两类接口请求操作系统的服务，一类是作业级接口（操作级接口，命令级接口），如命令语言、JCL等；另一类是编程接口（即程序级接口），即提供一组系统调用 ，供实用程序、应用程序与用户程序等请求操作系统的服务。**
