第1章 操作系统初识
第1章 操作系统初识
你每天都在双击图标、打开网页,但有没有想过:按下电源键的那一刻,是什么让一堆冷冰冰的芯片"活"了过来?你双击一个程序,又是谁在背后替它分配 CPU 和内存?
本章回答什么问题
- 操作系统到底是什么?它待在哪里?
- 操作系统能为我们做什么?
- 硬件、操作系统、软件三者是什么关系?
- 图形界面和命令行界面是什么关系?
- Windows 电脑上怎么装一个 Ubuntu?
正文
先看全景:计算机的三层结构
拆开一台电脑,你能看到的只有芯片、内存条、硬盘这些裸裸的硬件。光有它们,什么都干不了——不能上网,不能放视频。要让硬件干活,计算机其实分了三层:
- 最底层是硬件(Hardware):CPU、内存、硬盘、网卡。它们是纯粹的"肌肉",只会执行最底层的指令。
- 中间层是操作系统(Operating System,简称 OS):直接坐在硬件之上的"大管家"。它是开机后第一个加载的软件,一直常驻到关机。
- 最上层是应用程序(Application):浏览器、播放器、编辑器。它们不直接碰硬件,需要什么资源都通过操作系统去要。
三层的关系可以用一句话概括:硬件提供资源,操作系统管理资源,应用程序使用资源。
一个生活类比:操作系统是公司的行政部门
把计算机想象成一家公司:
- 硬件(CPU、内存、硬盘)= 公司的资产:会议室、工位、仓库;
- 应用程序(浏览器、播放器)= 一个个业务部门:销售、市场、研发;
- 操作系统 = 行政部门。

行政部门自己不做业务,但缺了它公司立刻乱套:两个部门抢同一间会议室,得有人仲裁;仓库钥匙人手一把,东西迟早丢光;新员工入职,得有人安排工位。操作系统干的就是这类事:它不直接替你完成业务,只负责管资源、定秩序、提供统一的办事窗口。
这个类比有一处失效,先说清楚:行政部门靠"协商"办事,而操作系统的管理是硬件级强制执行的,每秒发生几十亿次,程序想越界会被立刻拦下,没有商量余地。
操作系统能做什么:四大职责
那么这个"行政部门"每天到底在忙什么?拆开看就四件事。这四件事也是全书的骨架,后面每一章都在展开其中一个。
职责一:进程管理——让程序"活"过来,还能共享 CPU
程序躺在硬盘里只是一个死文件。只有被加载进内存、开始执行,它才有用。这个"正在运行的程序"有个专门的名字:进程(Process)。
CPU 的一个核心在同一时刻只能执行一条指令流,可你的电脑上浏览器、音乐、聊天工具看起来在同时跑。这是操作系统在玩一个叫**调度(Scheduling)**的魔术:让每个进程跑几毫秒,立刻换下一个,切换速度快到你的眼睛以为"大家都在同时运行"。
进程管理要负责:
- 给每个进程一个独立的"舞台",互不踩踏;
- 决定下一个用 CPU 的是谁、用多久;
- 处理进程的出生和死亡:创建、等待、终止、回收资源。
这部分内容在第 3 章《进程》和第 4 章《进程调度》详细展开。
职责二:内存管理——给每个程序一块"专属内存"
内存(Memory)是程序干活的工作台,正在执行的代码和处理的数据都必须放在内存里。
问题来了:工作台就那么大,想用的程序又多;如果两个程序随便往同一个位置写东西,数据立刻互相覆盖。操作系统的解法很妙:给每个进程一种"我独占了一大块内存"的错觉,背后再偷偷映射到真实的物理内存上。这个技术叫虚拟内存(Virtual Memory)。
有了它:
- 进程之间互相摸不到对方的内存,一个崩了不至于拖垮别人;
- 所有程序加起来需要的内存超过物理内存时,系统照样能跑(借硬盘当后备仓库)。
具体怎么做到的,第 6 章《虚拟内存》展开。
职责三:文件管理——把数据长久地记下来
内存一断电就清空,想长期保存数据必须写到硬盘。但硬盘只认"第几个扇区存了什么字节",它不懂什么是照片、什么是文档。
操作系统在裸硬盘之上加了一层抽象:文件系统(File System)。它把零散的扇区组织成"文件 + 文件夹"的树状结构,让你可以按名字存取数据,而不是按物理地址。
文件管理要负责:
- 文件的数据放在硬盘哪里、怎么找回;
- 谁能读、谁能改(权限);
- 多个程序同时使用硬盘时如何不打架。
Linux 还有个著名的世界观"一切皆文件",第 7 章《文件系统》细讲;数据如何真正落到硬盘,是第 8 章的内容。
职责四:设备管理——代表应用指挥一切硬件
键盘、鼠标、硬盘、网卡、显示器,每一款设备都有自己的脾气和操作方式。如果每个应用都自己写一遍硬件控制代码,程序员早就疯了。
操作系统把这活揽了过去:用叫**驱动(Driver)**的专门代码控制每种硬件,再向上提供简单统一的接口。比如在 Linux 里,不管是读硬盘还是收网卡数据,很多时候都能用同一套"读/写"操作搞定。
这个职责贯穿全书:硬盘部分在第 8 章,网卡部分在第 10 章《网络基础》。
还有一件事:给应用提供"办事窗口"
除了四大职责,操作系统还有一个重要身份:应用程序使用资源的唯一入口。
应用不能直接指挥硬盘写数据、网卡发包,所有请求都必须通过一个正式的通道提交给操作系统,这个通道叫系统调用(System Call)。这既是服务也是保护:假如任何程序都能直接摸硬件,一个 bug 就能让整台机器陪葬。
系统调用是第 11 章的主角,届时我们会用工具亲眼"偷看"一个程序发起了哪些系统调用。
回头看全景:现在可以回答开头的问题了
回到本章开头的两个问题:
- 按下电源后,是什么让芯片活过来? 是操作系统。它先醒来,接管所有硬件,再把舞台一个个让给应用程序。
- 双击程序后,谁在替它分配 CPU 和内存? 还是操作系统。双击背后是一连串动作:从硬盘加载程序 → 创建进程 → 分配内存 → 安排到 CPU 上运行。
内核与外壳:操作系统的"芯"和"壳"
还有一个高频概念:内核(Kernel)。
- 内核是操作系统真正的核心,也就是管进程、管内存、管设备、管文件的那部分代码。它常驻内存,权限最高。
- 而我们平时说的"操作系统",往往还包括一套外壳软件:命令行工具、桌面环境、系统设置等。
继续用公司类比:内核是行政部门本身;外壳软件是行政部给员工开的接待前台、订会议室系统——用起来方便,但不是部门本身。
为什么用 Linux 学操作系统
操作系统那么多:Windows、macOS、Android、iOS……为什么课程几乎都选 Linux?三个理由:
- 看得见。Linux 开源,机制都有文档,甚至系统自己就把内部状态暴露成文件(
/proc目录)供你随时偷看。后面章节我们会频繁用到这个"观察窗"。 - 用得多。服务器、安卓手机、车机、超算,几乎都是 Linux 的天下,学了立刻有用。
- 工具全。想观察进程、内存、网络,一条命令就有结果,不用装任何额外软件。
顺带解释一个你常听到的词:发行版(Distribution)。Linux 严格说只是内核的名字,各个组织把内核和一整套软件打包成完整系统,就成了发行版,比如 Ubuntu、Debian。可以理解为:同一个内核,不同的"装修套餐"。本课程统一使用 Ubuntu。
操作系统的两张面孔:图形界面与命令行
前面讲的都是操作系统"内部怎么管机器"。但对我们使用者来说,第一件事是:怎么跟它说话? 有两种方式,对应两种界面:

