【王道操作系统 | 第一章】从资源管理到虚拟机
操作系统是计算机中最基础的系统软件。它一边直接管理处理器、内存、磁盘和外设一边向用户程序提供统一、易用且受保护的服务接口。一、操作系统是什么资源管理者也是扩充机器操作系统负责控制和管理整个计算机系统的硬件、软件资源合理组织计算机工作和资源分配并为用户和其他软件提供方便的接口与环境。从资源管理的角度看操作系统主要管理四类对象处理机决定多个程序何时获得 CPU存储器为程序分配、回收和保护内存空间文件把磁盘上的数据组织成文件和目录提供统一的读写方式设备协调键盘、显示器、磁盘、打印机等 I/O 设备的使用。从服务接口的角度看操作系统把复杂的硬件细节封装起来。普通用户可以通过 GUI 完成文件操作也可以通过命令接口与系统交互。命令接口又可分为联机命令接口和脱机命令接口前者强调人机交互用户输入一条命令后系统立即处理后者通常将一批命令组织好后交给系统依次执行。应用程序还可以通过程序接口请求操作系统服务。程序真正运行前相关指令和数据需要被装入内存由 CPU 按顺序取指、执行。程序无需直接控制磁盘控制器或修改内存保护信息这些工作由操作系统统一完成。因此安装了操作系统的计算机不再只是裸机。操作系统在硬件之上提供更高层的抽象使物理机器成为功能更完整、使用更方便的扩充机器。二、四个基本特征多个程序怎样共用系统1. 并发与并行并发是指两个或多个事件在同一时间间隔内发生。对单核 CPU 来说多个程序在宏观上像是同时运行微观上则是 CPU 在它们之间快速切换。并行强调同一时刻同时发生。多核处理器可以让多个程序分别占用不同核心在同一时刻执行从而形成并行。可以用一句话区分并发看时间段并行看同一时刻。多核 CPU 能够并行但当待运行程序数量超过可用核心数时仍然需要并发调度。2. 共享共享是指内存中多个并发执行的进程共同使用系统资源。共享有两种常见方式互斥共享某一时段只允许一个进程访问资源。例如摄像头被视频会议程序占用时其他程序通常不能同时独占它。同时共享多个进程在一个时间段内都能使用资源。例如两个程序同时读取磁盘文件底层可能仍是交替访问设备但从用户视角看它们都在工作。并发和共享互为条件。没有并发系统中只有一个程序运行资源共享没有意义没有共享多个程序无法共同使用 CPU、内存和 I/O 设备也就难以实现并发运行。3. 虚拟虚拟是把一个物理实体转换为多个逻辑实体。它让用户获得“资源更多”的使用体验但物理资源并没有凭空增加。时分复用技术将一个物理 CPU 按很小的时间片轮流分配给多个进程于是每个用户都像拥有自己的处理器。空分复用技术则把有限的物理内存扩展为更大的逻辑地址空间形成虚拟存储器。虚拟依赖并发。只有多个程序需要在同一段时间内运行按时间或空间复用资源才有实际意义。4. 异步多道程序环境下多个进程会走走停停地向前推进。进程何时获得 CPU、何时等待 I/O、何时因资源不足被阻塞受系统调度和资源状态影响执行速度无法预先精确预测这就是异步性。异步不代表执行混乱。操作系统通过调度、同步和资源保护让不可预测的推进过程仍然满足正确性要求。三、运行机制为什么程序不能随意操作硬件程序运行的本质是 CPU 执行一条条机器指令。为了避免任意程序破坏系统资源处理器将指令划分为特权指令和非特权指令。特权指令会影响全局资源或系统状态例如修改内存管理相关信息、设置时钟、进行设备控制等只能由操作系统内核执行。普通应用程序执行的是非特权指令例如算术运算、数据传送等。与指令权限相对应CPU 有两种运行状态内核态运行内核程序可以执行全部指令包括特权指令用户态运行应用程序只能执行非特权指令。处理器通常利用程序状态字 PSW 中的状态位区分当前模式。内核态切换到用户态时由内核执行特权指令修改状态位用户态切换到内核态则由中断触发并由硬件自动完成。这种区分建立了基础保护边界。应用程序即使出现错误也不能直接执行高权限操作来任意清空内存、关闭中断或控制其他程序的资源。四、中断和异常操作系统重新获得 CPU 的入口应用程序在用户态运行时操作系统并没有持续占用 CPU。那操作系统如何在需要时介入答案是中断和异常。中断会使 CPU 从用户态进入内核态转而执行对应的中断处理程序。它是操作系统重新获得 CPU 控制权的重要机制也是多程序交替执行的基础。1. 内中断内中断又称异常或例外它与当前正在执行的指令有关中断信号来源于 CPU 内部。常见类型包括陷阱或陷入应用程序主动执行陷入指令请求操作系统服务故障由可恢复的错误条件引起例如缺页故障。内核处理完成后原程序可以继续执行终止由严重错误引起例如用户态非法执行特权指令。内核通常终止相关程序不再返回原执行位置。2. 外中断外中断与当前正在执行的指令无关信号来自 CPU 外部。时钟中断使操作系统能够定期检查时间片、进行调度I/O 中断则用于通知设备事件例如磁盘读写完成、键盘输入到达。3. 中断处理过程不同中断需要不同的处理程序。CPU 检测到中断信号后保存必要的现场信息进入内核态再根据中断类型查询中断向量表找到对应处理程序的入口地址。处理完成后系统依据现场信息决定恢复原程序还是调度其他程序运行。这条路径解释了单核 CPU 上的“同时运行”时钟中断不断给操作系统提供重新调度的机会CPU 才能在多个程序之间切换。五、系统调用应用程序请求内核服务的正规通道用户程序没有直接操作共享资源的权限但它仍需要创建文件、申请内存、读取键盘输入、发送网络数据。系统调用就是操作系统向应用程序提供的程序接口。凡是涉及进程控制、文件管理、设备管理、内存管理和进程通信等共享资源的操作都应通过系统调用请求内核处理。这样做可以让内核统一完成权限检查、资源分配和冲突协调。以打印为例两个应用程序若能直接、并发地控制打印设备输出内容可能交错在同一页上。通过系统调用提交请求后内核可以按规则排队和调度保证设备使用有序。一次典型系统调用可以概括为四步应用程序将调用号和所需参数传递给寄存器或内存应用程序执行陷入指令CPU 产生内中断并切换到内核态内核根据调用号执行对应服务程序服务完成后恢复用户态应用程序继续执行。需要区分系统调用与库函数。库函数是语言运行库或应用程序提供的函数封装一部分库函数内部会发起系统调用一部分只完成用户态计算。例如简单的数学计算可能不需要内核介入而创建文件、读写设备等操作则需要系统调用。六、内核结构性能、可靠性与扩展性的取舍内核是操作系统中最核心的部分负责执行需要高权限的关键功能。围绕“哪些功能放进内核”这一问题不同结构有不同取舍。1. 大内核与微内核大内核将主要系统服务放在内核态运行。模块间可以直接调用性能较高代价是内核代码规模大、耦合更紧一个内核模块出现严重问题可能影响整个系统。微内核只把中断处理、原语、进程间通信等最基本功能保留在内核态将文件服务、设备服务等更多功能放到用户态服务进程中。它的结构更清晰隔离性和可维护性更好相应地服务之间需要频繁通信用户态与内核态切换增多性能开销也更大。因此大内核更偏向性能微内核更强调可靠性和扩展性。实际系统往往会根据场景进行折中设计。2. 外核外核尽量少做抽象主要负责为用户进程分配和回收连续的硬件资源并保证资源使用安全。它减少了抽象层带来的开销允许应用更灵活地使用硬件同时也增加了系统设计复杂度并降低了不同应用之间的一致性。七、从开机到系统接管操作系统引导操作系统本身也是存放在外存中的程序计算机加电后不能直接从磁盘“自动运行”完整系统需要一个逐步加载的过程。简化后的引导流程如下CPU 从预设地址开始执行固件中的引导代码完成基础硬件初始化与自检固件定位可引导设备并加载引导程序引导程序读取启动所需配置和操作系统核心组件内核完成初始化建立内存管理、设备管理等运行环境随后启动用户空间的系统服务。不同平台的具体实现会有差异。以 Windows 为例启动相关文件和配置由引导管理机制组织学习本章时更重要的是理解“固件代码逐级加载引导程序再由引导程序加载内核”的链条。八、虚拟机在一台物理机上运行多个计算环境虚拟机利用虚拟化技术将一台物理机器抽象成多台逻辑机器。每台虚拟机都可以安装自己的客户操作系统并获得看似独立的 CPU、内存、磁盘和设备。虚拟机管理程序 VMM 常分为两类类型部署位置特点第一类 VMM直接运行在硬件之上能直接控制和分配硬件资源性能通常更好可支持更多虚拟机第二类 VMM运行在宿主操作系统之上依赖宿主系统分配资源安装和迁移更方便但多了一层开销第二类 VMM 中虚拟磁盘通常对应宿主操作系统文件系统中的一个大文件客户操作系统对它的读写会由 VMM 和宿主系统共同处理。第一类 VMM 更接近硬件适合服务器等需要集中管理大量虚拟机的场景第二类 VMM 更适合桌面环境中的开发、测试和学习。虚拟机体现了操作系统“抽象与复用”的思想同一套物理资源经过隔离和调度后可以向不同用户提供彼此独立的运行环境。总结第一章的核心不在于记住术语而在于理解一套连续机制操作系统统一管理有限资源通过用户态和内核态划定权限边界借助中断获得控制权再通过系统调用向应用程序提供受控服务。在此基础上并发、虚拟化和不同内核结构才有了实现空间。

