在这里插入图片描述

观众老爷们大家好 这里是邪修KING的独家频道
本文属于系列Linux系统篇 ——操作指令
一起学Linux的小伙伴可订阅专栏: 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 内核

硬件

库函数是给程序员用起来更方便的“包装”,系统调用才是程序进入操作系统内核的重要接口。

⭐总结一下

操作系统 = 计算机的大管家。
它向下管理硬件资源,向上为应用程序提供服务。
核心工作就是管理 进程、内存、文件、设备。
应用程序不能随便直接操作硬件,需要通过 系统调用 请求操作系统内核完成工作。
库函数是方便程序员使用的接口,系统调用是进入内核的重要通道。
在这里插入图片描述

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