1.1 Linux 是什么
预计阅读时间:23 分钟
📖 目录
学习目标
学完本章后,你将能够:
- 理解操作系统的本质——它是什么、做什么、为什么需要它
- 解释 Linux 的起源故事,以及它和 Unix、GNU 项目的关系
- 区分 GPL、MIT、Apache 等开源许可证的核心差异
- 识别主流 Linux 发行版家族,并为自己的需求选择合适版本
- 了解 Linux 在服务器、云计算、嵌入式等领域的主导地位
核心知识
- 操作系统(Operating System, OS)——管理计算机硬件与软件资源的系统软件,是用户与硬件之间的桥梁
- 内核(Kernel)——操作系统的核心,负责进程调度、内存管理、设备驱动等底层功能
- Unix——诞生于 1969 年的操作系统家族,Linux 的设计灵感来源
- GNU 项目——Richard Stallman 发起的自由软件项目,提供 Linux 系统中不可或缺的工具集
- GPL(GNU General Public License)——Linux 采用的许可证,核心是 Copyleft:修改后的代码也必须开源
- 发行版(Distribution / Distro)——Linux 内核 + 工具集 + 包管理器 + 应用软件打包而成的完整操作系统
知识关联
- 前置知识:无需任何前置知识,本章是整套教程的第一课
- 后续影响:本章的概念是学习 1.2:安装 Linux「安装 Linux」和 1.3:第一次进入命令行「第一次进入命令行」的理论基础
- 配套技术:本章介绍的开源许可证和发行版概念会贯穿整本教程——每个章节的操作都基于某个发行版
- 在整个体系中的位置:基础中的基础,不理解 Linux 的来历和生态,后续学习容易迷失方向
原理讲解
1. 操作系统是什么——从用户到硬件的桥梁
想象你开了一家咖啡馆。你没有直接去种咖啡豆、烧制陶瓷杯、装修店面,而是把这些事交给了供应链和装修队。你只需要告诉员工"做一杯拿铁",最终就能得到咖啡。
操作系统(Operating System,简称 OS) 的角色,就是咖啡馆的"店长"——它把复杂的硬件操作封装成简单的服务接口。应用程序(App)只需告诉操作系统"我要写这个文件""我要发这个网络包",操作系统就会指挥 CPU、内存、磁盘、网卡等硬件去完成。
操作系统提供两大核心功能:
| 功能 | 做什么 | 类比 |
|---|---|---|
| 硬件抽象 | 将硬件差异隐藏,提供统一接口(系统调用) | 咖啡馆的菜单——顾客不看厨房设备,只看菜单点单 |
| 资源管理 | 公平分配 CPU、内存、磁盘、网络给多个程序 | 店长决定哪个订单先做、分配哪个员工操作哪台设备 |
你每天使用的设备上都运行着操作系统:
- Windows PC → Windows 11 / 10
- 苹果电脑 → macOS(基于 Unix 构建)
- 安卓手机 → Android(基于 Linux 内核)
- 苹果手机 → iOS(基于 Unix 衍生)
- 网站服务器、云服务器 → 绝大多数是 Linux
- 路由器、智能电视、汽车中控 → 大量运行 Linux
2. 操作系统的发展简史——从批处理到 Unix
理解 Linux,需要了解它之前发生了什么:
1940s–1950s:无操作系统时代。程序员直接操作硬件,插拔线缆、拨动开关来编程。每次只能运行一个程序。
1960s:批处理系统诞生。用户将程序打在穿孔卡片上,操作员批量送入计算机。一个程序跑完才能跑下一个——如果有 bug,第二天才知道。
1965:MIT、Bell 实验室、GE 联合启动 Multics 项目。目标是创建一个"信息公用事业"——一台计算机同时服务大量用户。项目过于庞大复杂,Bell 实验室于 1969 年退出。
1969:Unix 在废墟中诞生。Bell 实验室的 Ken Thompson 和 Dennis Ritchie 在退出的余暇中,在一台废弃的 PDP-7 小型机上写出了 Unix 的第一个版本。取名 Unix 是对 Multics 的戏谑——"阉割版的 Multics"(发音类似"eunuchs")。
1973:Unix 用 C 重写,这是决定性的一步。Dennis Ritchie 发明了 C 语言,并用 C 重写了 Unix 内核。这使得 Unix 成为第一个用 C 语言编写并可移植的操作系统——只需重新编译,就能移植到任何有 C 编译器的计算机上。这极大地推动了 Unix 在学术界的传播。
3. Unix 的设计哲学——简洁就是力量
Unix 的设计哲学深刻影响了 Linux,至今仍是操作系统设计的黄金准则:
| 原则 | 含义 | 例子 |
|---|---|---|
| 一切皆文件 | 硬件设备、进程信息、网络连接,都抽象为文件接口 | 用 cat /proc/cpuinfo 查看 CPU 信息 |
| 小即是美 | 每个程序只做一件事,并把它做到极致 | grep 只做文本搜索,不做别的 |
| 组合胜过单体 | 通过管道将小工具组合成强大的处理链 | cat log | grep ERROR | sort | uniq -c |
| 文本流 | 程序间用纯文本通信,可读、可调试 | JSON / CSV / 日志文件都是文本 |
| 避免强制界面 | 不给用户强加固定的交互方式 | 既提供 CLI 也允许 GUI |
/dev/sda)、进程信息是文件(/proc/)、硬件参数是文件(/sys/)、甚至网络通信也是文件(socket)。这个概念降低了系统设计的复杂性。为什么采用"一切皆文件"的设计?
Unix 的"一切皆文件"并非随意选择,而是基于一个深刻的工程权衡:用统一接口降低系统复杂度。在 Unix 之前,每种 I/O 设备(磁盘、终端、打印机)都有自己的 API,程序员必须为每种设备写不同的代码。Unix 的做法是:所有 I/O 都通过 open()、read()、write()、close() 这四个系统调用来操作。这意味着:
- 代码复用:一个
cp命令可以复制任何文件——普通文件、设备文件、管道,无需为每种类型写特殊逻辑 - 组合性:任何程序的输出都可以直接作为另一个程序的输入(通过重定向和管道),因为一切都是字节流
- 权限统一:一套 rwx 权限模型就能保护所有资源,不需要为磁盘、终端、网络各设计一套权限系统
这个设计的代价是:某些非文件语义的操作(如网络连接的建立/断开)需要通过 ioctl() 等扩展接口来处理,但总体上统一接口带来的简洁性远超这点不便。
为什么 Linux 采用分层架构(内核空间/用户空间)?
操作系统采用内核空间/用户空间的分层架构,核心目的是隔离与保护。内核运行在 CPU 的最高特权级(Ring 0),可以直接访问所有硬件和内存;应用程序运行在低特权级(Ring 3),只能通过"系统调用"(system call)向内核请求服务。这种设计带来三个关键好处:
- 稳定性:一个程序崩溃(如内存越界)不会影响其他程序或内核,因为它们的地址空间是隔离的
- 安全性:恶意程序无法直接读取其他用户的数据或修改系统配置,必须通过内核的权限检查
- 可移植性:应用程序不需要知道底层硬件的具体型号,内核通过设备驱动屏蔽了硬件差异
这与 Windows 早期(如 Windows 9x)的设计形成对比——在那个时代,应用程序可以直接访问硬件内存,一个程序的 bug 就能导致整个系统蓝屏。现代操作系统都采用了这种分层架构。
4. Linux 的诞生——一个人的业余项目改变了世界
1991 年,芬兰赫尔辛基大学 21 岁的学生 Linus Benedict Torvalds 买了一台 386 PC。他对当时用于教学的操作系统 MINIX(一个简化版 Unix,用于教学目的)非常不满——因为 MINIX 的许可证限制了它的自由使用和修改。
Linus 决定自己动手写一个操作系统内核。这不是一个庞大的商业计划,而是一个学生的业余爱好项目。
1991 年 8 月 25 日,他在 comp.os.minix 新闻组发出了那封著名的帖子:
"I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I'd like any feedback on things people like/dislike in minix, as my OS resembles it somewhat..."
1991 年 9 月 17 日,Linux 0.01 版本在芬兰的一台 FTP 服务器上发布,仅有约 1 万行代码。当时它只能运行在 386 处理器上、没有网络功能、没有图形界面。1992 年初,Linus 做出了一个关键决定:将 Linux 以 GPL(GNU General Public License) 许可证发布。这意味着任何人可以自由使用、修改和分发 Linux,但修改后的版本也必须开源。
这个决定引爆了开发者社区。全世界的程序员开始贡献代码。Linux 从一个学生的业余项目,迅速成长为全球协作的工程奇迹。
| 时间 | 里程碑 | 意义 |
|---|---|---|
| 1991.08 | Linus 在新闻组宣布 Linux 项目 | 项目启动 |
| 1991.09 | Linux 0.01 发布(约 1 万行代码) | 第一个公开版本 |
| 1992.01 | Linux 采用 GPL 许可证 | 奠定了自由协作的法律基础 |
| 1994.03 | Linux 1.0 发布(约 17 万行代码) | 第一个稳定版,支持网络 |
| 2003.12 | Linux 2.6 发布 | 企业级特性成熟(SMP、NUMA、新调度器) |
| 2005 | Git 诞生 | Linus 因 BitKeeper 风波自创 Git 管理内核代码 |
| 2011.07 | Linux 3.0 发布 | 版本号规则变化(实际是大版本 2.6.x) |
| 2022.12 | Linux 6.1 发布 | Rust 语言基础设施首次合入内核主线 |
5. Linux 内核与 GNU 项目——缺一不可的合作伙伴
许多初学者会说"我用的是 Linux",但从技术上讲,你用的是 GNU/Linux 操作系统。为什么?
Linux 只是内核(Kernel)。内核负责最底层的工作:
- 进程调度——决定哪个程序占用 CPU
- 内存管理——分配和回收程序的内存
- 文件系统——管理数据的存取
- 设备驱动——操作鼠标、键盘、网卡等硬件
- 网络协议栈——处理 TCP/IP 等网络协议
但仅有内核是无法使用的。你需要一个 Shell 来敲命令、需要一个编译器来写程序、需要文件操作工具来处理文件——这些由 GNU 项目 提供。
GNU 项目(GNU's Not Unix)由 Richard Stallman 于 1983 年发起。它的目标是创建一个完全自由的 Unix 兼容操作系统。到 Linux 诞生时,GNU 项目已经完成了绝大多数用户空间工具——只差一个内核。Linux 恰好填补了这个空缺。
| GNU 提供的关键工具 | 作用 | 命令 |
|---|---|---|
| GCC(GNU Compiler Collection) | C/C++ 编译器 | gcc |
| Bash(Bourne Again SHell) | 命令行解释器 | bash |
| Coreutils | 核心文件/文本/Shell 工具 | ls, cp, mv, rm, cat 等 |
| glibc(GNU C Library) | C 语言运行库 | 几乎每个程序都链接它 |
| GNU tar | 归档工具 | tar |
| GNU make | 构建自动化工具 | make |
| GNU grep | 文本搜索工具 | grep |
| GNU sed | 流式文本编辑器 | sed |
| GNU awk | 文本处理语言 | awk |
6. 开源许可证——代码共享的法律契约
Linux 采用的 GPL(GNU General Public License) 属于"copy-left"(著佐权)许可证,核心原则是:你可以自由使用、修改和分发软件,但如果你分发修改后的版本,必须同样以 GPL 开源。
与之相对的还有一系列"宽松许可证":
| 许可证 | 类型 | 核心规则 | 典型项目 |
|---|---|---|---|
| GPL v2 / v3 | 强 Copyleft | 分发修改版必须开源 | Linux 内核、Git、WordPress |
| AGPL v3 | 强 Copyleft(网络) | 即使通过 Web 提供服务,修改也必须开源 | Nextcloud、Mastodon |
| LGPL | 弱 Copyleft | 作为库使用时允许闭源链接 | glibc、FFmpeg |
| MIT | 宽松 | 仅保留版权声明,可闭源使用 | Node.js、React、jQuery |
| BSD(2/3-Clause) | 宽松 | 类似 MIT,附加禁止背书条款 | Nginx、Redis、PostgreSQL |
| Apache 2.0 | 宽松 | 类似 MIT,附加专利授权 | Kubernetes、Android、Spark |
7. Linux 发行版生态——同一颗心脏,不同的面貌
Linux 内核本身只是一个引擎。一个完整的 Linux 操作系统 = Linux 内核 + GNU 工具 + 包管理器 + 桌面环境 + 预装应用,这个组合称为一个 发行版(Distribution,简称 Distro)。
发行版分为几大"家族":
| 家族 | 包管理器 | 代表发行版 | 适合人群 |
|---|---|---|---|
| Debian 系 | apt(.deb) | Ubuntu、Debian、Linux Mint、Kali Linux | 初学者到专家 |
| Red Hat 系 | dnf / yum(.rpm) | RHEL、Fedora、Rocky Linux、AlmaLinux | 企业服务器 |
| Arch 系 | pacman | Arch Linux、Manjaro、EndeavourOS | 进阶用户 |
| SUSE 系 | zypper(.rpm) | openSUSE、SUSE Linux Enterprise | 企业用户 |
| 独立发行版 | 各自独有 | Alpine Linux(apk)、Void Linux(xbps) | 特殊场景 |
新手推荐:从 Ubuntu LTS(长期支持版)或 Linux Mint 开始。它们拥有最大的社区、最丰富的文档、最简单的安装流程和最广的硬件兼容性。
发行版选择决策树:
你想用 Linux 做什么?
├─ 学习 Linux 或日常使用
│ ├─ 从未用过 Linux → Ubuntu 或 Linux Mint
│ └─ 有一定经验 → Fedora 或 openSUSE
├─ 作为服务器
│ ├─ 个人/小团队 → Ubuntu Server
│ └─ 企业生产环境 → Rocky Linux 或 Ubuntu LTS
├─ 渗透测试/安全研究 → Kali Linux
├─ 开发/喜欢折腾 → Arch Linux 或 Manjaro
└─ 边缘设备/容器 → Alpine Linux
8. Linux vs Windows vs macOS——三大操作系统对比
理解 Linux 的最佳方式之一是把它和常见的操作系统放在一起比较:
| 维度 | Linux | Windows | macOS |
|---|---|---|---|
| 内核 | Linux(开源、类 Unix) | Windows NT(闭源) | XNU(混合、部分开源) |
| 许可证 | GPL v2(开源) | 商业许可(闭源) | 商业许可(部分开源) |
| 包管理 | apt / dnf / pacman(中心化) | 无标准包管理器(winget 新出) | Homebrew(第三方) |
| 命令行 | Bash / Zsh(原生强大) | PowerShell / cmd | Zsh(基于 Unix) |
| 桌面环境 | GNOME / KDE / Xfce 等(可选) | Windows Shell(固定) | Aqua(固定) |
| 软件生态 | 开源工具为主,商业软件较少 | 最广泛的商业软件生态 | 设计/创意类软件丰富 |
| 游戏支持 | Steam 正在改善,总体有限 | 最完整 | 中游 |
| 服务器份额 | >96% | <2% | <1% |
| 适合用户 | 开发者、运维、服务器、嵌入式 | 普通用户、办公、游戏 | 设计师、开发者 |
9. Linux 的全球影响力——数字背后的统治力
Linux 虽然桌面占有率只有约 3%,但在其他领域占据绝对主导地位:
- 互联网:Top 1000 万网站中超过 70% 运行在 Linux 上。Google、Facebook、Amazon、Netflix 等巨头全部基于 Linux。
- 云计算:AWS、阿里云、Azure 上超过 90% 的云服务器运行 Linux。几乎所有的容器和云原生技术(Docker、Kubernetes)都依赖 Linux 内核特性。
- 超级计算机:TOP500 超算中,100% 运行 Linux。2004 年以来没有一台非 Linux 超算进入过 TOP500。
- 移动设备:全球约 35 亿台 Android 设备基于 Linux 内核。加上各类嵌入式 Linux 设备,Linux 是全球部署最广泛的操作系统。
- 嵌入式/IoT:路由器(OpenWrt)、智能电视、车载系统(Android Auto、Tesla)、机顶盒、工业控制系统——绝大多数运行 Linux。
- 航天:SpaceX 的 Falcon 9 火箭和 Dragon 飞船、NASA 的 Perseverance 火星车、James Webb 太空望远镜——都使用 Linux。
- 金融与交易:纽约证券交易所、纳斯达克、芝加哥商品交易所的核心交易系统均运行 Linux。
10. 内核与发行版的版本节奏——稳定与激进的分工
理解内核版本和发行版版本的关系,能帮你读懂"Ubuntu 24.04 用 Linux 6.8"这类描述,也能帮你判断升级风险:
| 维度 | 内核版本 | 发行版版本 |
|---|---|---|
| 谁负责 | Linus 与内核社区(每 9-10 周发布一个新版) | 发行版维护者(Ubuntu 每半年一个版本,LTS 每两年) |
| 节奏 | 快速迭代:新特性、新驱动、新架构支持 | 保守稳定:只移植安全补丁和关键修复,不追新 |
| 用户怎么看 | uname -r 查看,如 6.8.0-31-generic | lsb_release -a 查看,如 Ubuntu 24.04.1 LTS |
| 组合方式 | 同一内核可被多个发行版使用 | 同一发行版可支持多个内核版本 |
一个常见现象:Ubuntu 24.04 安装后是内核 6.8,而 Arch Linux 用户可能已经用上 6.13+。这不是 Arch 更先进,而是策略不同——LTS 发行版追求"五年内行为不变",滚动发行版追求"始终最新"。服务器上"老内核 + 新补丁"反而更安全,因为社区对成熟内核的测试覆盖更充分。
11. 给你的学习路径建议——从新手到能干活
Linux 知识体系庞大,没有路线图容易迷失。结合本站章节结构,推荐如下路径(每阶段都有可交付的成果):
| 阶段 | 内容 | 对应章节 | 阶段目标(验收标准) |
|---|---|---|---|
| 第一阶段:会用 | 安装系统、命令行、文件操作、权限、包管理 | ch02-ch08 | 能独立完成"在虚拟机装系统并日常操作" |
| 第二阶段:能写 | 管道、Shell 脚本、进程管理、网络基础 | ch09-ch13、2.8:Shell 脚本进阶 | 能写自动化脚本处理重复工作 |
| 第三阶段:会管 | 服务管理(systemd)、日志、磁盘、用户体系 | ch14-ch16、2.12:systemd 深入 | 能维护一台生产服务器 |
| 第四阶段:懂架构 | 容器、K8s、IaC、GitOps、监控体系 | 6.1:容器底层原理、6.2:Kubernetes 入门、4.15:Terraform 入门、6.7:GitOps 入门、6.9:OpenTelemetry 与可观测性 | 能搭建并运维一套云原生应用环境 |
给新手的三个具体建议:
- 边学边建:每学一个章节,就在你的虚拟机上"重复"一遍文章里的命令。手打一遍胜过读十遍。
- 带着问题学:先想"我要解决什么问题"(比如:每天手动备份太烦),再去找对应章节(3.13:备份策略与恢复 备份策略)——任务驱动的学习效率远高于按目录顺序刷。
- 善用社区:Ubuntu 中文论坛、Arch Wiki(虽然是 Arch 的,但知识通用)、Stack Overflow 是三个最常去的地方。学会提问:先贴出命令、报错原文、你的排查过程。
示例代码
如果你已经安装了 Linux,打开终端(Terminal),尝试以下命令了解你的系统:
# 查看内核版本
uname -a
# 输出: Linux ubuntu-pc 6.8.0-31-generic #31-Ubuntu SMP x86_64 GNU/Linux
# 查看发行版信息
cat /etc/os-release
# 输出: PRETTY_NAME="Ubuntu 24.04.1 LTS"
# 查看 CPU 信息
cat /proc/cpuinfo | head -10
# 输出: processor : 0
# 输出: vendor_id : GenuineIntel
# 输出: model name : Intel(R) Core(TM) i7-8700K CPU @ 3.70GHz
# 查看内存总量
free -h
# 输出: Mem: 15Gi total, 4.2Gi used, 6.8Gi free, 4.0Gi buff/cache, 8.7Gi available
# 查看磁盘使用情况
df -h
# 输出: /dev/sda1 235G 28G 196G 13% /
# 查看系统运行了多久
uptime
# 输出: 10:30:00 up 1 day, 2:31, 2 users, load average: 0.50, 0.75, 1.20
# 查看当前用户名
whoami
# 输出: admin
如果你还没有安装 Linux,没关系——下一章就会带你完成安装。这些命令可以先记住,以后会经常使用。
常见错误
| 错误/误区 | 真相 |
|---|---|
| "Linux 很难用,只有黑客才用" | 现代 Linux(Ubuntu、Mint)的桌面体验已经非常友好。命令行有学习曲线,但这正是你想学习的内容——命令行比 GUI 更强大。 |
| "Linux 就是 Unix" | Linux 是类 Unix(Unix-like)系统,不是 Unix。它们共享设计理念,但代码完全独立。Linux 是独立实现的克隆。 |
| "Ubuntu 就是 Linux" | Ubuntu 是 Linux 的一个发行版,不是 Linux 本身。Linux 有数百个发行版,Ubuntu 只是最流行的一个。 |
| "Linux 没有病毒" | Linux 的病毒确实远少于 Windows,但不是零。Linux 的安全优势来自:用户权限分离(默认非 root)、包管理器签名验证、开源审查。 |
| "开源 = 免费,但不专业" | 开源 ≠ 免费。Red Hat 年收入数十亿美元,Linux 驱动着全球大部分商业基础设施。开源是一种开发模式,与质量没有直接关系。 |
最佳实践
| # | 建议 | 说明 |
|---|---|---|
| 1 | 从 Ubuntu LTS 开始 | LTS(长期支持版,如 22.04、24.04)提供 5 年安全更新,社区文档最丰富,新手遇到问题最容易找到答案。 |
| 2 | 先了解"为什么"再学"怎么做" | 不要死记命令。理解为什么 Linux 这样设计(如一切皆文件),命令自然就记住了。 |
| 3 | 不要害怕命令行 | 命令行不是过时的东西,而是最强大的工具。花一周适应它的"怪异"——之后你会嫌 GUI 太慢。 |
| 4 | 善用 man 和 --help | man ls 可以查看 ls 命令的完整文档。大多数命令都有 --help 参数。学会看文档比记住所有参数更重要。 |
| 5 | 遇到问题先搜再问 | Linux 社区文化提倡"先自己搜索"。90% 的问题在 Stack Overflow 或论坛上已经有答案。 |
练习题
- (概念)操作系统提供哪两大核心功能?用自己的话解释它们。
- (概念)什么是 Linux 发行版?Ubuntu 和 Arch Linux 有哪些核心差异?
- (概念)GPL 许可证的核心原则是什么?它与 MIT 许可证的关键区别在哪里?
- (实操)在你的 Linux 系统(或 WSL)上执行以下命令,记录输出:
uname -a、cat /etc/os-release、free -h。 - (实操)用
uptime查看系统运行了多长时间。尝试理解输出的每一列含义(提示:用man uptime)。 - (探究 🔍)打开
cat /proc/cpuinfo,查看你的 CPU 型号、核心数和缓存大小。对比你手机的 CPU 参数(可在设置中查看),思考服务器 CPU 和手机 CPU 的设计差异。 - (探究 🔍)查阅资料了解 Linux 6.x 相比 2.6 引入了哪些重大变化。列出至少 3 个你感兴趣的新特性。
点击查看答案
- (概念)操作系统提供两大核心功能:硬件抽象(将硬件差异隐藏,提供统一接口)和资源管理(公平分配 CPU、内存、磁盘等给多个程序)。前者让应用开发无需关心底层硬件差异,后者确保多任务环境下的稳定运行。
- (概念)Linux 发行版是 Linux 内核 + 工具集 + 包管理器打包而成的完整操作系统。Ubuntu 面向新手,使用 apt 包管理器,提供稳定 LTS 版本;Arch Linux 面向进阶用户,使用 pacman 包管理器,采用滚动更新模式。
- (概念)GPL 的核心原则是 Copyleft——修改和分发的代码必须同样以 GPL 许可开源。MIT 许可证更加宽松,允许修改后的代码以闭源方式分发,只需保留原版权声明。GPL 是"传染性"的,MIT 不是。
- (实操)`uname -a` 显示内核版本、主机名、架构等信息;`cat /etc/os-release` 显示发行版名称和版本号;`free -h` 显示内存总量、已用、可用(-h 以人类可读格式)。如果命令找不到,检查是否输入错误。
- (实操)`uptime` 输出依次为:当前系统时间、系统已运行时间、登录用户数、1/5/15 分钟平均负载。用 `man uptime` 查阅每列含义。平均负载是指等待 CPU 调度的进程数。
- (探究 🔍)`cat /proc/cpuinfo` 输出多段 CPU 信息。processor 编号从 0 开始,model name 显示 CPU 型号,cache size 显示缓存大小。服务器 CPU 拥有更多核心/更大缓存/ECC 支持,手机 CPU 则注重功耗比。思考不同场景的设计取舍。
- (探究 🔍)从 Linux 2.6 到 6.x 的重大变化:BPF/eBPF 可编程内核、Rust 语言实验性支持、调度器(CFS → EEVDF)、cgroup v2、Btrfs 文件系统成熟、WireGuard 内置、L1TF/Meltdown/Spectre 漏洞缓解等。列出你最感兴趣的 3 个并说明理由。
学习检查点
学完本章后,请检验自己是否掌握以下内容:
| 检查项 | 自测问题 | 验证方法 |
|---|---|---|
| 概念理解 | 能用自己的话解释操作系统、内核、发行版三者的区别 | 尝试向他人讲解 |
| 命令操作 | 能不查文档使用 uname -a、cat /etc/os-release、free -h 查看系统信息 | 在终端实际执行 |
| 原理掌握 | 能说出 Linux"一切皆文件"设计哲学的含义和优势 | 画出流程图 |
| 故障排查 | 能区分 GPL、MIT、Apache 开源许可证的核心差异 | 对比不同开源项目 |
| 最佳实践 | 能说明为什么新手推荐从 Ubuntu LTS 开始学习 | 对比不同发行版特点 |
本章总结
Linux 是当今世界最重要的开源操作系统。它诞生于 1991 年一个学生的业余项目,如今已统治互联网服务器、云计算、超级计算机和移动设备。它继承了 Unix 的设计哲学(一切皆文件、小即是美、组合胜过单体),采用 GPL 许可证保障自由协作的生态。
核心概念速查:
| 概念 | 一句话定义 |
|---|---|
| 操作系统 (OS) | 管理硬件资源、为应用程序提供服务的系统软件 |
| 内核 (Kernel) | 操作系统的核心,负责进程/内存/设备/文件系统的管理 |
| Linux | 一个类 Unix 的开源操作系统内核,GPL 许可 |
| GNU | 提供 Linux 必备用户空间工具(GCC、Bash、Coreutils)的自由软件项目 |
| 发行版 (Distro) | Linux 内核 + 工具集 + 包管理器打包而成的完整操作系统 |
| GPL | 强 Copyleft 许可证,修改和分发时必须保持开源 |
下一步:继续学习 1.2:安装 Linux「安装 Linux」,在一台真实或虚拟的计算机上安装你的第一个 Linux 系统。
延伸阅读
- 1.2:安装 Linux 安装 Linux——在虚拟机或物理机上安装你的第一个 Linux 系统
- 1.3:第一次进入命令行 第一次进入命令行——打开终端,运行你的第一批命令
- Linux Kernel 官方网站——查看最新内核版本和发布日志
- GNU 项目官网——了解 GNU 项目的哲学和工具
- Ubuntu 官方网站——最受欢迎的 Linux 发行版
- DistroWatch——跟踪数百个发行版的排名和动态
- 书籍推荐:《鸟哥的 Linux 私房菜》《The Linux Command Line》(William Shotts)