相关新闻

多任务评测先拆哪段验证链路

多任务评测先拆哪段验证链路

多任务评测先拆哪段验证链路 1. 拆不动的大单体:2000 行评测脚本成了团队噩梦 本文围绕“NLP 模型评测与多任务性能对比:核心链路应该先拆哪一步”整理一个可复查的技术检查点。文中的容量、时延和故障情形只用于说明验证方法;实际判断应以锁…

2026/8/22 11:37:33 阅读更多 →
Claude怎么复制表格 ?技术拆解与“AI导出鸭”的工程解法

Claude怎么复制表格 ?技术拆解与“AI导出鸭”的工程解法

Claude怎么复制表格 ?技术拆解与“AI导出鸭”的工程解法 一、痛点:当“复制粘贴”遭遇结构化数据塌方 与Claude协作时,一个高频却长期被低估的工程困境是:表格怎么从对话界面无损流转到文档系统? 实测数据触目惊心。An…

2026/8/22 13:03:59 阅读更多 →
Flutter+OpenHarmony跨端开发实践:校园招聘应用

Flutter+OpenHarmony跨端开发实践:校园招聘应用

1. 项目背景与需求分析校园招聘应用作为连接高校学生与企业的重要桥梁,面临着多终端适配的挑战。传统解决方案通常需要为Android、iOS、Web等平台分别开发独立应用,导致开发成本高、维护困难。而采用FlutterOpenHarmony的跨端方案,能够实现一…

