【Linux系统编程:进程概念】——【从 冯诺依曼系统体系结构 到 操作系统】


💯枫亭湖区: 个人主页

🥰个人专栏: 《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 会集成多级缓存(L1L2L3),但缓存本质是内存的"加速延伸",核心数据交互仍遵循冯诺依曼规则

  • 存储层次关系(从快到慢、成本从高到低):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 数据区,并驱动显示器刷新


总结:冯·诺依曼视角下的核心特征

在这个过程中,你可以看到数据流动的核心规律:

  1. 一切皆在内存 :无论是你的聊天记录、输入的文字,还是 QQ 的代码,所有数据必须在存储器中汇集,才能被 CPU 处理

  2. 控制器是指挥官:它决定了什么时候从网卡接收数据,什么时候把数据发往显卡

  3. 运算器是加工厂:它负责对你的消息进行加密、编码和界面坐标计算

一句话概括:这是一个数据在输入设备输入、内存暂存、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):用户交互界面(比如 LinuxBash,或者 Windows 的桌面环境)
    • 系统服务/工具:如磁盘管理工具、网络配置工具、编译器、甚至自带的文本编辑器

我们日常使用的 CentOSUbuntu 属于广义 OS ,而 Linux 内核则是狭义 OS 的核心(我们后面所讲的操作系统指的也是这个)


3.2 设计OS的目的

承上启下

我们观察一下图片中的架构图

OS 在计算机架构中处于"中间层",核心作用是"对下管理硬件,对上服务应用":

  • 对下 :屏蔽硬件差异(如不同品牌网卡的驱动适配),管理所有软硬件资源(统一管理 CPU、内存、硬盘等资源),遵循冯诺依曼规则协调数据流动

  • 对上 :为用户程序,上层应用程序(如 QQGCC)提供统一接口(系统调用 / 库函数),让应用无需关注硬件细节(如如何读写硬盘、分配内存),拥有一个良好的执行环境


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 的两层接口:

  1. 系统调用 ------内核态接口,是用户空间访问内核资源的唯一合法入口(如fork创建进程、open打开文件)

  2. 库函数 ------对系统调用的二次封装(如 glibcMSVCRT

调用链路: 应用→库函数→系统调用→OS 内核→硬件

所以操作系统进行进程管理------先把进程描述起来,再把进程组织起来


💻结尾--- 核心连接协议

警告: 🌠🌠正在接入底层技术矩阵。如果你已成功破解学习中的逻辑断层,请执行以下指令序列以同步数据:🌠🌠


【📡】 建立深度链接: 关注本终端。在赛博丛林中深耕底层架构,从原始代码到进阶协议,同步见证每一次系统升级。

【⚡】 能量过载分发: 执行点赞操作。通过高带宽分发,让优质模组在信息流中高亮显示,赋予知识跨维度的传播力。

【💾】 离线缓存核心: 将本页加入收藏。把这些高频实战逻辑存入你的离线存储器,在遭遇系统崩溃或需要离线检索时,实现瞬时读取。

【💬】 协议加密解密:评论区留下你的散列码。分享你曾遭遇的代码冲突或系统漏洞(那些年踩过的坑),通过交互式编译共同绕过技术陷阱。

【🛰️】 信号频率投票: 通过投票发射你的选择。你的每一次点击都在重新定义矩阵的进化方向,决定下一个被全量拆解的技术节点。


相关推荐
lld9510271 小时前
(一)云回测:量化策略上线前的必经之路
java·服务器·数据库
带娃的IT创业者1 小时前
数字考古学:当整个操作系统史被装进一个浏览器
操作系统·前端开发·webassembly·虚拟化技术·数字考古学·windows 95·复古计算
2023自学中1 小时前
imx6ull 开发板,手机,MQTT 物联网通信实验。
linux·服务器·物联网·嵌入式·开发板·应用编程
f8979070701 小时前
把文件进行锁死,不要有写的权限。不被恶意攻击
linux
用户2367829801681 小时前
Linux kill 命令:从信号机制到进程管理的深度解析
linux
00后程序媛2 小时前
ubuntu安装qemu和xv6
linux·运维·ubuntu
载数而行5202 小时前
Linux操作系统 5 组管理,权限管理
linux
疯狂打码的少年2 小时前
Cache的三种映射方式(直接/全相联/组相联)
linux·服务器·数据库·笔记
阿狸猿2 小时前
论系统负载均衡设计方法
运维·负载均衡