

🥰个人专栏: 《C++知识分享》 《Linux 入门到实践:零基础也能懂》
🌠 有善始者实繁,能克终者盖寡

索引与导读
- 前言
-
- 一、深入解析:冯·诺依曼体系结构
-
- [1.1 计算机的核心组件](#1.1 计算机的核心组件)
- [1.2 为什么要存在内存?](#1.2 为什么要存在内存?)
- [1.3 CPU 的核心地位](#1.3 CPU 的核心地位)
- [二、QQ 发送文字消息和文件(从冯诺依曼体系结构分析)](#二、QQ 发送文字消息和文件(从冯诺依曼体系结构分析))
-
- [1. 启动阶段:从外存到内存](#1. 启动阶段:从外存到内存)
- [2. 初始化与登录:CPU 开始介入](#2. 初始化与登录:CPU 开始介入)
- [1. 启动阶段:从外存到内存](#1. 启动阶段:从外存到内存)
- [2. 初始化与登录:CPU 开始介入](#2. 初始化与登录:CPU 开始介入)
- [3. 打开聊天窗口:随机访问](#3. 打开聊天窗口:随机访问)
- [4. 输入消息:数据的暂存与处理](#4. 输入消息:数据的暂存与处理)
- [5. 发送消息:数据的封装与外发](#5. 发送消息:数据的封装与外发)
- [6. 接收回复:闭环流动](#6. 接收回复:闭环流动)
- 总结:冯·诺依曼视角下的核心特征
- 三、串通软硬件------操作系统
-
- [3.1 操作系统的核心概念](#3.1 操作系统的核心概念)
- [3.2 设计OS的目的](#3.2 设计OS的目的)
- [3.3 OS的四大核心功能](#3.3 OS的四大核心功能)
- [3.4 系统调用与库函数(对外接口)](#3.4 系统调用与库函数(对外接口))
- [💻结尾--- 核心连接协议](#💻结尾— 核心连接协议)
前言
在深入探究 Linux 进程的奥秘之前,我们必须先理清计算机运作的底层逻辑 计算机并非空中楼阁,其行为受限于物理结构与管理机制
本章将开启一场从硬到软的溯源之旅:
-
冯·诺依曼体系结构:我们将首先确立硬件层面的基本共识,理解存储程序与指令流如何构成了现代计算机的骨架
-
操作系统 :随后,我们将探讨作为"管理者"的
OS如何通过"先描述,再组织"的核心哲学,在杂乱无章的硬件之上建立起秩序
理解了硬件的边界与管理的本质,我们才能真正领悟:进程不仅仅是执行中的程序,它是操作系统为了高效调度资源而创造的灵魂 只有脚踩体系结构的实地,方能仰望进程管理的星空
一、深入解析:冯·诺依曼体系结构
冯诺依曼体系由五大核心硬件组件构成,各组件各司其职

1.1 计算机的核心组件
截止目前,我们所认识的计算机,都是由一个个的硬件组件组成:
-
输入单元:包括键盘、鼠标、扫描仪、写板等
-
中央处理器:含有运算器和控制器等
-
输出单元:显示器、打印机等
-
即可以是输入又是输出单元:网卡、硬盘等
#mermaid-svg-AoW04l4zAa5Jn6bC{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-AoW04l4zAa5Jn6bC .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-AoW04l4zAa5Jn6bC .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-AoW04l4zAa5Jn6bC .error-icon{fill:#552222;}#mermaid-svg-AoW04l4zAa5Jn6bC .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-AoW04l4zAa5Jn6bC .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-AoW04l4zAa5Jn6bC .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-AoW04l4zAa5Jn6bC .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-AoW04l4zAa5Jn6bC .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-AoW04l4zAa5Jn6bC .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-AoW04l4zAa5Jn6bC .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-AoW04l4zAa5Jn6bC .marker{fill:#333333;stroke:#333333;}#mermaid-svg-AoW04l4zAa5Jn6bC .marker.cross{stroke:#333333;}#mermaid-svg-AoW04l4zAa5Jn6bC svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-AoW04l4zAa5Jn6bC p{margin:0;}#mermaid-svg-AoW04l4zAa5Jn6bC .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-AoW04l4zAa5Jn6bC .cluster-label text{fill:#333;}#mermaid-svg-AoW04l4zAa5Jn6bC .cluster-label span{color:#333;}#mermaid-svg-AoW04l4zAa5Jn6bC .cluster-label span p{background-color:transparent;}#mermaid-svg-AoW04l4zAa5Jn6bC .label text,#mermaid-svg-AoW04l4zAa5Jn6bC span{fill:#333;color:#333;}#mermaid-svg-AoW04l4zAa5Jn6bC .node rect,#mermaid-svg-AoW04l4zAa5Jn6bC .node circle,#mermaid-svg-AoW04l4zAa5Jn6bC .node ellipse,#mermaid-svg-AoW04l4zAa5Jn6bC .node polygon,#mermaid-svg-AoW04l4zAa5Jn6bC .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-AoW04l4zAa5Jn6bC .rough-node .label text,#mermaid-svg-AoW04l4zAa5Jn6bC .node .label text,#mermaid-svg-AoW04l4zAa5Jn6bC .image-shape .label,#mermaid-svg-AoW04l4zAa5Jn6bC .icon-shape .label{text-anchor:middle;}#mermaid-svg-AoW04l4zAa5Jn6bC .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-AoW04l4zAa5Jn6bC .rough-node .label,#mermaid-svg-AoW04l4zAa5Jn6bC .node .label,#mermaid-svg-AoW04l4zAa5Jn6bC .image-shape .label,#mermaid-svg-AoW04l4zAa5Jn6bC .icon-shape .label{text-align:center;}#mermaid-svg-AoW04l4zAa5Jn6bC .node.clickable{cursor:pointer;}#mermaid-svg-AoW04l4zAa5Jn6bC .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-AoW04l4zAa5Jn6bC .arrowheadPath{fill:#333333;}#mermaid-svg-AoW04l4zAa5Jn6bC .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-AoW04l4zAa5Jn6bC .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-AoW04l4zAa5Jn6bC .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-AoW04l4zAa5Jn6bC .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-AoW04l4zAa5Jn6bC .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-AoW04l4zAa5Jn6bC .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-AoW04l4zAa5Jn6bC .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-AoW04l4zAa5Jn6bC .cluster text{fill:#333;}#mermaid-svg-AoW04l4zAa5Jn6bC .cluster span{color:#333;}#mermaid-svg-AoW04l4zAa5Jn6bC div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-AoW04l4zAa5Jn6bC .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-AoW04l4zAa5Jn6bC rect.text{fill:none;stroke-width:0;}#mermaid-svg-AoW04l4zAa5Jn6bC .icon-shape,#mermaid-svg-AoW04l4zAa5Jn6bC .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-AoW04l4zAa5Jn6bC .icon-shape p,#mermaid-svg-AoW04l4zAa5Jn6bC .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-AoW04l4zAa5Jn6bC .icon-shape .label rect,#mermaid-svg-AoW04l4zAa5Jn6bC .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-AoW04l4zAa5Jn6bC .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-AoW04l4zAa5Jn6bC .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-AoW04l4zAa5Jn6bC :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 处理大脑
核心枢纽
外设
加载数据
交换数据
刷新数据
输入设备: 键盘/磁盘/网卡
输出设备: 显示器/磁盘/网卡
存储器: 内存
CPU: 运算器+控制器
🔥 关于冯诺依曼,必须强调几点:
-
这里的存储器 指的是内存
-
不考虑缓存情况,这里的
CPU能且只能对内存进行读写,不能访问外设(输入或输出设备)(数据层面) -
外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取
-
一句话,所有设备都只能直接和内存打交道
1.2 为什么要存在内存?
-
CPU 跑得极快,而硬盘读写极慢。内存速度介于两者之间,负责把数据预先从硬盘搬过来,让 CPU 不必浪费时间等待硬盘
-
根据冯·诺依曼架构,程序必须先加载到内存中才能运行。它是程序执行的临时阵地,负责存放正在运行的代码和实时产生的动态数据(如堆栈信息)
-
我们无法把所有数据都存在极快但极贵的 CPU 缓存里,也不想忍受硬盘的慢速。内存以适中的价格提供了足够的容量和性能,是性能与成本平衡的最佳方案
一句话总结:内存是计算机的"高速缓冲区",它让 CPU 强大的运算能力不被硬盘的慢速所限制
1.3 CPU 的核心地位
运算器和控制器 共同组成中央处理器(CPU) ,是计算机的 首脑;
-
现代
CPU会集成多级缓存(L1、L2、L3),但缓存本质是内存的"加速延伸",核心数据交互仍遵循冯诺依曼规则 -
存储层次关系(从快到慢、成本从高到低):
CPU寄存器 → 高速缓存 → 内存 → 本地磁盘 → 远程存储

二、QQ 发送文字消息和文件(从冯诺依曼体系结构分析)
1. 启动阶段:从外存到内存
当你双击 QQ 图标时,控制器向外存(硬盘)发送指令
- 数据流动 :
QQ的二进制执行文件(指令和静态数据)从硬盘被拷贝到存储器(内存)中 - 体系逻辑 :因为
CPU无法直接处理硬盘上的数据,必须先将其载入内存,这就是"存储程序"的体现
2. 初始化与登录:CPU 开始介入
-
取指 :控制器从内存中读取
QQ的初始化指令 -
译码与执行:运算器执行逻辑运算,比如初始化界面、验证本地缓存的登录凭证
-
输入参与 :此时,你通过键盘或鼠标输入账号密码 输入设备将信号转化为电信号,经过总线存入内存,再由
CPU进行加密处理 -
网络交互 :
CPU发出指令,通过网络适配器(也属于输入输出范畴)将登录请求发送至服务器,返回的确认信号再次通过内存进入CPU寄存器
1. 启动阶段:从外存到内存
当你双击 QQ 图标时,控制器向外存(硬盘)发送指令
-
数据流动 :
QQ的二进制执行文件(指令和静态数据)从硬盘被拷贝到存储器(内存)中 -
体系逻辑 :因为
CPU无法直接处理硬盘上的数据,必须先将其载入内存,这就是"存储程序"的体现
2. 初始化与登录:CPU 开始介入
-
取指 :控制器从内存中读取
QQ的初始化指令 -
译码与执行:运算器执行逻辑运算,比如初始化界面、验证本地缓存的登录凭证
-
输入参与 :此时,你通过键盘或鼠标输入账号密码 输入设备将信号转化为电信号,经过总线存入内存,再由
CPU进行加密处理 -
网络交互 :
CPU发出指令,通过网络适配器(也属于输入输出范畴)将登录请求发送至服务器,返回的确认信号再次通过内存进入CPU寄存器
3. 打开聊天窗口:随机访问
当你点击某位朋友的头像时:
-
寻址:控制器根据你的操作,在内存地址空间中定位到该朋友的个人信息和历史记录(如果已加载)
-
输出显示 :
CPU计算出聊天界面的像素数据,将其写入显存(内存的一部分或独立显存),输出设备(显示器)读取并渲染出窗口
4. 输入消息:数据的暂存与处理
你在输入框输入"你好":
-
流动过程 :键盘信号 → 操作系统内核 → 内存中的
QQ进程缓冲区 -
即时回显 :
CPU实时处理这些字符编码,并指令显卡将其显示在屏幕上,让你看到自己正在输入的文字 此时数据处于内存的栈或堆空间中
5. 发送消息:数据的封装与外发
当你按下"发送"键:
-
指令下达 :
CPU接收到发送指令,开始将内存缓冲区中的字符串封装成网络协议包(如添加包头、IP地址、加密等) -
最终流向:封装好的数据包从存储器(内存)出发,通过总线传输到网络接口卡(网卡),最后通过光纤/电缆流向互联网
6. 接收回复:闭环流动
当朋友回信时:
-
数据从网卡进入,触发一个"中断"信号告诉
CPU -
数据流动:网卡数据 → 存储器(内存)
-
呈现 :
CPU解析数据包,将文字内容更新到内存的UI数据区,并驱动显示器刷新
总结:冯·诺依曼视角下的核心特征
在这个过程中,你可以看到数据流动的核心规律:
-
一切皆在内存 :无论是你的聊天记录、输入的文字,还是
QQ的代码,所有数据必须在存储器中汇集,才能被CPU处理 -
控制器是指挥官:它决定了什么时候从网卡接收数据,什么时候把数据发往显卡
-
运算器是加工厂:它负责对你的消息进行加密、编码和界面坐标计算
一句话概括:这是一个数据在输入设备输入、内存暂存、CPU 加工、输出设备呈现,并最终通过网络/外存持久化的循环过程
#mermaid-svg-y6CP5uC39cqFI2e9{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-y6CP5uC39cqFI2e9 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-y6CP5uC39cqFI2e9 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-y6CP5uC39cqFI2e9 .error-icon{fill:#552222;}#mermaid-svg-y6CP5uC39cqFI2e9 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-y6CP5uC39cqFI2e9 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-y6CP5uC39cqFI2e9 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-y6CP5uC39cqFI2e9 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-y6CP5uC39cqFI2e9 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-y6CP5uC39cqFI2e9 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-y6CP5uC39cqFI2e9 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-y6CP5uC39cqFI2e9 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-y6CP5uC39cqFI2e9 .marker.cross{stroke:#333333;}#mermaid-svg-y6CP5uC39cqFI2e9 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-y6CP5uC39cqFI2e9 p{margin:0;}#mermaid-svg-y6CP5uC39cqFI2e9 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-y6CP5uC39cqFI2e9 .cluster-label text{fill:#333;}#mermaid-svg-y6CP5uC39cqFI2e9 .cluster-label span{color:#333;}#mermaid-svg-y6CP5uC39cqFI2e9 .cluster-label span p{background-color:transparent;}#mermaid-svg-y6CP5uC39cqFI2e9 .label text,#mermaid-svg-y6CP5uC39cqFI2e9 span{fill:#333;color:#333;}#mermaid-svg-y6CP5uC39cqFI2e9 .node rect,#mermaid-svg-y6CP5uC39cqFI2e9 .node circle,#mermaid-svg-y6CP5uC39cqFI2e9 .node ellipse,#mermaid-svg-y6CP5uC39cqFI2e9 .node polygon,#mermaid-svg-y6CP5uC39cqFI2e9 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-y6CP5uC39cqFI2e9 .rough-node .label text,#mermaid-svg-y6CP5uC39cqFI2e9 .node .label text,#mermaid-svg-y6CP5uC39cqFI2e9 .image-shape .label,#mermaid-svg-y6CP5uC39cqFI2e9 .icon-shape .label{text-anchor:middle;}#mermaid-svg-y6CP5uC39cqFI2e9 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-y6CP5uC39cqFI2e9 .rough-node .label,#mermaid-svg-y6CP5uC39cqFI2e9 .node .label,#mermaid-svg-y6CP5uC39cqFI2e9 .image-shape .label,#mermaid-svg-y6CP5uC39cqFI2e9 .icon-shape .label{text-align:center;}#mermaid-svg-y6CP5uC39cqFI2e9 .node.clickable{cursor:pointer;}#mermaid-svg-y6CP5uC39cqFI2e9 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-y6CP5uC39cqFI2e9 .arrowheadPath{fill:#333333;}#mermaid-svg-y6CP5uC39cqFI2e9 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-y6CP5uC39cqFI2e9 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-y6CP5uC39cqFI2e9 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-y6CP5uC39cqFI2e9 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-y6CP5uC39cqFI2e9 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-y6CP5uC39cqFI2e9 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-y6CP5uC39cqFI2e9 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-y6CP5uC39cqFI2e9 .cluster text{fill:#333;}#mermaid-svg-y6CP5uC39cqFI2e9 .cluster span{color:#333;}#mermaid-svg-y6CP5uC39cqFI2e9 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-y6CP5uC39cqFI2e9 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-y6CP5uC39cqFI2e9 rect.text{fill:none;stroke-width:0;}#mermaid-svg-y6CP5uC39cqFI2e9 .icon-shape,#mermaid-svg-y6CP5uC39cqFI2e9 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-y6CP5uC39cqFI2e9 .icon-shape p,#mermaid-svg-y6CP5uC39cqFI2e9 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-y6CP5uC39cqFI2e9 .icon-shape .label rect,#mermaid-svg-y6CP5uC39cqFI2e9 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-y6CP5uC39cqFI2e9 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-y6CP5uC39cqFI2e9 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-y6CP5uC39cqFI2e9 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}#mermaid-svg-y6CP5uC39cqFI2e9 .hardware>*{fill:#1a1a1a!important;stroke:#00ffcc!important;stroke-width:2px!important;color:#fff!important;}#mermaid-svg-y6CP5uC39cqFI2e9 .hardware span{fill:#1a1a1a!important;stroke:#00ffcc!important;stroke-width:2px!important;color:#fff!important;}#mermaid-svg-y6CP5uC39cqFI2e9 .hardware tspan{fill:#fff!important;} 1. 加载代码/接收数据
2. 取指 / 取数
3. 处理结果回写
输入消息
4. 刷新显示
5. 封装指令
硬盘 / 外部网络
存储器: 内存 RAM
控制器 & 运算器: CPU
输入设备: 键盘/鼠标
输出设备: 显示器
网卡/发送网络
三、串通软硬件------操作系统
任何计算机系统都包含⼀个基本的程序集合,称为操作系统(OS)
冯诺依曼体系定义了硬件规则,但直接操作硬件过于复杂(需处理设备差异、数据格式等) 操作系统作为核心系统软件,承接硬件、服务应用,核心使命是"管理资源 + 屏蔽复杂性",可以理解为是一个进行软硬件资源管理的软件
- 操作系统包括:
- 内核(进程管理,内存管理,文件管理,驱动管理)
- 其他程序 (例如函数库,
shell程序等)
3.1 操作系统的核心概念
-
狭义的操作系统仅仅指代内核。它是直接运行在硬件之上的最基础软件层
-
广义的操作系统 = 内核 + 系统配套软件
-
组成部分:
- 内核(上述的狭义
OS) - 库函数(如
C标准库libc,封装了复杂的系统调用) - 外壳(
Shell/GUI):用户交互界面(比如Linux的Bash,或者Windows的桌面环境) - 系统服务/工具:如磁盘管理工具、网络配置工具、编译器、甚至自带的文本编辑器
- 内核(上述的狭义
我们日常使用的 CentOS、Ubuntu 属于广义 OS ,而 Linux 内核则是狭义 OS 的核心(我们后面所讲的操作系统指的也是这个)

3.2 设计OS的目的
承上启下
我们观察一下图片中的架构图

OS 在计算机架构中处于"中间层",核心作用是"对下管理硬件,对上服务应用":
-
对下 :屏蔽硬件差异(如不同品牌网卡的驱动适配),管理所有软硬件资源(统一管理
CPU、内存、硬盘等资源),遵循冯诺依曼规则协调数据流动 -
对上 :为用户程序,上层应用程序(如
QQ、GCC)提供统一接口(系统调用 / 库函数),让应用无需关注硬件细节(如如何读写硬盘、分配内存),拥有一个良好的执行环境
3.3 OS的四大核心功能
| 核心功能 | 主要任务 | 核心价值 |
|---|---|---|
| 进程管理 | CPU 调度、进程同步、死锁处理 |
确保多任务有序并行 |
| 存储管理 | 内存分配、地址映射、虚拟内存 | 优化内存利用并隔离空间 |
| 设备管理 | 缓冲管理、驱动控制、设备分配 | 统一硬件接口,实现即插即用 |
| 文件管理 | 目录组织、读写权限、空间回收 | 结构化管理数据,保障安全 |
#mermaid-svg-cZ03qt6DV2KyL17Z{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-cZ03qt6DV2KyL17Z .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-cZ03qt6DV2KyL17Z .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-cZ03qt6DV2KyL17Z .error-icon{fill:#552222;}#mermaid-svg-cZ03qt6DV2KyL17Z .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-cZ03qt6DV2KyL17Z .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-cZ03qt6DV2KyL17Z .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-cZ03qt6DV2KyL17Z .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-cZ03qt6DV2KyL17Z .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-cZ03qt6DV2KyL17Z .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-cZ03qt6DV2KyL17Z .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-cZ03qt6DV2KyL17Z .marker{fill:#333333;stroke:#333333;}#mermaid-svg-cZ03qt6DV2KyL17Z .marker.cross{stroke:#333333;}#mermaid-svg-cZ03qt6DV2KyL17Z svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-cZ03qt6DV2KyL17Z p{margin:0;}#mermaid-svg-cZ03qt6DV2KyL17Z .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-cZ03qt6DV2KyL17Z .cluster-label text{fill:#333;}#mermaid-svg-cZ03qt6DV2KyL17Z .cluster-label span{color:#333;}#mermaid-svg-cZ03qt6DV2KyL17Z .cluster-label span p{background-color:transparent;}#mermaid-svg-cZ03qt6DV2KyL17Z .label text,#mermaid-svg-cZ03qt6DV2KyL17Z span{fill:#333;color:#333;}#mermaid-svg-cZ03qt6DV2KyL17Z .node rect,#mermaid-svg-cZ03qt6DV2KyL17Z .node circle,#mermaid-svg-cZ03qt6DV2KyL17Z .node ellipse,#mermaid-svg-cZ03qt6DV2KyL17Z .node polygon,#mermaid-svg-cZ03qt6DV2KyL17Z .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-cZ03qt6DV2KyL17Z .rough-node .label text,#mermaid-svg-cZ03qt6DV2KyL17Z .node .label text,#mermaid-svg-cZ03qt6DV2KyL17Z .image-shape .label,#mermaid-svg-cZ03qt6DV2KyL17Z .icon-shape .label{text-anchor:middle;}#mermaid-svg-cZ03qt6DV2KyL17Z .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-cZ03qt6DV2KyL17Z .rough-node .label,#mermaid-svg-cZ03qt6DV2KyL17Z .node .label,#mermaid-svg-cZ03qt6DV2KyL17Z .image-shape .label,#mermaid-svg-cZ03qt6DV2KyL17Z .icon-shape .label{text-align:center;}#mermaid-svg-cZ03qt6DV2KyL17Z .node.clickable{cursor:pointer;}#mermaid-svg-cZ03qt6DV2KyL17Z .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-cZ03qt6DV2KyL17Z .arrowheadPath{fill:#333333;}#mermaid-svg-cZ03qt6DV2KyL17Z .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-cZ03qt6DV2KyL17Z .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-cZ03qt6DV2KyL17Z .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-cZ03qt6DV2KyL17Z .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-cZ03qt6DV2KyL17Z .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-cZ03qt6DV2KyL17Z .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-cZ03qt6DV2KyL17Z .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-cZ03qt6DV2KyL17Z .cluster text{fill:#333;}#mermaid-svg-cZ03qt6DV2KyL17Z .cluster span{color:#333;}#mermaid-svg-cZ03qt6DV2KyL17Z div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-cZ03qt6DV2KyL17Z .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-cZ03qt6DV2KyL17Z rect.text{fill:none;stroke-width:0;}#mermaid-svg-cZ03qt6DV2KyL17Z .icon-shape,#mermaid-svg-cZ03qt6DV2KyL17Z .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-cZ03qt6DV2KyL17Z .icon-shape p,#mermaid-svg-cZ03qt6DV2KyL17Z .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-cZ03qt6DV2KyL17Z .icon-shape .label rect,#mermaid-svg-cZ03qt6DV2KyL17Z .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-cZ03qt6DV2KyL17Z .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-cZ03qt6DV2KyL17Z .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-cZ03qt6DV2KyL17Z :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 操作系统
学校: 校长
管理者
做决策
辅导员
采集数据
执行决策
驱动程序
学生
被管理者
做执行载体
另外需要强调:Linux操作系统、软件,基本都是C语言写的 ,所以我们描述被管理对象的时候用的struct而不是class
3.4 系统调用与库函数(对外接口)
OS 的两层接口:
-
系统调用 ------内核态接口,是用户空间访问内核资源的唯一合法入口(如
fork创建进程、open打开文件) -
库函数 ------对系统调用的二次封装(如
glibc、MSVCRT)
调用链路: 应用→库函数→系统调用→OS 内核→硬件
所以操作系统进行进程管理------先把进程描述起来,再把进程组织起来
💻结尾--- 核心连接协议
警告: 🌠🌠正在接入底层技术矩阵。如果你已成功破解学习中的逻辑断层,请执行以下指令序列以同步数据:🌠🌠
【📡】 建立深度链接: 关注本终端。在赛博丛林中深耕底层架构,从原始代码到进阶协议,同步见证每一次系统升级。
【⚡】 能量过载分发: 执行点赞操作。通过高带宽分发,让优质模组在信息流中高亮显示,赋予知识跨维度的传播力。
【💾】 离线缓存核心: 将本页加入收藏。把这些高频实战逻辑存入你的离线存储器,在遭遇系统崩溃或需要离线检索时,实现瞬时读取。
【💬】 协议加密解密: 在评论区留下你的散列码。分享你曾遭遇的代码冲突或系统漏洞(那些年踩过的坑),通过交互式编译共同绕过技术陷阱。
【🛰️】 信号频率投票: 通过投票发射你的选择。你的每一次点击都在重新定义矩阵的进化方向,决定下一个被全量拆解的技术节点。