2026/8/22 13:02:52 阅读更多 →

最新新闻

三步解包微信小程序:unwxapkg 解 wxapkg 工具完整指南

三步解包微信小程序:unwxapkg 解 wxapkg 工具完整指南

三步解包微信小程序:unwxapkg 解 wxapkg 工具完整指南 【免费下载链接】unwxapkg WeChat applet .wxapkg decoding tool 项目地址: https://gitcode.com/gh_mirrors/un/unwxapkg 这篇文章写给从没碰过微信小程序解包、连 .wxapkg 是什么都搞不清的你。我会手…

2026/8/22 14:01:41 阅读更多 →
以太网接口与链路配置实战:从基础参数到链路聚合优化

以太网接口与链路配置实战:从基础参数到链路聚合优化

1. 项目概述:从接口到链路的实战脉络搞网络的人,每天打交道最多的可能就是以太网接口了。从机房里一排排闪烁的交换机端口,到服务器后面板上的网卡,再到你工位下那个不起眼的RJ-45水晶头,这些都是以太网接口的物理呈现…

2026/8/22 14:01:41 阅读更多 →
Java插入排序算法详解:从原理到实战应用与优化

Java插入排序算法详解:从原理到实战应用与优化

1. 项目概述:为什么插入排序是算法入门的“定心丸”刚接触数据结构与算法的朋友,尤其是从Java开始的朋友,常常会被各种排序算法的名字和复杂度公式吓到。冒泡、选择、快速、归并……听起来一个比一个复杂。但如果你问我,在十大经典…

