
🔥草莓熊Lotso: 个人主页
❄️个人专栏: 《C++知识分享》 《Linux 入门到实践:零基础也能懂》
✨生活是默默的坚持,毅力是永久的享受!
🎬 博主简介:

文章目录
- 前言:
- [一. 冯诺依曼体系结构:现代计算机的硬件协作规则](#一. 冯诺依曼体系结构:现代计算机的硬件协作规则)
-
- [1.1 计算机的核心组件](#1.1 计算机的核心组件)
- [1.2 关键补充:CPU 的核心地位](#1.2 关键补充:CPU 的核心地位)
- [1.3 数据流动实际场景:QQ 发送文字消息和文件](#1.3 数据流动实际场景:QQ 发送文字消息和文件)
- [二. 操作系统:软硬件的 "中间人" 与 "管理者"](#二. 操作系统:软硬件的 “中间人” 与 “管理者”)
-
- [2.1 操作系统的核心概念](#2.1 操作系统的核心概念)
- [2.2 设计 OS 的目的(核心定位:承上启下的关键角色)](#2.2 设计 OS 的目的(核心定位:承上启下的关键角色))
- [2.3 四大核心功能:OS的 "管理使命"](#2.3 四大核心功能:OS的 “管理使命”)
- [2.4 "管理" 的本质:3步搞定所有资源](#2.4 “管理” 的本质:3步搞定所有资源)
- [2.5 系统调用与库函数:OS的 "对外接口"](#2.5 系统调用与库函数:OS的 “对外接口”)
- 结尾:
前言:
无论是日常使用的 Linux 服务器,还是开发时运行的应用程序,其底层都离不开两大核心基础:
冯诺依曼体系结构(硬件协作规则)和操作系统(软硬件中间层)。很多开发者只关注上层代码,却忽略了这两层的核心逻辑,导致遇到 "数据为什么要先入内存","OS 为什么能管理进程" 等问题时难以理解。本文先拆解冯诺依曼体系的硬件组成与数据流动规则,再延伸到操作系统的定位、功能与 "管理" 本质,帮你打通"硬件→OS→应用"的全链路认知,理解 Linux 系统运行的底层逻辑。
一. 冯诺依曼体系结构:现代计算机的硬件协作规则
冯诺依曼体系由五大核心硬件组件构成,各组件各司其职。我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系。

1.1 计算机的核心组件
截止目前,我们所认识的计算机,都是由一个个的硬件组件组成:
- 输入单元:包括键盘,鼠标,扫描仪,写板等
- 中央处理器(CPU):含有运算器和控制器等
- 输出单元:显示器,打印机等。
- 即可以是输入又是输出单元:网卡,硬盘等
| 组件 | 功能描述 | 常见设备 |
|---|---|---|
| 输入设备 | 向计算机输入数据 / 指令 | 键盘、鼠标、扫描仪、触摸屏、U 盘 |
| 输出设备 | 将计算机处理后的结果呈现给用户 | 显示器、打印机、音箱、硬盘 |
| 存储器 | 存储数据和指令(此处特指内存 / RAM) | DDR 内存、SDRAM |
| 运算器 | 执行算术运算(加减乘除)和逻辑运算(与或非) | CPU 中的 ALU(算术逻辑单元) |
| 控制器 | 协调各组件工作,控制指令执行顺序 | CPU 中的控制单元(CU) |
🔥 关于冯诺依曼,必须强调几点:
这里的存储器指的是内存不考虑缓存情况,这里的CPU能且只能对内存进行读写,不能访问外设(输入或输出设备)(数据层面)外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取一句话总结,CPU不和外设打交道,所有设备都只能直接和内存打打交道。
📊 图片理解:(为什么要存在内存?)


1.2 关键补充:CPU 的核心地位
- 运算器和控制器共同组成中央处理器(
CPU),是计算机的 "大脑"; - 现代 CPU 会集成多级缓存(
L1、L2、L3),但缓存本质是内存的 "加速延伸",核心数据交互仍遵循冯诺依曼规则; - 存储层次关系(从快到慢、成本从高到低):
CPU 寄存器 → 高速缓存 → 内存 → 本地磁盘 → 远程存储。

1.3 数据流动实际场景:QQ 发送文字消息和文件
以 "QQ 发送'在吗?'消息 和 发送文件" 为例,直观理解数据如何遵循冯诺依曼规则流动:


二. 操作系统:软硬件的 "中间人" 与 "管理者"
冯诺依曼体系定义了硬件规则,但直接操作硬件过于复杂(需处理设备差异、数据格式等)。操作系统(OS)作为核心系统软件,承接硬件、服务应用,核心使命是 "管理资源 + 屏蔽复杂性" ,可以理解为是一个进行软硬件资源管理的软件。
📝 操作系统包括:
- 内核(进程管理,内存管理,文件管理,驱动管理)
- 其他程序(例如函数库,shell程序等)
2.1 操作系统的核心概念
操作系统是一个 "软件集合",分为广义 和狭义两类:
- 狭义 OS(内核 / Kernel):直接与硬件交互,核心包含进程管理、内存管理、文件管理、驱动管理四大模块;
- 广义 OS:内核 + Shell(命令行解释器)+ 函数库(如 glibc)+ 系统工具(如 ls、cp),为用户和应用提供完整运行环境。
我们日常使用的 CentOS、Ubuntu 属于广义 OS,而 Linux 内核则是狭义 OS 的核心(我们后面所讲的操作系统指的也是这个)。

2.2 设计 OS 的目的(核心定位:承上启下的关键角色)
OS 在计算机架构中处于 "中间层",核心作用是 "对下管理硬件,对上服务应用":
- 对下:屏蔽硬件差异(如不同品牌网卡的驱动适配),管理所有软硬件资源(统一管理 CPU、内存、硬盘等资源),遵循冯诺依曼规则协调数据流动;
- 对上:为用户程序,上层应用程序(如 QQ、GCC)提供统一接口(系统调用 / 库函数),让应用无需关注硬件细节(如如何读写硬盘、分配内存),拥有一个良好的执行环境。

2.3 四大核心功能:OS的 "管理使命"
在整个计算机软硬件架构中,操作系统的定位是:一款纯正的 "搞管理" 的软件
📊 四大核心功能(这里暂时只做了解即可):
| 模块 | 核心目标 | 核心操作 | 实际意义 |
|---|---|---|---|
| (1)进程管理:CPU 资源的 "调度员" | 解决 "CPU 资源有限,进程众多" 的竞争问题,让多进程公平、高效执行; | 进程创建(fork )、调度(如 Linux 的 O(1) 算法 )、终止、通信(IPC); | 让你同时运行浏览器、终端、编译器时,不会出现 "一个程序占满 CPU" 的情况。 |
| (2)内存管理:内存空间的 "管理员" | 高效分配、回收内存 ,为进程提供独立地址空间,避免冲突和浪费; | 内存分配、回收,虚拟地址→物理地址映射 (页表 + MMU); | 每个进程都以为自己独占内存 ,互不干扰,同时最大化利用物理内存。 |
| (3)文件管理:存储资源的 "管家" | 管理硬盘等存储设备中的文件,提供统一访问接口; | 文件创建、删除、读写,权限控制 (如 Linux 的 rwx); | 你无需关心文件在硬盘的物理位置 ,通过 ls 、open 等命令即可操作。 |
| (4)驱动管理:硬件设备的 "翻译官" | 为硬件提供驱动程序 ,将 OS 的统一指令转换为硬件能识别的信号; | 驱动程序的加载、管理与交互; | 插入 U 盘自动识别 、网卡正常上网 、键盘输入被响应,都依赖驱动管理。 |

2.4 "管理" 的本质:3步搞定所有资源
OS 的管理逻辑和现实场景(如学校校长管理学生)完全一致。核心分为两步,这也是Linux内核的设计思路:
- 描述被管理对象:用结构体(struct)记录资源信息
- 组织被管理对象:用高效数据结构(链表,红黑树等)组织结构体
- 总结:先描述,再组织(下面的图要结合之前的图一起理解)


2.5 系统调用与库函数:OS的 "对外接口"
OS 通过两层接口向应用提供服务,降低使用门槛:
- 系统调用 :内核直接提供的底层接口(如
fork创建进程、open打开文件),功能基础、权限高,但使用复杂; - 库函数 :对系统调用的封装(如 glibc 的
printf封装write、fopen封装open),简化使用,提供额外功能(如缓存、错误处理); - 调用链路 :
应用→库函数→系统调用→OS 内核→硬件。
结合银行系统和之前的几张图来理解:

- 在开发角度,操作系统对外会表现为一个整体,但是会暴露自己的部分接口,供上层开发使用,在这部分由操作系统提供的接口,叫做系统调用。
- 系统调用在使用上,功能比较基础,对用户的要求也相对比较高,所以有心的开发者就可以对部分系统调用进行适度封装,从而形成库,有了库,就很有利于上层用户或者开发者进行二次开发,且这样做可以增强可移植性,跨平台性。
📌思考:学到这里,大家想想操作系统是怎么进行进程管理的呢?
- 很简单,先把进程描述起来,再把进程组织起来!!!
结尾:
html
🍓 我是草莓熊 Lotso!若这篇技术干货帮你打通了学习中的卡点:
👀 【关注】跟我一起深耕技术领域,从基础到进阶,见证每一次成长
❤️ 【点赞】让优质内容被更多人看见,让知识传递更有力量
⭐ 【收藏】把核心知识点、实战技巧存好,需要时直接查、随时用
💬 【评论】分享你的经验或疑问(比如曾踩过的技术坑?),一起交流避坑
🗳️ 【投票】用你的选择助力社区内容方向,告诉大家哪个技术点最该重点拆解
技术之路难免有困惑,但同行的人会让前进更有方向~愿我们都能在自己专注的领域里,一步步靠近心中的技术目标!
结语:冯诺依曼体系是硬件的 "协作准则",操作系统是软硬件的 "中间管理者",两者共同构成了 Linux 系统运行的底层基础。理解这两层逻辑,能让你从 "只会用 Linux" 升级到 "理解 Linux"------ 遇到 "权限不足""内存泄漏" 等问题时,能快速定位到底层原因。后续我们可以深入拆解 Linux 内核的具体实现,如task_struct的结构、进程调度的 O (1) 算法、虚拟内存的映射机制等。
✨把这些内容吃透超牛的!放松下吧✨ ʕ˘ᴥ˘ʔ づきらど