- 图形用户界面(Graphical User Interface,简称 GUI):桌面、图标、窗口、按钮,用鼠标点一点就完事。直观、好上手。Ubuntu 的桌面环境叫 GNOME:左边一条应用栏,左上角能打开"活动"总览,看起来和 Windows 不太一样,但思路相同。
- 命令行界面(Command Line Interface,简称 CLI):一个叫**终端(Terminal)**的窗口,你在里面敲文字命令,系统以文字回应。
打个比方:图形界面像自动挡汽车,谁都能立刻开;命令行像手动挡,上手要练一练,但控制更直接,能做的事更多。类比失效点:命令行的学习曲线其实没那么陡,常用命令也就几十个。
为什么本课程主要用命令行?三个理由:
- 真实的服务器大多没有图形界面,命令行是唯一的操作入口;
- 命令行能写脚本、做自动化,"点一千次鼠标"变成一行命令;
- 后面章节用的观察工具(
ps、free、strace……)几乎全是命令行工具。
好消息:在 Ubuntu 桌面里按 Ctrl + Alt + T 就能弹出终端;WSL 用户在开始菜单打开 Ubuntu 就是一个终端。本章实验开始,我们主要就在这黑窗口里干活。
Windows 用户:把 Ubuntu 装起来
如果你的电脑已经是 Linux 或 macOS,跳过这一节,直接看"动手实验"。
Windows 用户有两条路线,推荐路线 A。
路线 A(推荐):WSL2,把 Linux 装进 Windows 里
WSL(Windows Subsystem for Linux,适用于 Linux 的 Windows 子系统)让 Windows 内部直接跑一个真正的 Linux 内核。不用分区、不用双系统,像普通软件一样随开随用。步骤(Windows 10 2004 及以上或 Windows 11):
- 右键点击开始按钮,选择"终端(管理员)“或"Windows PowerShell(管理员)”;
- 输入下面这条命令并回车:
wsl --install
- 完成后重启电脑;
- 重启后在开始菜单找到 “Ubuntu” 打开。第一次启动要等几分钟初始化,然后按提示设置用户名和密码。
两个新手必知的小坑:
- 输入密码时屏幕上什么都不显示,连星号都没有。这不是死机,是 Linux 的设计,放心敲完回车即可;
- 这个密码是你这个普通用户的密码,以后执行
sudo命令临时提升权限(第 13 章细讲)时输入的就是它。
路线 B(备选):虚拟机里装完整桌面
想体验完整图形桌面,可以用虚拟机:
- 安装 VirtualBox(免费开源的虚拟机软件);
- 到 Ubuntu 官网下载 Ubuntu Desktop 镜像(一个
.iso文件); - 在 VirtualBox 里新建虚拟机,选中这个镜像,按向导分配内存(建议至少 4GB)和硬盘;
- 安装完成后,你就在一个窗口里拥有了一台完整的 Ubuntu 桌面电脑。
两条路线怎么选:WSL 轻量省事,适合专注学命令;虚拟机更像一台独立电脑,桌面随便折腾。两条路线都满足本课程要求。
验证安装:一条命令
打开终端(桌面版按 Ctrl + Alt + T;WSL 直接打开 Ubuntu 窗口),输入:
uname -a
只要输出里出现了 Linux,就说明环境已经就绪。下面这组实验,就用它来认识你的新系统。
动手实验:看一眼系统的"家底"
下面四条命令分别对应操作系统管的四块资源,在终端里依次敲一遍。
命令一:这台机器的内核是什么?
uname -a
(示意输出,实际以本机为准)
Linux my-pc 5.15.0-91-generic #101-Ubuntu SMP x86_64 GNU/Linux
Linux:内核名字;5.15.0-91-generic:内核版本号;x86_64:CPU 架构。这一行就是你正在和"Linux 内核"本人打招呼。
命令二:有多少个"干活的人"(CPU 核心)?
nproc
输出是一个数字,比如 8,表示有 8 个可以同时干活的核心。回想职责一:如果你有 20 个进程、8 个核心,操作系统怎么让它们"同时跑"?——调度。
命令三:工作台(内存)有多大?
free -h
(示意输出,实际以本机为准)
total used free shared buff/cache available
Mem: 15Gi 3.2Gi 8.1Gi 234Mi 4.2Gi 12Gi
Swap: 2.0Gi 0B 2.0Gi
total:物理内存总量;used/free:已用 / 完全空闲;buff/cache:暂时替硬盘"拿在手里"的数据,随时可以收回,不用慌;available:新程序真正能拿到的内存,这是最值得看的一列;Swap行就是前面说的"硬盘后备仓库",叫交换分区,第 6 章细讲。
参数 -h 的意思是"用人类能看懂的单位显示"(human-readable)。
命令四:仓库(硬盘)有多大?
df -h
(示意输出截取前两行,实际以本机为准)
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 100G 30G 70G 30% /
这个命令列出每个**挂载(Mounted)**的存储设备的容量和使用情况。挂载就是"把一块硬盘接到目录树的某个位置上",第 7 章细讲。现在只看两列:
Size:总容量;Use%:用了百分之多少。
输出里还常有以 tmpfs 开头的行——那是用内存模拟出来的"硬盘",重启就清空,第 7 章会再遇到。
四条命令看完,对照一下四大职责:nproc 管 CPU、free 管内存、df 管硬盘、uname 显示内核本身。行政部门管理的"家底",全在这了。
常见误区
- 误解:操作系统就是 Windows 那样的桌面。 → 真相:桌面只是操作系统的"外壳",真正的核心是内核。很多服务器没有桌面,操作系统照样完整。
- 误解:"Linux"是一个完整操作系统的名字。 → 真相:严格说 Linux 只是内核的名字,完整系统常被称为 GNU/Linux 或具体的发行版。平时说 Linux 指完整系统也无妨,但要知道区别。
- 误解:内核就是操作系统的全部。 → 真相:内核是核心,但要成为一个能用的系统,还需要命令行工具、系统库、用户界面,它们加在一起才组成"操作系统"。
- 误解:命令行是过时的东西,只有极客才用。 → 真相:服务器、云计算、自动化运维的主战场恰恰是命令行;图形界面方便日常,命令行才是专业场景的主力工具。
小结
- 计算机分三层:硬件提供资源,操作系统管理资源,应用程序使用资源。
- 操作系统像公司的行政部门:不亲自干业务,只管资源、定秩序、提供统一窗口。
- 四大职责:进程管理(第 3–5 章)、内存管理(第 6 章)、文件管理(第 7–8 章)、设备管理(第 8、10 章)。
- 应用程序必须通过系统调用使用资源,这既是服务也是保护(第 11 章)。
- 内核是核心,外壳是外围;发行版 = 内核 + 一整套软件打包。
- 操作系统有两张面孔:图形界面上手快,命令行能力强,本课程以后者为主。
- Windows 用户用 WSL2(推荐)或虚拟机装好 Ubuntu,
uname -a一条命令验证。
思考题
- 应用程序经常崩溃,但整机很少跟着崩。试着用本章"行政部门"的视角解释原因。
- 如果操作系统只允许同一时间运行一个程序(早期计算机真的如此),四大职责里哪些可以省掉大半?哪些仍然省不掉?
- 类比"操作系统 = 行政部门":如果行政部门突然全体罢工(内核崩溃),公司会陷入什么状态?对应到计算机上是什么现象?
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)