Re:Linux系统篇(十一):进程篇前传:冯诺依曼计算机组成原理,操作系统的基本概念


一、冯·诺依曼体系:计算机怎么工作?
最简单理解就是:
输入 → 存储 → CPU处理 → 存储 → 输出
输入设备:键盘、鼠标等,把数据交给计算机。
存储器(内存):暂时保存程序和数据。
CPU:真正负责“计算和控制”。
运算器:负责算,比如加减乘除、逻辑判断。
控制器:负责指挥,决定下一步做什么。
输出设备:显示器、打印机等,把处理结果给用户。
一个很重要的点:
CPU主要直接和内存打交道,外设不能简单理解成直接和CPU随意交换数据。
二、存储层次:为什么有这么多“内存”?
可以把它理解成一个离 CPU 越近,越快但越贵、容量越小的金字塔:
寄存器 → L1/L2/L3 Cache → 内存 RAM → SSD/HDD → 远程存储
记住这个规律就够了:
越往上:越快、越贵、容量越小
越往下:越慢、越便宜、容量越大
例如:
寄存器:CPU手里正在使用的数据,最快。
Cache:CPU附近的“临时仓库”,保存经常使用的数据。
RAM内存:正在运行的程序和数据主要放这里。
SSD/HDD:长期保存文件。
远程存储:网络服务器、云盘等,容量大,但访问更慢。
三、和“进程”联系起来
这部分后面学习 Linux 进程 时非常重要:
程序 ≠ 进程
程序可以理解成“躺在磁盘上的一份代码”。
当你运行它以后:
磁盘上的程序 → 加载到内存 → 操作系统创建进程 → CPU执行
进程 = 程序的一次运行过程
操作系统会负责对进程进行创建、调度、切换、管理和资源分配。
操作系统是什么

“操作系统到底是什么,以及它在计算机里干什么”,可以把它理解成一句话:操作系统(OS)就是计算机的“大管家”,负责管理 CPU、内存、文件和各种设备,并通过系统调用给应用程序提供服务。
1. 什么是操作系统?
操作系统是一层介于用户/应用程序和硬件之间的软件。
你可以把计算机想成一个公司:
硬件 = 公司里的各种资源
应用程序 = 来办事的人
操作系统 = 管理这些资源的管理员
操作系统主要包含:
内核(Kernel):最核心,直接管理硬件资源
系统程序:Shell、各种工具等
应用程序:浏览器、编辑器、游戏等
驱动程序:让操作系统能够控制硬件设备
2. 操作系统最核心的任务:管理
这里的“管理”不要想得太复杂,就是:
把有限的计算机资源合理地分配给不同的程序。
主要管理四样东西:
| 管理什么 | 简单理解 |
|---|---|
| 进程管理 | 决定哪个程序运行、运行多久 |
| 内存管理 | 决定程序的数据放在哪里 |
| 文件管理 | 管理文件的创建、读取、删除、保存 |
| 设备管理 | 管理键盘、磁盘、网卡、打印机等 |
所以你前面学习的进程,其实就是操作系统管理的重要对象之一。
3. 操作系统处于什么位置?
可以记住这个结构:
用户 → 应用程序 → 操作系统 → 硬件
例如你打开一个文件:
你点击文件 → 应用程序请求读取 → OS处理请求 → 磁盘读取数据 → OS返回结果 → 应用程序显示
应用程序一般不能直接随便操作硬件,而是通过操作系统来完成。
4. 什么叫“系统调用”?
这是这几页里非常重要的一个概念。
应用程序想让操作系统帮忙做事情,就要通过:
系统调用(System Call)
例如程序想:
创建进程
打开文件
读取文件
写入文件
申请内存
就可以向操作系统发出请求。
可以简单记成:
应用程序 → 系统调用 → 操作系统内核 → 硬件
5. 系统调用和库函数有什么区别?
这个地方容易混。
可以这样理解:
应用程序 → 库函数 → 系统调用 → 内核
例如 C 语言中的 printf():
你的程序
↓
printf() ← 库函数
↓
write() ← 系统调用
↓
Linux 内核
↓
硬件
库函数是给程序员用起来更方便的“包装”,系统调用才是程序进入操作系统内核的重要接口。
⭐总结一下
操作系统 = 计算机的大管家。
它向下管理硬件资源,向上为应用程序提供服务。
核心工作就是管理 进程、内存、文件、设备。
应用程序不能随便直接操作硬件,需要通过 系统调用 请求操作系统内核完成工作。
库函数是方便程序员使用的接口,系统调用是进入内核的重要通道。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)