2026/8/22 14:01:41 阅读更多 →
HTTP 5xx服务器错误全解析:从502/504到503,实战排查与架构预防指南

HTTP 5xx服务器错误全解析:从502/504到503,实战排查与架构预防指南

1. 从一次深夜告警说起:为什么5xx错误让人头疼凌晨两点,手机突然开始疯狂震动。打开一看,监控系统里一片飘红,全是“HTTP 500 Internal Server Error”的告警。用户反馈页面打不开,订单提交失败,整个核心业…

2026/8/22 14:01:41 阅读更多 →
SprocketsHandler还是RackHandler?serviceworker-rails双处理器差异、切换与自定义方法完全指南

SprocketsHandler还是RackHandler?serviceworker-rails双处理器差异、切换与自定义方法完全指南

SprocketsHandler还是RackHandler?serviceworker-rails双处理器差异、切换与自定义方法完全指南 【免费下载链接】serviceworker-rails Use Service Worker with the Rails asset pipeline 项目地址: https://gitcode.com/gh_mirrors/se/serviceworker-rails …

2026/8/22 14:01:40 阅读更多 →
2000-2024年全球1km人口密度栅格数据全集

2000-2024年全球1km人口密度栅格数据全集

长时间序列的人口密度栅格数据是解析人类活动时空演进轨迹的核心工具。这套数据能够系统揭示人口分布随时间的动态演变规律,精准识别人口增长、空间迁移、集聚效应与收缩格局的多维模式,为城市规划优化、资源合理配置、环境保护决策、灾害风险预警以及社…

2026/8/22 14:00:40 阅读更多 →

日新闻

沉金PCB工艺实战指南:从设计到SMT焊接的可靠性保障

沉金PCB工艺实战指南:从设计到SMT焊接的可靠性保障

在电子硬件开发领域,PCB(印制电路板)的沉金工艺是提升产品可靠性和焊接质量的关键环节。对于需要高密度互连、长期稳定运行或高频信号传输的板卡,如“黍姐仿通行证”这类可能涉及身份识别、数据交互的硬件项目,选择正确…

2026/8/22 0:00:11 阅读更多 →
电气考研电路八月强化四步法:从知识体系到真题实战的闭环攻略

电气考研电路八月强化四步法:从知识体系到真题实战的闭环攻略

这次我们来看一个针对电气考研电路科目的学习规划项目。它不是软件工具,而是一套聚焦于8月份关键节点的备考策略。对于电气工程考研的同学来说,电路分析是专业课的重中之重,也是拉开分差的关键。进入8月,复习进入强化阶段&#xf…

2026/8/22 0:00:11 阅读更多 →
消除AI代码的“AI味”:Claude Code设计优化技能配置与实战指南

消除AI代码的“AI味”:Claude Code设计优化技能配置与实战指南

大家好,我是专注于前端开发与AI工具实践的技术博主。在日常使用 Claude Code 等AI编程助手时,你是否也遇到过这样的困扰:生成的代码功能上没问题,但代码风格、组件设计、交互逻辑总透着一股“AI味”——布局单调、样式简陋、交互生…

2026/8/22 0:00:11 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/21 3:21:33 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/22 8:09:09 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/21 6:07:56 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/21 16:42:28 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/22 7:31:03 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/22 3:22:48 阅读更多 →