计算机操作系统(Operating System, OS)是现代计算机系统中最核心、最基础的系统软件,它是计算机硬件与用户及应用程序之间的桥梁与管理者。理解操作系统是理解整个计算机系统如何工作的关键。
一、什么是操作系统?
从用户视角看,操作系统是一个为用户提供便捷、高效使用计算机环境(如图形界面、命令行)的“服务提供者”。从系统视角看,操作系统是一个对计算机硬件和软件资源进行统一管理、调度和分配的“资源管理者”。其核心目标是:方便用户使用,并高效地利用计算机系统资源。
二、计算机系统的层次结构
一个典型的计算机系统可以看作一个分层结构:
1. 硬件层(裸机):由中央处理器(CPU)、内存(RAM)、磁盘、输入/输出设备等物理组件构成。
2. 操作系统层:直接运行在硬件之上,管理和抽象硬件资源,为上层提供统一的接口。
3. 应用程序层:如办公软件、浏览器、游戏等,通过操作系统提供的服务来使用硬件资源。
4. 用户层:包括程序员、普通用户等。
操作系统位于硬件与应用软件之间,隐藏了硬件的复杂细节,提供了一个更简单、更强大、更安全的虚拟机器接口。
三、操作系统的主要功能(作为资源管理者)
- 处理器(CPU)管理:
- 核心任务:管理和调度CPU时间,决定哪个进程在何时使用CPU。
- 关键概念:进程(Process)、线程(Thread)、调度算法(如先来先服务、时间片轮转、优先级调度)。
- 存储器(内存)管理:
- 核心任务:为多个运行的程序分配和回收内存空间,实现内存的保护与共享,并利用虚拟内存技术扩展逻辑内存空间。
- 设备管理:
- 核心任务:管理各类输入/输出设备(如键盘、鼠标、打印机、磁盘),完成用户的I/O请求,提高CPU与I/O设备的并行工作能力。
- 关键概念:设备驱动程序、中断处理、缓冲技术、SPOOLing技术。
- 文件管理:
- 核心任务:以文件的形式对计算机中的软件资源(程序和数据)进行统一、持久的存储和管理。提供文件的创建、删除、读写、查找、保护等功能。
四、操作系统为用户和程序提供的服务
操作系统通过系统调用(System Call)接口为上层应用程序提供一系列核心服务,主要包括:
- 程序执行:将程序加载到内存并运行。
- I/O操作:提供统一、安全的接口来访问各种硬件设备。
- 文件系统操作:管理文件的创建、读写、删除和属性设置。
- 通信服务:实现进程间的通信(IPC),包括同一主机上的进程和网络中的不同主机进程。
- 错误检测与处理:持续监控系统运行,处理硬件或软件错误,确保系统稳定。
- 资源分配与统计:在多用户或多任务间分配资源,并记录使用情况。
- 保护与安全:防止系统资源被未授权访问,确保数据和进程的安全。
五、操作系统的常见类型
随着计算机技术的发展,出现了多种类型的操作系统以适应不同的应用场景:
- 批处理操作系统:早期形式,用户将作业成批提交,由系统自动顺序处理。
- 分时操作系统:将CPU时间划分为极短的时间片,轮流为多个交互式用户服务,实现“同时”使用(如Unix, Linux)。
- 实时操作系统:在严格的时间限制内响应和处理事件,强调及时性和可靠性(如工业控制、航空航天系统)。
- 个人计算机操作系统:为单用户提供丰富的交互界面和资源管理(如Windows, macOS)。
- 网络操作系统:在通常操作系统功能基础上,增加网络通信和资源共享功能。
- 分布式操作系统:管理一组通过网络连接的、松耦合的计算机,使其像一台单一计算机一样工作。
- 嵌入式操作系统:运行在嵌入式设备上,通常资源受限,强调实时性和专用性(如VxWorks, FreeRTOS, Android)。
小结
操作系统是计算机系统的“大脑”和“大管家”。它通过管理处理器、内存、设备和文件这四大核心资源,向上层应用和用户提供了一个功能强大、稳定可靠、安全易用的运行环境。对操作系统的深入理解,是进行系统编程、性能优化、软件开发乃至理解整个计算机科学的基础。在后续的学习笔记中,我们将逐一深入探讨进程管理、内存管理等核心模块的详细机制与算法。