1、操作系统的概念
操作系统(OS,Operating System)是介于计算机硬件(CPU、内存、硬盘)和用户应用程序(如微信、浏览器)之间的中间层软件。
通俗理解:把硬件想象成“食材”(CPU是火候,内存是案板,硬盘是冰箱),操作系统就是那个“大厨”。它负责管理所有食材,并给想做饭的人(应用程序)提供标准的“菜谱接口”(API),让程序员不用关心怎么生火、怎么切菜,只要调用接口就能把菜做出来。
核心身份:它既是资源管理者(分配CPU时间、内存空间),也是硬件虚拟机(把丑陋的硬件细节封装成友好的界面)。
2、操作系统的功能
(1)资源管理功能
操作系统的最基本功能之一是管理计算机的硬件资源,包括处理器(CPU)、内存、存储设备、输入输出设备等。操作系统通过合理的资源调度和管理,确保计算机硬件资源得到高效利用。具体功能包括:
- CPU管理(进程调度):操作系统通过进程调度算法,管理不同进程的执行,确保处理器时间的合理分配。
- 内存管理:操作系统负责动态分配和回收内存空间,采用虚拟内存技术让多个进程在有限的物理内存上并行运行。
- 存储管理:操作系统负责磁盘等存储设备的管理,确保文件的存储和访问,提供文件系统。
- 设备管理:操作系统通过设备驱动程序来控制和管理外部设备,如显示器、键盘、打印机等,协调计算机与外部设备之间的通信。
(2)进程管理
操作系统需要管理计算机中的多个进程,确保它们能够并发或并行执行,同时避免互相干扰。操作系统负责:
- 进程的创建、调度、终止等操作。
- 进程之间的同步与通信。
- 进程的优先级管理和资源分配。
(3)内存管理
操作系统需要有效地管理计算机的内存资源。内存管理包括:
- 内存分配:操作系统为运行的进程分配内存空间。
- 虚拟内存管理:允许程序使用比物理内存更多的内存,通过页面置换等技术实现内存的扩展。
- 内存保护:防止不同进程之间访问或修改彼此的内存区域。
(4)文件系统管理
操作系统提供文件系统,使用户能够方便地存储和访问文件。操作系统的文件系统管理功能包括:
- 文件的创建、删除、读写操作。
- 目录的组织和管理。
- 文件的权限管理与安全控制。
- 磁盘空间的分配与回收。
(5)输入输出管理
操作系统负责管理计算机与外部设备(如键盘、鼠标、显示器、打印机等)之间的交互。输入输出管理功能包括:
- 输入设备(如键盘、鼠标)的处理。
- 输出设备(如显示器、打印机)的管理。
- I/O调度与缓冲区管理。
- 设备驱动程序的管理,保证操作系统能够与各种硬件设备兼容。
(6)用户接口提供
操作系统为用户提供了与计算机交互的接口。常见的用户接口包括:
- 命令行界面(CLI):如UNIX、Linux中的终端。
- 图形用户界面(GUI):如Windows、macOS,提供图形化的窗口、图标、按钮等界面,方便用户进行操作。
(7)安全性与保护
操作系统提供安全机制,确保计算机系统免受未授权的访问或恶意攻击。具体包括:
- 用户身份验证:如密码保护、指纹识别等。
- 权限控制:如文件访问权限的管理。
- 数据加密与防护:防止数据被非法窃取或篡改。
3、操作系统的目标
方便性(首要目标):如果没OS,程序员得直接用二进制和硬件打交道。OS把复杂的硬件操作封装成简单的系统调用(如
open()、read()),让普通人也能用上电脑。有效性(核心目标):提高资源利用率。OS要确保CPU不空转(尽量保持忙碌),内存不浪费(分页/分段管理),I/O设备不闲置。这也是多道程序设计(Multiprogramming)诞生的原因。
可扩展性(你图中下一项,这里先点一下):要能支持新硬件(如新显卡驱动)和新应用(如AI算力调度),而不需要推翻整个系统重写。
4、操作系统的可扩展性
操作系统还承担着扩展硬件能力的任务。通过虚拟化、设备驱动和中间层的技术,操作系统能够将硬件的复杂性隐藏,并使得用户可以方便地使用不同的硬件设备。它还通过提供统一的接口,使得应用程序能够跨平台运行,扩展了计算机硬件的使用范围。
- 虚拟化:通过虚拟机技术,操作系统能够模拟出多个虚拟机,让每个虚拟机都像是一个独立的计算机,提升了计算机资源的利用率。
- 设备抽象层:操作系统通过设备驱动程序为用户提供统一的硬件访问接口,使得应用程序不需要关注底层硬件的具体细节。
总结
操作系统是计算机系统中的核心软件,负责管理计算机的硬件资源,提供多任务并发支持,并为用户和应用程序提供操作接口和服务。其目标包括资源管理、硬件扩展、系统安全、稳定性和可靠性等。通过这些功能和目标,操作系统确保计算机系统能够高效、稳定、安全地运行,满足用户和应用程序的需求。