第一章 介绍
1.1 操作系统
1.1.1 什么是操作系统
计算机系统 (computer system) 可以被划分为硬件 (hardware)、操作系统 (operating system)、应用程序 (application programs)、用户 (users) 四部分。
操作系统是一种资源管理器和控制程序,为用户程序提供运行环境,管理硬件资源,提供各种服务。它是计算机系统中最基本的系统软件,负责管理计算机硬件和软件资源,并为计算机程序提供公共服务。
1.1.2 操作系统职能
从用户视角看:
- 个人:个人电脑或工作站的操作系统通常为单用户设计,目标是最大化用户工作、娱乐和学习的效率。常见的操作系统包括Windows、macOS和Linux。
- 嵌入式:家用设备和汽车中的嵌入式计算机几乎无用户视图,设计为无需用户干预即可运行,负责管理相应的设备。常见的嵌入式操作系统有VxWorks、RTEMS等。
从系统视角看:
- 资源分配器:分配CPU时间、内存空间、存储空间、I/O设备等系统资源。操作系统通过调度算法和内存管理技术来优化资源使用。
- 控制程序:管理用户程序执行,防止错误和计算机不当使用,确保系统安全可靠运行。操作系统提供进程管理、文件系统管理和安全机制来实现这些功能。
1.1.3 操作系统组成部分
操作系统包含三个主要部分:
- 内核:始终运行的核心组件,提供基本系统功能,如进程管理、内存管理、设备管理和文件系统管理。
- 中间件框架:简化应用程序开发并提供功能扩展。中间件通常包括数据库管理系统、消息队列和应用服务器。
- 系统程序:帮助管理系统的实用工具,如命令行解释器、文件管理工具和系统监控工具。
1.2 计算机系统组成
1.2.1 硬件组件
- 中央处理器(CPU):执行指令、处理数据和控制系统其他部分。现代CPU通常具有多核架构,以提高并行处理能力。
- 主存储器(内存):存储当前执行的程序和数据。内存通常由动态随机存取存储器(DRAM)构成,提供快速的数据访问。
- I/O设备:提供与外部环境交互的接口(键盘、显示器、硬盘等)。I/O设备通过设备驱动程序与操作系统通信。
- 系统总线:连接以上组件的通信通道。总线架构包括PCI、USB和SATA等。
1.2.2 操作系统中间层功能
- 在用户程序与硬件之间提供抽象层。操作系统通过系统调用接口提供对硬件的抽象访问。
- 隐藏硬件细节,提供一致的接口。操作系统为应用程序提供统一的API,简化开发。
- 简化资源访问方式。操作系统通过虚拟内存和文件系统提供便捷的资源访问。
- 提供保护机制,防止程序互相干扰。操作系统通过内存保护和用户权限管理实现安全性。
1.2.3 应用程序与用户
- 应用程序通过系统调用请求操作系统服务。系统调用是应用程序与操作系统内核之间的接口。
- 用户通过应用程序与操作系统交互。用户界面包括命令行界面(CLI)和图形用户界面(GUI)。
- 操作系统为应用程序提供执行环境。操作系统管理进程、内存和I/O设备,为应用程序提供稳定的运行环境。
1.3 操作系统服务
1.3.1 用户接口
- 命令行界面(CLI):通过文本命令与系统交互。CLI提供灵活的命令输入和脚本编写能力。
- 图形用户界面(GUI):使用窗口、图标、菜单与系统交互。GUI提供直观的用户体验,适合大多数用户。
- 批处理界面:预先准备好的命令序列自动执行。批处理用于自动化任务和批量处理。
1.3.2 程序执行与I/O操作
- 加载程序到内存并执行。操作系统负责程序的加载、链接和执行。
- 处理程序正常或异常终止。操作系统提供错误处理和异常捕获机制。
- 控制I/O设备的输入输出操作。操作系统通过设备驱动程序管理I/O设备。
- 提供缓冲区管理以提高I/O效率。操作系统通过缓冲区和缓存机制优化I/O性能。
1.3.3 文件系统管理
- 文件创建、删除、读写、重命名。操作系统提供文件系统API,支持文件操作。
- 目录管理与层次结构维护。操作系统管理文件目录结构,支持文件组织和检索。
- 权限控制与文件保护。操作系统通过访问控制列表(ACL)和权限位实现文件安全。
- 备份与恢复功能。操作系统支持数据备份和恢复,确保数据安全。
1.3.4 错误检测与资源分配
- 错误检测:监控各种硬件和软件错误。操作系统提供日志记录和错误报告机制。
- 资源分配:管理CPU、内存、文件、I/O设备等资源。操作系统通过调度算法和内存管理策略优化资源使用。
- 日志记录:跟踪系统活动和资源使用情况。操作系统记录系统事件和性能数据,支持故障诊断和性能分析。
- 负载均衡:平衡系统工作负载,提高性能。操作系统通过调度和资源分配实现负载均衡。
1.3.5 保护与安全机制
- 访问控制:限制用户对系统资源的访问。操作系统通过用户认证和权限管理实现访问控制。
- 用户认证:验证用户身份。操作系统支持密码、指纹和双因素认证等多种认证方式。
- 地址空间保护:防止进程访问其他进程的地址空间。操作系统通过虚拟内存和内存保护机制实现地址空间隔离。
- 资源隔离:确保进程间资源使用不相互干扰。操作系统通过进程隔离和资源管理实现资源隔离。