CPU 听不懂"画一张图"或者"打开 Word"。它只听得懂一些极其原始的命令——比如"把这个数从这里搬到那里"、"两个数相加"、"如果相等就跳到这一行代码"。
这些命令的说明书,就叫"指令集架构",英文 Instruction Set Architecture,简称 ISA。
想象你雇了一个外国厨师。你必须用他听得懂的语言下单——比如他只会日语,你点菜就得说日语。指令集就是 CPU 的"语言"。
x86 是一种语言,ARM 是另一种语言。一份"x86 语言"写的菜单(程序),递给只会"ARM 语言"的厨师(CPU),他完全看不懂——这就是架构不兼容。
两段代码"做的事一样",但说出来的咒语完全不同。这就是不同 ISA 的根本区别。
1980 年前后,计算机学界发生了一场"路线之争"。怎么设计 CPU 才最好?两派给出了完全相反的答案。
Complex Instruction Set · 复杂指令集
代表:x86
Reduced Instruction Set · 精简指令集
代表:ARM、RISC-V、POWER、MIPS
想象 CPU 是一个工人。
CISC 给他一把瑞士军刀:刀、剪刀、起子、开瓶器一应俱全。一个指令"煮一碗面",他自动会烧水、下面、调料、装碗。功能强,但这把刀又重又贵又难做。
RISC 只给他几把简单工具:菜刀、勺子、火柴。但每样都很轻很快。煮面要拆成 100 步——但他每一步都飞快完成。
有趣的事实:现代 x86 CPU 内部其实"偷偷"是 RISC 风格的!
x86 处理器内部有一个"解码器",把外面看起来复杂的 x86 指令,悄悄翻译成内部更简单的"微操作"(micro-ops),再用 RISC 的方式执行。所以严格说,今天 CISC 和 RISC 在内部已经融合,区别更多在外部接口。
x86、ARM、RISC-V 看起来千差万别,但它们都遵循同一个最古老的总图——1945 年由数学家 约翰·冯·诺依曼(John von Neumann)写在一份报告里的结构。
八十年过去,这张图一笔都没有改。
在冯诺依曼之前,计算机的"程序"是写死在电路里的——想换一个程序,得拆开机器重新接线(早期的 ENIAC 就是这样,编程要花几天)。
冯诺依曼的洞见是:程序本质上也是一堆数字,把它和数据一样存进内存就行。这一步让"软件"成为可能——换程序只是换一段内存内容,瞬间完成。
想象一个厨师。旧模型是:你想让他做新菜,得把厨房重新装修一遍(换电路)。冯诺依曼模型是:你把菜谱(程序)写在纸上递给他,他照着做。换菜谱比换厨房容易得多。
更妙的是,菜谱和食材都放在同一个柜子里——这就是"程序和数据共享存储"。
无论 x86、ARM 还是 RISC-V,所有 CPU 都在跑这个循环。差别只是怎么取、怎么译、怎么执行更快。这就是为什么我们后面要讲缓存、流水线、推测执行——它们全是在优化这个循环的某一步。
Von Neumann · 主流
Harvard · 嵌入式专用
所有冯诺依曼机的根本缺陷:CPU 算得飞快,但每次都得通过同一条窄路从内存取指令和数据。CPU 越快,这条路越是瓶颈。
过去 50 年计算机体系结构的大部分创新,本质都是绕开或缓解这个瓶颈:多级缓存、流水线、推测执行、超线程、GPU 大规模并行、近内存计算……都是在跟"冯诺依曼瓶颈"作斗争。
所谓"后冯诺依曼"架构(神经形态芯片、存算一体芯片)正在尝试从根本上换思路——但还在实验室阶段。
给我一个内存,再给我一条指令"取这块内存的内容、做点变化、写回去"——只要这两样,我就能构建出今天所有的软件。对冯诺依曼架构的一种概括
这就是冯诺依曼的礼物:极简到无法再简,又强大到容纳整个数字文明。
x86 这个名字来自 Intel 早期型号——8086、80186、80286、80386……都以 "86" 结尾,于是这一整个家族就被叫做 "x86"。
Intel 推出 16 位处理器 8086,奠定了 x86 指令集基础。后来 IBM 选择了它的"低成本版" 8088 作为 IBM PC 的 CPU——这一选择,让 x86 走上了称霸 PC 几十年的道路。
32 位 x86 架构定型,影响极其深远。很长时间里 32 位 x86 程序都被称为 "i386" 程序——这个名字今天在 Linux 包管理器里还能看到。
奔腾时代开启。CPU 开始在一个周期里同时执行多条指令(superscalar),性能突飞猛进。
这里有个戏剧性转折:本来 Intel 想用全新的 IA-64(安腾) 进入 64 位时代,但安腾不兼容老的 x86 软件,市场反应冷淡。AMD 反其道而行,在 x86 基础上扩展出 64 位,叫 AMD64(即 x86-64),保持向下兼容。结果 AMD64 大获成功,Intel 反过来只好采用 AMD 的方案,改叫 "Intel 64"。
Intel Core 系列发布,性能与能效大幅提升。从此 i3/i5/i7/i9 成为大家熟悉的命名。
AMD 推出 Ryzen,打破了 Intel 多年的桌面垄断。x86 内部竞争重新激烈,消费者受益。
Intel Alder Lake 引入 P-core(性能核)+ E-core(能效核)混合设计——这其实是从 ARM 阵营学来的思路(big.LITTLE)。x86 开始重视能效。
你写一个 C 程序,比如 int sum = a + b;——编译器最终会把它翻译成机器码。我们看看一段简化的函数调用过程。
eax, rbp, rsp, edi... 是 CPU 内部的超高速存储格子。比内存快几十倍,但只有 16 个左右。
MOV(搬)、ADD(加)、PUSH(压栈)、CALL(调用)、RET(返回)。
函数调用层层嵌套,靠"栈"这种数据结构管理。每次 call 都会在栈上分配一块空间。
把 CPU 想象成一个图书管理员。内存是后面巨大的书库,寄存器是他桌子上的几个小格子。要做加法,他得先把两本书从书库搬到桌上的格子里,算完再放回书库。
x86 的"哲学"是允许偶尔直接对着书库算账(指令可以直接操作内存),ARM 则要求必须先搬到桌上格子里再算。后者笨一点,但更规整、更快。
为什么同一个 CPU 跑两段功能一样的代码,速度能差十倍?答案不在 CPU 本身,而在它面前的缓存。
现代 CPU 大部分时间都不在"算",而在等内存。缓存就是为了缩短这段等待。
注意单位:寄存器是纳秒(ns),机械硬盘是毫秒(ms),差了 3000 万倍。如果寄存器是 1 秒,机械硬盘就是 1 年。
把寄存器想象成你手里拿着的那本书——拿起来就读,几乎不花时间。
L1 缓存是桌上的几本书——伸手就拿到。
L2 缓存是书架第一格——起身两步就够到。
L3 缓存是同一房间的书柜——走几步。
主内存是楼下图书馆——下楼、找书、上楼,半天没了。
硬盘是城市另一头的仓库——叫快递、等送达,几小时甚至几天。
所以 CPU 设计的核心智慧就是:让最常用的东西永远在你手边。这就是"缓存"做的事。
刚用过的数据,很可能马上再用。比如循环里 for (i=0; i<n; i++) sum += a[i];,sum 每次循环都用,留在 L1 就行。
用了某个地址的数据,附近地址的数据也很可能马上要用。比如遍历数组,访问 a[0] 后大概率要访问 a[1]。所以缓存一次载入一整块(通常 64 字节,叫 "cache line")。
两段代码看起来"复杂度都是 O(n)",但实际跑起来差好几倍。算法书里那个抽象的 "n",在硬件里要乘以一个"是否缓存友好"的系数。
多核 CPU 下还有个新麻烦:每个核都有自己的 L1/L2,但大家都在改同一份共享变量。怎么保证大家看到的值一致?
多核之间通过这个协议互相通知,保持缓存一致。这套机制是无形的,但每次跨核共享数据都要走一遍——这就是为什么多线程程序"假共享"(false sharing) 会让性能急剧下降。
CPU 的另一个速度秘密:不傻等。一条指令还没做完,下一条就开始预备了——这就是流水线。流水线的极致就是"猜着往前跑",而这种猜测,正是 2018 年震惊业界的 Spectre / Meltdown 漏洞的源头。
现代 CPU 的流水线不止 4 级,Intel 高性能 CPU 流水线可以做到 14-20 级。理论上每个时钟周期都能"出"一条指令的结果。
问题来了:遇到 if (x > 0) goto A; else goto B; 怎么办?流水线已经流到第 5 级了,到底该把指令 B 还是指令 A 灌进去?
傻办法:等 if 判断完再继续——但流水线就停顿了,全部白等。
聪明办法:赌一把!根据过去这条 if 通常走哪边,先猜一边继续往前。猜对了就赚到,猜错了就把流水线清空重来。
这就是"分支预测器"。现代 CPU 的分支预测准确率可以做到 95% 以上——这是几十年的硬件设计积累。
更激进的优化:CPU 不只是猜下一条走哪条路,而是真的去执行了。猜对了,结果直接采纳,省了等待;猜错了,把这些"未完成的副作用"扔掉,假装啥都没发生。
这个机制在 2018 年之前被认为是完全安全的——既然"扔掉"了,外界又怎么会知道呢?
2018 年 1 月,全球安全研究者同时披露了两个震惊业界的漏洞:Meltdown 和 Spectre。
核心发现:推测执行虽然"扔掉了结果",但它访问过的内存留下了缓存痕迹。攻击者可以通过测量后续访问的延迟,反推出 CPU 在推测时偷看了什么。
这是"侧信道攻击"(side channel)的一种——你不能直接看到秘密,但能通过秘密造成的间接影响反推出来。
更可怕的是:这不是某家厂商的 bug,而是所有现代高性能 CPU 共有的设计——Intel、AMD、ARM、IBM 全中招。修复要么牺牲性能(每次系统调用清空缓存),要么改硬件(要重新流片,几年时间)。
Spectre 之后,整个行业才意识到:性能优化和安全保障,并非天然兼容。过去三十年我们追求"让 CPU 跑得更快"的所有花招——流水线、推测、缓存——同时也是新攻击面。对 Spectre/Meltdown 事件的回顾
现代 CPU 的设计哲学,从此多了一条:"快,但要快得安全"。
Intel 的"Hyper-Threading"(超线程,HT)和 AMD 的 SMT 都是同一个思路:当一个线程在等内存时,让另一个线程占用流水线,CPU 一秒都不浪费。
所以你电脑显示"8 核 16 线程"——物理上只有 8 个核,但每个核能同时处理 2 个"逻辑线程"。两个逻辑线程共享同一套缓存和执行单元,所以加速通常是 20-30%,而不是翻倍。
1980 年代初,英国剑桥有家叫 Acorn Computers 的小公司,专门给 BBC 做"教育电脑"。他们想造自己的 CPU——但小公司没钱用 Intel 那一整套复杂方案。
于是他们决定基于当时学术界新兴的 RISC(精简指令集)理念,从头设计一个简单的 CPU。这就是
—— Acorn RISC Machine。
ARM,由此诞生。
1990 年,Acorn、Apple、VLSI 三家合资成立了 ARM 公司——这时候 ARM 改了个名字:Advanced RISC Machines。Apple 出资是因为想给自家的 Newton 掌上电脑做芯片。ARM 公司成立
ARM 自己不生产芯片,只设计架构和 IP 核,授权给别人。
这就是为什么今天市面上的:
——全都基于 ARM 架构,但芯片设计各不相同。ARM 就像建筑师,授权图纸,由各家自己盖楼。
RISC 简单的指令集意味着 CPU 内部的解码、调度电路可以做得很简单,晶体管少,功耗自然低。你的手机能用电池跑一整天,很大程度上靠 ARM。
严格区分"搬数据"和"算数据"。所有算术运算只能在寄存器之间进行,要操作内存必须先 Load 到寄存器,算完再 Store 回去。流水线更规整。
ARM64 有 31 个通用寄存器,x86-64 只有 16 个。寄存器多了,函数调用、临时变量不太需要频繁访问内存,速度更快。
ARM 在一颗芯片里同时放高性能大核和低功耗小核。轻负载用小核省电,重负载切大核。这个思路后来被 Intel 学走了。
2010 年由加州大学伯克利分校发起。
最大特点:完全开源开放——任何人都可以免费使用、修改、商用,不需要交授权费。
跟 x86(Intel/AMD 垄断)和 ARM(要交授权费)都不同。下一页会详细讲它在中国的发展。
IBM 主导。
曾经在苹果 Mac(2006 年之前)、游戏机(PS3、Xbox 360、Wii)和服务器(IBM 大型机)上广泛使用。
现在主要在 IBM 自家服务器和高性能计算领域,是银行核心系统的常客。
斯坦福大学项目商业化。
早期 RISC 代表。曾在路由器、游戏机(PS2、PSP、N64)、嵌入式系统中广泛使用。
中国的龙芯早期就基于 MIPS 兼容架构开发。MIPS 公司现已转向 RISC-V。
龙芯中科自研,2021 年发布。
从 MIPS 兼容路线转向完全自主。是中国在 CPU 架构自主化方面的重要尝试。
能否在生态上突破,是它的最大挑战。
Sun Microsystems(后被 Oracle 收购)的 RISC 架构。
曾经在 Unix 工作站和服务器领域很重要。现在基本退出市场。
Intel 在 2001 年推的 64 位架构。
试图绕过 x86 另起炉灶,但不兼容旧软件导致市场失败。最终被 AMD 的 AMD64 反杀。
2021 年 Intel 正式停止生产,写入计算机史的"教训"。
RISC-V 不仅是技术上的新选项,更是一场关于知识产权和地缘政治的全球博弈。中国为什么这么重视它?
问题的根源:x86 由 Intel 和 AMD 两家美国公司垄断,授权几乎不可能拿到;ARM 虽然可以授权,但它是英国公司(现属日本软银),授权随时可能因美国出口管制而受阻。
2019 年华为事件之后,ARM 一度暂停了对华为的部分授权,给中国半导体行业敲响了警钟——核心架构必须有备份方案。
RISC-V 的特点正好对症:开源、免授权费、任何人可以修改、谁也不能"撤销"你的使用权。
核心指令集很小(RV32I 只有几十条),其他功能通过"扩展"按需加。要做 IoT 芯片就用基础集,要做服务器就加上向量、虚拟化扩展。
诞生在 2010 年,没有历史包袱。吸取了 x86 和 ARM 几十年的经验教训,从一开始就设计得干净、规整。
由非营利的 RISC-V International 基金会管理,总部已从美国搬到瑞士,以保持中立性。
| 公司 / 产品 | 定位 | 意义 |
|---|---|---|
| 阿里平头哥 · 玄铁系列 | 从低功耗 IoT 到高性能桌面级 CPU 都有 | 玄铁 C910 是早期较成熟的高性能 RISC-V 核心 |
| 中科院计算所 · 香山 | 开源高性能 RISC-V 处理器项目 | 目标是追赶 ARM Cortex 系列高端核心,全代码开源 |
| 芯来科技 | 嵌入式 RISC-V IP 核 | 面向 MCU、IoT 市场,已大量量产 |
| 兆易创新 GD32V | 基于 RISC-V 的 MCU 单片机 | 替代 STM32 的国产方案,在工控、家电中广泛应用 |
| SiFive(美国,但中国深度参与) | RISC-V 商业化的领头羊 | 提供商业级 IP 核,许多中国公司基于它二次开发 |
· 嵌入式市场(MCU、IoT)大量应用
· AI 加速器内部控制核常用 RISC-V
· 开发板生态比较成熟(如 VisionFive、Lichee Pi)
· Linux、Android 都已经支持 RISC-V
· 高性能 CPU 性能与 ARM/x86 顶级产品仍有差距
· 软件生态薄弱——Windows 不支持,macOS 不支持,大多数商业软件没适配
· 缺乏"杀手级"消费产品
· 标准扩展碎片化风险(避免重蹈 Unix 分裂的覆辙)
RISC-V 之于 CPU 架构,就像 Linux 之于操作系统——它不会一夜之间取代谁,但它的存在让整个产业有了"开源备份",永远不会被一家公司卡脖子。这种"保险价值"在地缘政治紧张的当下,比性能数字更重要。对 RISC-V 战略意义的一种概括
说到"国产 CPU",很多人只想到龙芯。其实中国今天有五条不同的自主化路线,每条都有自己的取舍——是要兼容生态,还是要完全自主?是要短期落地,还是长期独立?
| 品牌 | 架构 / 路线 | 策略 | 主要场景 |
|---|---|---|---|
| 华为鲲鹏 | ARM v8 架构授权 | 买 ARM 永久授权 + 自研核心设计 | 服务器、云、华为云生态 |
| 飞腾 (Phytium) | ARM 架构授权 | 军工 / 政企背景,桌面 + 服务器双线 | 党政办公电脑、信创桌面 |
| 海光 (Hygon) | x86 (AMD Zen 授权) | 2016 年合资公司,拿到 Zen1 一次性授权 | 服务器,对接现有 x86 生态 |
| 兆芯 (Zhaoxin) | x86 (VIA 授权) | 继承 VIA 老牌 x86 授权 | 桌面、笔记本、嵌入式 |
| 龙芯 LoongArch | 自研指令集 | 从 MIPS 兼容 → 完全自主指令集 | 党政、教育、嵌入式 |
| 申威 (Sunway) | 自研 RISC (SW64) | 军用背景,专注超算 | 神威·太湖之光超算(曾经的世界第一) |
| 阿里平头哥 / 香山 / 兆易 | RISC-V (开源) | 站队开源标准,赌未来生态 | 嵌入式 / IoT / AI 加速器内嵌核 |
代表:海光(x86)、兆芯(x86)、鲲鹏(ARM)、飞腾(ARM)
优势:软件生态现成可用,Windows/Linux 上的程序基本不用改。短期能落地。
风险:授权随时可能被卡(美国制裁先例),永久授权也只是"这一代"——下一代不一定。
代表:龙芯(LoongArch)、申威(SW64)
优势:真正不依赖外部授权,永远不会被卡脖子。
风险:软件生态要从零做起——Windows 没有、商业软件大多没适配。需要中国 Linux 发行版、统信 UOS、麒麟 OS 等配套。
代表:阿里玄铁、中科院香山、兆易 GD32V
优势:架构本身免授权费、开源、谁也卡不了。可以自由扩展指令。
风险:RISC-V 在高性能 CPU 上还很年轻,对标 ARM Cortex-A 高端核仍有差距。
代表:寒武纪(AI 加速器)、燧原(AI)、壁仞(GPU)、摩尔线程(GPU)
避开通用 CPU 红海,做AI / GPU 专用芯片——这里没有兼容性历史包袱,弯道超车空间大。
"信创"是什么?
"信创"= 信息技术应用创新,是中国近年推动的党政办公 IT 国产化工程。明确要求中央和部分省市的电脑必须用国产 CPU + 国产操作系统 + 国产数据库 + 国产办公软件。
四大主推 CPU 平台:鲲鹏(ARM)、飞腾(ARM)、海光(x86)、龙芯(LoongArch)、兆芯(x86)、申威(自研)都在名单内——配套统信 UOS、麒麟 OS、达梦数据库、WPS Office 等。这是这些 CPU 当下最大的市场和现金流来源。
没有哪条路线一定对。短期靠借(兼容),中期靠开源(RISC-V),长期靠自研(LoongArch / 申威)——中国把鸡蛋分到了几个不同的篮子里。这不是浪费,而是分散风险。对国产 CPU 路线的一种解读
真正的护城河,永远不在 CPU 本身,而在 CPU 之上的编译器、操作系统、数据库、行业软件——这些才是十年功夫。
在过去 30 年里,苹果 Mac 经历过三次整体架构迁移。每一次都是一场赌博,但每一次都成功了。这本身就是个奇迹。
1984 年初代 Mac 用的是摩托罗拉 68000 系列 CPU。1994 年苹果联合 IBM、摩托罗拉成立 AIM 联盟,迁移到 PowerPC 架构(RISC)。为兼容老软件,引入了软件模拟器。
PowerPC 在功耗和性能跟进上落后了。乔布斯 2005 年宣布转向 Intel x86,用 Rosetta 软件模拟工具兼容老的 PowerPC 软件。这一步让 Mac 性能大跃进,也使 Mac 上能装 Windows(Boot Camp)。
苹果发布 M1 芯片,开始用自研 ARM 芯片完全替换 Intel。Rosetta 2 实时翻译老的 x86 软件。这次迁移再次震惊业界——M1 笔记本的续航和性能都打破了 PC 笔记本的纪录。
2015 年后 Intel 工艺升级一再延期,10nm 难产,14nm "+++"挤牙膏,桌面 CPU 功耗墙摆在那里。Mac 笔记本散热和续航被钉死,苹果的产品设计被迫迁就 Intel。
苹果给 iPhone 设计的 A 系列芯片(A11、A12、A13…)单核性能逐年逼近 Intel 桌面 CPU,且功耗只有几瓦。"既然手机芯片已经这么强,为什么不直接放进 Mac?"
传统 PC 像两个不同部门的办公室,要传文件得走人复印一份送过去。M1 像把所有部门搬到同一张大桌子上,文件就摊在桌上,谁都直接看。少了搬运的开销,效率自然飞起。
| 核心类型 | 代号 | 用途 | 功耗 |
|---|---|---|---|
| 性能核 × 4 | Firestorm | 跑前台繁重任务(视频导出、编译) | 每核 ~5W |
| 能效核 × 4 | Icestorm | 跑后台日常任务(邮件、网页、Spotify) | 每核 ~0.5W |
系统调度器根据任务负载,智能分配到不同核心。你看个网页只用小核,电池能撑 18 小时;你导出视频自动切大核,速度满血。
M1 不只是 CPU,而是个完整的 SoC(System on Chip):CPU + GPU + 神经引擎(NPU)+ ISP(图像信号处理)+ 视频编解码器 + 安全芯片 + 内存控制器 + 雷电控制器 + ……
这种"集成度极高"的设计来自苹果做手机的经验——iPhone 二十年都是这么做的。把它搬到 Mac 上,立刻获得了功耗优势和系统级优化。
Rosetta 2 翻译效率惊人——许多 x86 软件在 M1 上跑得比原生 Intel Mac 还快。这是因为 M1 的硬件性能足够强,即使打了"翻译税"还有富余。
苹果做对的,不只是芯片本身。它同时控制了 CPU 设计、操作系统、编译器(Clang/LLVM)、应用商店分发、开发工具(Xcode)。这种"垂直整合"使得 M1 每一层都为下一层量身打造——这是 PC 厂商永远做不到的。Apple Silicon 成功的本质
M1 的成功不只是设计上的成功,更是制造上的成功——它能跑得这么快、这么省电,是因为用上了当时最先进的 5nm 工艺,而这工艺只有一家公司能做:台积电(TSMC)。
这一节讲讲这个被低估的产业链环节:芯片是怎么造出来的,为什么 Intel 慢了,为什么台积电赢了。
Intel 创始人 Gordon Moore 观察到:每隔约 18-24 个月,单位芯片上能塞进的晶体管数量翻倍,价格不变。
这条"经验法则"驱动了半导体行业 50 年的疯狂进步——你 5 年前的电脑跑不动新游戏,就是它在起作用。
IBM 工程师 Robert Dennard 发现:晶体管变小,功耗也按比例下降,频率可以按比例升高。
这条规律是更深的——它意味着每代 CPU 能免费变得又快又省电。1990-2005 年 CPU 主频从 100MHz 飙到 3GHz,靠的就是它。
Dennard Scaling 在 2005 年左右终结——晶体管小到一定程度后,漏电流开始急剧增加,功耗不再按比例下降。结果是:CPU 主频卡在 3-5 GHz 上不去了,因为再快就烧坏散热。
这是整个 IT 产业的"大拐点"。从此:
· 桌面 CPU 不再追求高频,转向多核(双核 → 四核 → 8 核 → 16 核)
· 移动设备崛起——能效比主频重要
· ARM 因低功耗优势开始侵蚀 PC 市场
· 专用加速器(GPU、TPU、NPU)兴起——通用 CPU 不够用了
苹果 M1 / Apple Silicon 的整个故事,就是这个拐点之后的产物。
摩尔定律本身也在放缓——晶体管已经小到 10 个硅原子那么大,再小就要碰到量子力学的"隧穿效应"。每一代工艺升级越来越难、越来越贵。
媒体常说 "苹果用了 3nm 工艺"、"Intel 在 7nm 卡了三年"——这 nm 数字越来越是营销名词,不再严格对应物理尺寸。但越小确实越好:晶体管越密,单芯片能塞更多核 / 更省电。
"光刻"是芯片制造的最关键一步——用极短波长的光,把电路图样像照相一样"印"到硅片上。
问题是,到了 7nm 以下,普通紫外光的波长都大于要刻的线条本身了——好比你用一支毛笔画头发丝,怎么画都画不细。
解决方案叫 EUV(极紫外光刻),波长只有 13.5nm。但要稳定产生这种光,要用激光打融化的锡液滴,让锡爆炸成等离子体——这种机器全世界只有一家公司能造:荷兰的 ASML。
一台 EUV 光刻机 2 亿美元,重 180 吨,要 40 个货柜运输。台积电、三星、Intel 都在排队买。
全球第一大芯片代工厂,不设计、只造。1987 年张忠谋创立"纯代工"模式。
客户:苹果、AMD、NVIDIA、高通、博通、华为海思(被制裁前)……几乎所有顶级芯片设计公司都靠它代工。
3nm / 2nm 工艺独家领先 1-2 代。
曾经是全球工艺标杆。但 10nm 难产了 4 年(2015-2019 反复延期),被台积电、三星超越。
苹果 2020 抛弃 Intel 的根本原因,就是 Intel 工艺停滞——M1 用 TSMC 5nm,比 Intel 当时的 14nm 领先两代。
2024 后 Intel 推出 18A (1.8nm) 工艺试图反扑,能否成功还是问号。
同时自产 + 代工。手机芯片(Exynos)、内存霸主。代工业务体量仅次于 TSMC。
3nm 良率长期落后台积电,最大客户高通也转身去找 TSMC。
中国大陆的旗舰代工厂 中芯国际(SMIC),2020 年被美国列入实体清单,买不到 EUV 光刻机。理论上工艺被卡在 7nm。
但 2023 年华为 Mate 60 Pro 用上了中芯 7nm 工艺的麒麟 9000S——震惊业界,证明中芯靠"多次曝光 DUV"(用旧设备多次叠加)硬做出了 7nm。这是付出极大良率和成本代价的"突围方案",但展示了"卡脖子也卡不死"的可能性。
过去 50 年,架构创新(CISC vs RISC)和工艺进步(更小的晶体管)共同推动了 CPU 性能。但摩尔定律放缓之后,仅靠工艺已经不够——架构、专用加速器、软硬协同开始成为更重要的杠杆。对摩尔定律时代终结的回顾
这就是为什么 NVIDIA 凭 GPU 市值超过 Intel,为什么苹果靠 SoC 整合赢过 Intel——半导体的舞台中心,从工厂转向了系统设计。
1969 年,AT&T 贝尔实验室。两个年轻工程师 Ken Thompson 和 Dennis Ritchie(后来发明了 C 语言的那位),在一台闲置的 PDP-7 小型机上开发了一个新操作系统。
最初的动机?据传是为了能玩自己写的太空游戏。
这个系统,他们叫它 Unix。
Unix 是简单的。但你得是一个天才,才能理解它的简单。— Dennis Ritchie
① 一切皆文件:硬件、进程、网络全部抽象成"文件"。你打印文档可以 cat file > /dev/printer。
② 小工具组合:每个程序只做一件事但做好,通过"管道"(pipe)组合。ls | grep .txt | sort 比写一个大程序优雅。
③ 多用户、多任务:同一台机器同时为多个用户服务。
④ 用 C 语言重写(1973):这一步是革命性的。之前所有操作系统都是用汇编写的,绑死在一种硬件上。C 重写让 Unix 可以移植到任何机器。
AT&T 当时受反垄断诉讼限制,不能直接卖软件。于是以极低价格把 Unix 授权给大学。结果在学界一传十、十传百,成为学术界标准。
伯克利大学拿到源码后大改特改,搞出了 BSD(Berkeley Software Distribution)。BSD 加入了 TCP/IP 网络栈——是的,今天整个互联网的协议栈,最早就是在 BSD Unix 上实现的。
AT&T 拆分后能商业化了,Unix 立刻分裂成无数版本:System V(AT&T)、BSD(伯克利)、Solaris(Sun)、AIX(IBM)、HP-UX(HP)、IRIX(SGI)……每家不兼容,给开发者带来巨大痛苦。这是 Unix 后来衰落的重要原因。
MIT 的 Richard Stallman 发起 GNU 项目(GNU's Not Unix 的递归缩写),目标做一个完全自由的 Unix 兼容系统。陆续做出了 GCC 编译器、Bash shell 等核心工具,但关键的内核 GNU Hurd 一直难产。这个空缺,很快会被一个芬兰大学生填上。
Unix 像一本写得太好的菜谱。AT&T 把它送给了世界上所有的厨师学校(大学),学校的厨师们各自又写了自己的菜谱变种。等 AT&T 想回过头来收钱时,已经晚了——市面上有无数版本的"菜谱",谁也不服谁,最后整个 Unix 阵营在内斗中错过了 PC 革命。
Unix 不只是一个操作系统,它定义了一种做软件的方式。几十年后,这套思维方式还在影响我们今天写程序、设计系统、做开源协议。
1978 年,Unix 管道(pipe)的发明人 Doug McIlroy 总结了 Unix 哲学,就三句话:
每个程序专注一个小目标,不堆砌功能。grep 只搜索、sort 只排序、wc 只数行——简单到可以预测。
通过"管道"把多个小程序连起来,输出变输入。cat log | grep ERROR | sort | uniq -c 比一个 500 行的大程序优雅得多。
程序之间不传"对象"或"二进制结构",传纯文本。文本人能读、机能写、跨语言无障碍——这是 Unix 最低调但最伟大的决定。
把 Unix 哲学想成瑞士军刀 vs 一套日本料理刀。Windows / macOS 的图形软件像瑞士军刀——一个工具啥都能干,但每样都不够锋利。Unix 工具像料理刀——每把只为一件事而生,但组合起来无所不能。
这种思维不只在 Shell 里。微服务架构、RESTful API、函数式编程、UNIX 风格的命令行工具(jq、ripgrep、fd)——本质都在贯彻 Unix 哲学。
Unix 大战导致几十个互不兼容的版本(System V、BSD、Solaris、AIX、HP-UX...)。开发者抓狂——同样的程序在不同 Unix 上要改一遍。
1988 年,IEEE 牵头制定 POSIX(Portable Operating System Interface)标准——规定所有 Unix 必须提供这些统一的接口:
今天 macOS 是经过 Open Group 认证的 UNIX(POSIX 兼容);Linux 兼容 POSIX 但没去认证(开源项目交不起认证费),所以严格说是 "Unix-like";Windows 通过 WSL 和 POSIX 子系统也能跑 POSIX 程序。
软件做出来后用什么"许可证"发布,决定了别人能不能用、怎么用、改了之后还要不要开源。这个看似法律问题,深刻影响了整个软件世界的格局。
代表:Linux 内核、GCC、Bash
"用了我的代码?好,你的代码也必须开源(同样用 GPL)。"
意图:保证开源代码永远开源,防止被商业公司"私吞"。
后果:大公司谨慎使用——所以 Apple 不直接用 GPL 代码(macOS 用 BSD 部件)。
代表:FreeBSD / OpenBSD、React、Vue、TensorFlow
"随便用,注明一下原作者就行。改了不开源也无所谓。"
意图:最大化代码被使用的可能性。
后果:苹果能光明正大地把 BSD 用进 macOS——iOS 的网络栈大量来自 FreeBSD。索尼 PS4/PS5 系统也基于 FreeBSD。
代表:Android (AOSP)、Kubernetes、Hadoop
"随便用 + 不能事后用专利起诉用户。"
意图:解决 MIT/BSD 没法防范"专利埋伏"的漏洞。
企业用户最喜欢——既宽松又有法律保障。
为什么 Android 不用 Linux 全部组件?
Android 用了 Linux 内核(GPL),但 Google 故意没用 GNU 的 glibc(GPL),而是自己写了 Bionic libc(BSD 许可证)。
原因?GPL 的"传染性"会要求所有用 glibc 的 App 也开源——这显然不适合应用商店里的商业 App。换成 BSD 的 Bionic,商业 App 才能合法闭源发布。
所以选择许可证不是"哪个更好"的问题,而是"我想让这个生态长成什么样"的问题。Linus 选 GPL 让 Linux 永远开源;Google 选 Apache 让 Android 能商业化;苹果选 BSD 让 macOS 能闭源——三种选择,造就三种世界。
Unix 给世界的最大遗产,不是某段代码,而是一套思维方式:把复杂问题拆成小问题、用约定好的接口连接、让代码可以被自由组合和分享。Unix 哲学的当代回响
从 1970 年代到 2026 年的 AI 时代,这套哲学没过时——它只是换了载体。容器编排是新的管道,REST API 是新的"文本接口",开源模型权重是新的"小工具"。
1991 年 8 月 25 日,芬兰赫尔辛基大学的 21 岁学生 Linus Torvalds,在新闻组 comp.os.minix 上发了一封邮件。
Hello everybody out there using minix —— Linus Torvalds, 1991.08.25
我在做一个(免费的)操作系统(只是个爱好,不会像 GNU 那样大而专业)……我希望能听到大家想要什么样的功能。
他想自己写个类 Unix 内核,跑在自己新买的 386 PC 上。这就是 Linux 内核的开始——一个让创始人本人都没想到会改变世界的"小爱好"。
Linus 选择了 GPL 开源协议——任何人可以使用、修改,但修改后的版本也必须开源。这个"传染性"条款,确保了 Linux 永远保持开源,避免被某家公司"私吞"。
GNU 项目缺一个内核(Hurd 难产),Linux 正好补上。两者结合成 "GNU/Linux",一个完整的、自由的、类 Unix 系统。
不像传统软件由小团队闭门造车("大教堂"),Linux 全球程序员都可以贡献代码,早发布、常发布。这个模式被 Eric Raymond 在著名文章《大教堂与集市》中总结,成为开源运动的圣经。
1990 年代初,PC 普及、互联网兴起。学生和工程师都需要一个免费的 Unix 来学习。商业 Unix 太贵,BSD 陷在法律纠纷里,Linux 占据了真空。
很多人听过"Linux 内核",但具体它在做什么?长什么样?我们打开看看。
设计内核有两种主要哲学,Linux 选了第一种——但也带了点第二种的影子。
Monolithic · Linux / BSD
Microkernel · Mach / Minix
历史趣闻 · Linus 大战 Tanenbaum:1992 年,Linus 和操作系统教科书作者 Andrew Tanenbaum 在新闻组上爆发了一场激烈论战。Tanenbaum 教授坚持认为微内核才是"正确的未来",单内核(Linux)"过时且糟糕"。Linus 则反击说微内核理论上完美,但"实际上没人能做出真正快的微内核"。这场辩论的结果由市场给出:Linux 的单内核今天跑在 90% 服务器上,而纯微内核 OS 没一个真正流行。
决定哪个程序什么时候用 CPU。Linux 用的是 CFS(完全公平调度器),追求每个进程都"公平"地拿到 CPU 时间。最近正在引入新的 EEVDF 调度器,能更好地处理延迟敏感任务(比如游戏、视频会议)。
负责给程序分配物理内存、虚拟内存映射、内存换页(把不用的内存写到硬盘暂存)。Linux 的内存管理子系统极其复杂,是内核最大的模块之一。
提供"看起来一样"的文件接口,下面可以是 ext4、Btrfs、XFS、NTFS(只读)、网络文件系统 NFS、FAT32……应用程序不用关心具体是哪种。
实现 TCP/IP 协议、套接字接口、防火墙(netfilter / iptables / nftables)。Linux 的网络栈以高性能著称,是云计算和容器(Docker、Kubernetes)的基础。
很多人不知道,今天的 macOS 是一场"借尸还魂"的产物。它的真正祖先不是 1984 年的 Mac,而是乔布斯被苹果赶出去后做的另一个系统。
第一代 Macintosh 发布,搭载经典的 Mac OS。这套系统优雅但技术上落后——单任务(后来才支持协作式多任务)、没有内存保护、稳定性差。
乔布斯被自己创办的苹果赶出公司,创办了 NeXT 电脑公司。NeXT 开发了一个叫 NeXTSTEP 的操作系统,技术上极其先进:
· Mach 微内核(卡内基梅隆大学研究)
· BSD Unix 用户空间
· Objective-C 面向对象编程
· 先进的图形界面(Display PostScript)
商业上失败了,但技术上是当时最优秀的工作站操作系统之一——蒂姆·伯纳斯-李在 NeXT 上发明了万维网。
1996 年 Apple 经营不善,急需新一代操作系统。自家的 Classic Mac OS 已经技术落后无可救药;自己开发的下一代项目 "Copland" 彻底失败。苹果于是收购了 NeXT,把乔布斯接回来,并以 NeXTSTEP 为基础开发下一代 macOS。
新一代 macOS 诞生,底层是 NeXTSTEP,外壳是新的 Aqua 界面。从此 Mac 拥有了真正现代的操作系统基础。这就是你今天用的 macOS 的开端。
"优中选优"的真正含义:
① 内核选 Mach——学术界最先进的微内核研究成果
② 用户空间选 BSD——稳定成熟的 Unix 体系,正统 Unix 血统
③ 开发语言选 Objective-C(后来扩展到 Swift)——面向对象先驱
④ 图形渲染基础选 PostScript / PDF——印刷出版业标准
⑤ 外壳设计师选 Jony Ive——精致美学
苹果在每一层都"选最好的然后整合"——这就是 macOS 与众不同的根本原因。它通过了 Open Group 的 UNIX 认证,是正式的 UNIX 系统(Linux 反而不是,只是 "Unix-like")。
Windows 走的是一条完全不同的路。它有两个独立的血统,在 2001 年才合并成今天的样子。
IBM 要给 PC 找操作系统,找到比尔·盖茨的微软。微软没有现成的产品,于是花 5 万美元从一家小公司买了 QDOS,改名 MS-DOS 卖给 IBM。每卖一台 PC 收一份授权费——这笔交易奠定了微软帝国的基础。
早期 Windows 不是独立操作系统,只是跑在 DOS 上的图形界面外壳。Windows 3.1(1992)开始流行。
整合了 DOS 和 Windows,引入开始菜单、任务栏、即插即用。商业上极其成功。但底层还是 DOS 血统,不稳定、不安全。
稳定性问题始终无法根治。微软知道必须换血了。
1988 年,微软挖来了一个改变了 Windows 命运的人——Dave Cutler。
Cutler 原来在 DEC 公司主持 VMS 操作系统开发,是当时业界最顶级的 OS 架构师之一。他带着团队加入微软,从零设计了 Windows NT(NT = New Technology)。
NT 是个真正的现代操作系统:
Windows 与 x86 是一对深度绑定的伙伴。几十年来 Windows 持续优化对 x86 各代指令集扩展的支持:
| 扩展 | 引入年份 | 用途 |
|---|---|---|
| MMX | 1996 | 多媒体扩展,处理 8/16/32 位整数向量 |
| SSE / SSE2 | 1999/2000 | 单指令多数据(SIMD),加速浮点数计算、3D 图形 |
| AVX / AVX2 | 2011/2013 | 256 位向量寄存器,机器学习、视频编解码加速 |
| AVX-512 | 2016 | 512 位向量,HPC 和 AI 工作负载 |
| AES-NI | 2010 | 硬件加密指令,HTTPS 加速 |
| TSX | 2013 | 事务性内存,多线程同步加速 |
你点开 Word,敲键盘出字,把文件存到硬盘——这一连串事情背后,操作系统内核在拼命工作。它具体在做什么?
把电脑想象成一座大商场。
硬件是商场的房子、电梯、停车场、收银机。
应用程序是商场里的各家店铺:服装店、餐厅、咖啡厅、电影院。
操作系统内核是商场物业管理处——你看不到它,但没有它一切瘫痪。它管:
① 哪家店开在哪个铺位(内存分配)
② 电梯什么时候载谁去几楼(CPU 调度)
③ 收银机怎么和银行结算(I/O 与设备驱动)
④ 不让一家店的客人随便闯进另一家(权限与隔离)
⑤ 把卖出去的东西记在台账上(文件系统)
你的电脑可能同时开着浏览器、微信、音乐播放器、视频会议、几十个后台进程……但 CPU 核心可能只有 4 个。每一刻只有几个程序真在跑,其他都在排队。
内核负责飞快地切换——每个程序跑几毫秒,然后让出 CPU 给下一个。切换的速度快到你感觉所有程序"同时"在跑。这就叫时间片轮转。
现代调度器(如 Linux 的 CFS、EEVDF)要考虑:哪个程序优先级高?哪个需要低延迟(视频会议)?哪个可以慢慢跑(后台下载)?
你电脑可能装了 16GB 内存,但所有程序加起来想用 30GB——怎么办?
内核施了一个魔法:每个程序看到的是它"自己独占的"一大块连续内存(虚拟地址空间),但实际上:
· 多个程序的"虚拟内存"映射到同一块物理内存的不同位置
· 不常用的部分可以暂时存到硬盘(swap / 交换文件)
· 程序之间彼此看不到对方的内存——一个程序崩溃不影响别人
这就是为什么现代电脑稳定——单个程序崩溃几乎不会拖垮系统。
硬盘其实只知道"扇区"和"块"——一堆编号的存储位置。"文件"、"文件夹"这些都是内核虚构出来给你的抽象。
内核要管:
· 哪些块属于哪个文件
· 文件名 → 物理位置的映射
· 权限:谁能读、谁能写
· 完整性:意外断电时不丢数据(journaling)
· 性能:缓存、预读
常见文件系统:Windows 用 NTFS,macOS 用 APFS,Linux 主流用 ext4、Btrfs、XFS,移动设备常见 F2FS。
每一个键盘、鼠标、显卡、网卡、打印机、摄像头都是不同厂家做的,每个有自己的通信协议。如果应用程序要直接对接所有硬件,那是噩梦。
内核提供"设备驱动"层:硬件厂家写驱动,告诉内核怎么和它说话;应用程序对内核说"我要打印"——剩下的内核包办。
这也是为什么Linux 装新硬件常常需要装驱动——内核需要这个翻译器才能和硬件通信。
内核运行在 CPU 的"特权模式"(也叫 Ring 0、内核态),能干一切事——访问任何内存、控制任何硬件。
应用程序运行在"用户模式"(Ring 3、用户态),权限受限。要做敏感操作必须通过系统调用请求内核帮忙。
这一层隔离是整个计算机安全的根基。攻破内核 = 攻破一切。所以 OS 厂商把内核安全看得比命还重。
你浏览网页时,TCP/IP 协议要执行很多步骤:DNS 解析、TCP 握手、HTTP 请求、SSL 加密、数据包路由……这些大多在内核里完成。
应用程序只需要调用简单的"socket API":connect(google.com:443)、send(...)、recv(...),剩下复杂的事内核全包了。
这一来一回的"模式切换"有开销。所以高性能应用尽量少调系统调用,把数据攒一批再一起写(比如用 printf 而不是直接 write,因为 printf 在用户态有缓冲)。
过去几年,全世界最贵、最抢手的芯片不是 Intel 的 CPU,而是 NVIDIA 的 GPU——一颗 H100 价格 3 万美元,等货要排几个月队。
GPU 凭什么这么贵?它和 CPU 究竟差在哪?答案藏在一个根本性的设计哲学差异里。
Central Processing Unit · 通用
Graphics Processing Unit · 并行
想象一道菜要做 100 万人份。
CPU 方式:8 个米其林大厨,一个个仔细做。每人能处理复杂工序,但 100 万份要做很久。
GPU 方式:10000 个流水线工人,每人只会一招"切菜"或"装盘"。但他们同时干活——100 万份可能 1 小时就齐了。
所以 GPU 不是"更快的 CPU",它是一种完全不同的计算模型——并行性极强但单任务弱。
GPU 的计算模型叫 SIMT(Single Instruction, Multiple Threads)——一条指令,几千个线程同时执行。
同一段"加法",CPU 要循环 100 万次,GPU 一次性派出 100 万个线程并行执行——理论上快 100 万倍(实际受带宽、调度限制达不到,但差几百倍很常见)。
神经网络训练的本质,就是巨量的矩阵乘法。一个 1750 亿参数的大模型(如 GPT-3),训练时每秒要算几十万亿次浮点数。
矩阵乘法每个元素的计算互不依赖,完美适配 GPU 的并行模型。一个 4096×4096 的矩阵相乘,CPU 要几秒,H100 GPU 几毫秒。
NVIDIA 从 V100 开始在 GPU 里加入了专门做矩阵乘加的"张量核心"。一颗 H100 的 Tensor Core 每秒能做 1000 万亿次(1 PetaFLOPS)混合精度运算——这是它能卖 3 万美元的根本原因。
NVIDIA 把图形加速卡正式命名为 "GPU"。当时纯粹为游戏渲染设计——计算多边形、贴纹理、做光照。
NVIDIA 推出 CUDA——一套让 GPU 跑通用计算(不只是图形)的编程平台。这一步是天才的预判:当时几乎没人觉得 GPU 能干图形之外的事。
多伦多大学的 Hinton 团队用 2 块 NVIDIA GTX 580 训练了 AlexNet,在 ImageNet 比赛上碾压所有传统方法。从此 AI 研究全转向 GPU——CUDA 成了事实标准。
专门加速矩阵乘法的硬件单元出现。这是 GPU 从"图形 + 科学计算"正式变成"AI 计算引擎"的转折。
OpenAI 用上万张 A100/H100 训练出 ChatGPT,引爆生成式 AI 浪潮。全世界突然抢 GPU,NVIDIA 市值飙升至全球前三。
新一代 B100 / GB200,单卡 FP4 算力 20 PetaFLOPS。大模型训练已经是上万张卡的工程——一个数据中心耗电堪比一座小城市。
NVIDIA 的护城河不是它的 GPU 芯片本身——AMD、Intel 也能做出硬件参数接近的产品。真正的壁垒,是软件生态,叫 CUDA。
CUDA 不只是一种编程语言,而是 NVIDIA 19 年来积累的庞大软件栈:
· cuBLAS(线性代数)、cuDNN(深度学习)、NCCL(多卡通信)
· TensorRT(推理加速)、Triton(推理服务)
· PyTorch / TensorFlow / JAX 都首先支持 CUDA
· 学术界几乎所有 AI 论文的代码都默认跑 CUDA
· 上百万开发者熟悉 CUDA API
对手 AMD 的 ROCm、Intel 的 oneAPI、Apple 的 Metal 硬件其实都不差,但软件生态落后 5-10 年。OpenAI、Meta、Google 即使想"去 NVIDIA 化"也很痛苦。
这就是"软件吃硬件"——硬件领先半年就被追上,软件生态领先十年才是真壁垒。
| 类型 | 全称 | 专长 | 代表产品 |
|---|---|---|---|
| GPU | Graphics Processing Unit | 通用并行计算、图形、AI 训练 | NVIDIA H100/B100、AMD MI300X |
| TPU | Tensor Processing Unit | 专做矩阵乘法(AI 训练/推理) | Google TPU v4/v5(仅自家云用) |
| NPU | Neural Processing Unit | 端侧 AI 推理(手机、PC) | Apple Neural Engine、高通 Hexagon、Intel AI Boost |
| DPU | Data Processing Unit | 数据中心网络、安全、存储卸载 | NVIDIA BlueField、AMD Pensando |
| ASIC | Application Specific IC | 为某一种算法定制的"一招专精"芯片 | 比特币矿机、AWS Trainium、Tesla Dojo |
| FPGA | Field Programmable Gate Array | 电路可编程,硬件灵活但功耗较大 | Xilinx (现 AMD)、Intel Altera |
| ISP | Image Signal Processor | 手机摄像头实时降噪、HDR | iPhone 的 ISP,每代都升级 |
这就是"异构计算"——同一颗芯片或同一台机器里,不同任务派给最擅长它的硬件。Apple Silicon 的 SoC 设计本质就是这个思路;NVIDIA 的 Grace Hopper(CPU+GPU 一体)也是;今后 AI 服务器的形态都在往这个方向走。
GPU 是中国半导体最有机会"弯道超车"的领域之一——因为相比 CPU 有 50 年生态包袱,GPU 在 AI 时代之前体量很小,从零做生态反而比 CPU 容易。
· 寒武纪:AI 加速器,早期与华为合作过
· 燧原:AI 训练 / 推理芯片
· 壁仞:通用 GPU,曾发布对标 A100 的 BR100
· 摩尔线程:消费级 GPU + AI 加速
· 华为昇腾:自研 AI 处理器,配套 MindSpore 框架
· 美国出口管制让 EUV 高端工艺无法使用
· NVIDIA CUDA 生态太厚,能不能让 AI 工程师从 CUDA 切换是关键
· 一些项目(如华为昇腾)选择"提供 CUDA 翻译层"以降低迁移成本
过去几十年,CPU 一直是计算的主角,其他芯片是"配角"。今天这个剧本反过来了——AI 任务里 GPU 是主角,CPU 只是负责"派活"和处理 I/O。异构计算时代的预言
这是几十年来最大的范式转移。下一个 NVIDIA 是谁?现在还看不清,但它一定不会卖 CPU。
前面讲了 Linux、macOS、Windows——但有个事实容易被忽略:用户数最多的操作系统不是 Windows,而是 Android。
全球约 70% 的智能手机跑 Android。它基于 Linux,但又跟桌面 Linux完全不一样。
Linux 自带的进程通信(管道、socket、共享内存)开销大、不适合手机。Android 自己写了 Binder 驱动,专为高频跨进程调用优化。
每次你的 App 调用系统服务(拍照、定位、震动),背后都走 Binder。
早期 Android 用 Dalvik(运行时翻译 Java 字节码);2014 起换成 ART(Android Runtime)——安装 App 时提前编译成机器码,启动更快、更省电。
不用 GNU 的 glibc(GPL 太"传染"),改用自家的 Bionic(BSD 许可)。这样 App 可以闭源发布,应用商店模式才走得通。
桌面 Linux 默认 CPU 跑就跑;手机不行——电池就那么点。Android 加了 wakelock、doze、low-memory killer等机制,默认让设备睡死,必要时才唤醒。
Android 的"碎片化"是它最大的痛点。
iOS:苹果一家说了算,新版本 80% 设备一周内升上。
Android:Google 出新版本 → SoC 厂商(高通、联发科)适配 → 手机厂商(三星、小米、OPPO)改 UI → 运营商批准 → 推送给用户。整条链路常常半年到一年,老机型可能永远收不到。
为缓解,Google 推动过 Project Treble(2017)把厂商层和 Android 框架分离,又推 Generic Kernel Image(2021)统一内核——但碎片化问题至今没根治。
你今天用过的 OS,最多的可能不是 Windows、macOS、Android——而是 RTOS(实时操作系统)。
它跑在汽车的发动机控制单元里、电梯里、洗衣机里、飞机的飞控里、心脏起搏器里——几乎所有"必须在 X 毫秒内响应否则会死人"的场景都用它。
不是"快",是"可预测"。
Linux / Windows / macOS
QNX / VxWorks / FreeRTOS
通用 OS 像高铁——平均很快,但偶尔晚点也能忍。
RTOS 像定时炸弹的引信——你按下按钮,它必须在 5 秒后引爆,不能 4.9 秒,也不能 5.1 秒。"平均 5 秒"在这里毫无意义。
| 系统 | 归属 | 常见场景 |
|---|---|---|
| QNX | BlackBerry (现归 BlackBerry Limited) | 汽车(特斯拉 Model S 早期、宝马、奥迪 iDrive 部分版本)、医疗、核电站、F-22 战机 |
| VxWorks | Wind River | 火星探测器(好奇号、毅力号都跑 VxWorks)、波音 787 飞控、工业机器人 |
| FreeRTOS | 开源 (现属 AWS) | IoT、智能家居、单片机项目首选(ESP32 几乎默认用它) |
| RT-Linux / PREEMPT_RT | Linux 实时补丁 | 给标准 Linux 加上硬实时能力,工业控制、4G/5G 基站用 |
| μC/OS | Micrium | 医疗设备、汽车 ECU |
| AUTOSAR Classic | 汽车行业联盟标准 | 欧美所有主流车企的发动机/刹车/转向 ECU |
有意思的事实:你的特斯拉车机系统跑的是 Linux(中控大屏),但真正控制刹车、加速、转向的"自动驾驶 ECU"跑的是 RTOS。因为 Linux 偶尔卡 100 毫秒不会死人,但刹车晚 100 毫秒可能要命。
你的手机里也有:基带芯片(处理通信信号)跑的是 RTOS,应用处理器跑 Android——同一台手机里两个 OS 各司其职。
你按下电脑的电源键,等几秒钟桌面就出来了。这中间有一长串接力——从一段死板的固件,到一个完整的现代操作系统,要走 5-7 个阶段。
主板上有一颗小芯片固化了启动程序。CPU 一上电就去执行它。BIOS(Basic Input Output System)是 1981 年起的老传统;UEFI(Unified Extensible Firmware Interface)是 2005 年起的现代替代品,支持图形界面、网络启动、安全启动(Secure Boot)。
固件检测内存、显卡、键盘、硬盘是否正常。你听到的"嘀"一声就是 POST(Power-On Self-Test)完成。
UEFI 按设定的顺序找:硬盘 → U 盘 → 网络。找到带启动标志的设备,加载第一个程序叫 Bootloader。常见的:GRUB(Linux)、systemd-boot(Linux)、Windows Boot Manager、Apple boot.efi。
Bootloader 的工作就一件事:把操作系统内核(如 vmlinuz)从硬盘读到内存里,跳转过去执行。多系统启动菜单(双系统)也是它管。
内核接管 CPU 后,依次初始化:内存管理、中断系统、设备驱动(CPU/磁盘/网卡/显卡)、文件系统、网络栈。这是最复杂的几秒。
内核启动的第一个用户态程序叫 init(PID 1),它是所有其他进程的祖宗。Linux 上现代用 systemd,老派用 SysV init / OpenRC。macOS 用 launchd。
init 启动一系列后台服务(网络、蓝牙、声音、打印),然后启动登录管理器(GDM / LightDM)。你输入密码后启动桌面环境(GNOME / KDE / macOS Finder / Windows Explorer)。
| 对比项 | BIOS (旧) | UEFI (新) |
|---|---|---|
| 年代 | 1981 - 2010s | 2005 - 至今 |
| 启动模式 | 16 位实模式 | 32/64 位保护模式 |
| 分区表 | MBR(最大 2TB) | GPT(最大 18EB) |
| 启动速度 | 慢(顺序检测设备) | 快(并行 + 跳过检测) |
| 界面 | 纯文本 + 键盘 | 图形 + 鼠标 + 网络 |
| 安全启动 | 无 | Secure Boot(验证启动文件签名,防 rootkit) |
你在 AWS 开一台"虚拟机",几秒钟就有了。你在自己电脑上跑 Docker,几秒就启动一个干净的 Linux 环境。这些"看起来是机器"的东西,背后是三十年虚拟化技术的累积。
一个软件假装自己是一台台独立的机器,里面跑完整的 OS。隔离最强、开销最大。
代表:VMware ESXi、Xen、KVM、Hyper-V、Apple Virtualization Framework
共用一个 Linux 内核,但每个容器有独立的文件系统 / 进程 / 网络视图。轻量得多,秒级启动。
代表:Docker、Podman、containerd、LXC
连容器都不显式管,直接交一段函数代码上去。云平台帮你跑、用完即销毁,按调用次数计费。
代表:AWS Lambda、Cloudflare Workers、Vercel Functions
Linux 内核能让进程看到"假的"系统视图:
· PID namespace:容器里 PID 1 是自己的 init
· Net namespace:容器有自己的虚拟网卡和 IP
· Mount namespace:容器看到的根目录跟主机不同
· User namespace:容器内 root 不是真 root
几个 namespace 加起来,就让一个进程感觉自己在一个独立机器里。
cgroups(control groups)限制每个容器能用多少 CPU、内存、I/O、网络带宽。
这是 Docker 能"一台机器跑几百个容器"而不互相打架的关键——每个容器有硬性资源上限。
这两个东西都是 Linux 内核自带的(cgroups 2007 由 Google 贡献),Docker 只是把它们封装成易用的工具。
当容器多到几千个,手动管不过来。Kubernetes(k8s)就是来管这件事的——它是"容器的操作系统"。Google 把内部用了 15 年的 Borg 系统改造成开源版,2014 年发布,从此成为云原生时代的事实标准。
虚拟化把一台机器变成多台,容器把多台机器变成一台——方向相反,目的一样:让计算资源像水电一样按需取用。虚拟化的本质
从 1960 年代 IBM 大型机上的分时系统,到 2020 年代的 Serverless,"抽象 + 复用 + 隔离"这三个词是 OS 历史的永恒主题。
| 系统 | 历史血统 | 内核类型 | 主要架构支持 |
|---|---|---|---|
| 商业 Unix AIX / Solaris / HP-UX |
1969 贝尔实验室原创 | 单内核 | 历史上多种 RISC (SPARC、POWER 等) |
| Linux Ubuntu / Debian / RHEL |
Unix-like (1991 重新实现) |
单内核 + 可加载模块 | 几乎所有架构 x86 · ARM · RISC-V · POWER · LoongArch... |
| BSD 家族 FreeBSD · OpenBSD · NetBSD |
直接源自伯克利 Unix | 单内核 | x86 · ARM 为主 |
| macOS iOS · iPadOS 同源 |
NeXTSTEP → Darwin (Mach + BSD) |
混合内核 | PowerPC (≤2006) → x86 (2006-2020) → ARM (2020+ Apple Silicon) |
| Windows XP / 7 / 10 / 11 |
独立血统 (NT 内核) | 混合内核 | 主要 x86 正在加强 ARM 支持 |
| Android 手机 · 平板 · 车机 |
Linux 内核 + Google 框架 (2008 起) |
单内核 (魔改 Linux + Binder) |
ARM 为主 少量 x86 (PC 模拟) |
| iOS / iPadOS watchOS · tvOS · visionOS |
macOS 同源 (Darwin / NeXTSTEP) |
混合内核 | ARM 独占 (Apple Silicon) |
| 实时 OS · RTOS QNX · VxWorks · FreeRTOS |
各家独立 / 部分基于 Unix | 微内核 / 单内核都有 | ARM Cortex-M/R 少量 x86 / RISC-V |
苹果 M 系列证明了 ARM 完全可以做高性能 PC。AWS Graviton、阿里倚天等 ARM 服务器芯片大量部署——功耗低 = 电费省 + 机房密度高。微软推 Windows on ARM,高通骁龙 X Elite 笔记本瞄准这个市场。
Intel 12 代 Alder Lake 引入 P-core + E-core,AMD 也跟进。x86 阵营终于重视能效——这是被 M1 倒逼的。
通用 CPU 之外,越来越多任务交给专用芯片:GPU(NVIDIA、AMD)做图形和并行计算,NPU/TPU 做 AI,DPU 做数据中心网络。"异构计算"成为主流。
x86 内部其实是 RISC 风格(微操作);ARM 也在加入更多复杂指令(如 SVE 向量扩展)。纯粹的"流派之争"正在淡化,更多差异在实现细节和生态上。
地缘政治推动 RISC-V 快速发展。短期内不会取代 x86 或 ARM,但作为开源备份,价值越来越大。中国在这条路上投入巨大。
大模型训练和推理对算力的疯狂需求,让 CPU 越来越像是"配角",GPU/NPU 才是主角。架构设计开始围绕"AI 性能/瓦特"重新思考。
· 传统桌面办公:Windows 生态、Office、大量历史软件原生 x86
· 游戏 PC:Windows + DirectX + x86 是黄金组合,几乎所有游戏为 x86 优化
· 专业工作站:CAD、3D 渲染、视频剪辑——专业软件 x86 优化最成熟
· 企业级 Windows 服务器:SQL Server、Active Directory 等微软栈深度依赖 x86
· 极致单核性能:Intel i9、AMD Ryzen 9 顶级桌面 CPU 单核仍是天花板
· 移动设备:手机、平板对功耗极其敏感,ARM 几乎垄断
· 嵌入式 / IoT:智能家居、车载、可穿戴设备
· 苹果生态笔记本:M 系列性能/功耗比目前难以匹敌
· 云服务器:高并发 Web 后端、容器化负载——电费便宜、密度高
· 端侧 AI 推理:手机端人脸识别、语音助手几乎全在 ARM 上
· 边缘计算:低功耗、可在恶劣环境部署
· 嵌入式系统:受 ARM 授权费困扰的低端 MCU 市场
· AI 加速器内嵌的控制核:作为加速器中的小型协处理器
· 学术研究 / 教学:开源,方便研究和教学
· 自主可控诉求:地缘政治背景下的"安全备份"
· 大型企业核心系统:银行、电信关键业务长期使用 IBM Power
· 特定 HPC(高性能计算):少数超算项目
市场已经很小,但在自己的细分领域非常稳固。
x86、ARM、RISC-V 看起来千差万别,但都是取指→译码→执行→写回。所有性能优化(缓存、流水线、推测执行)本质都在跟"冯诺依曼瓶颈"作斗争。
它决定了 CPU 听得懂哪些命令。x86、ARM、RISC-V 是三种主流"语言",互不兼容。CISC vs RISC 在现代实现里早已融合——x86 内部也是 RISC 风格。
现代 CPU 大部分时间在等内存,不在算。缓存层次、流水线、推测执行、超线程——这四件套决定了同一颗 CPU 性能能差十倍。Spectre/Meltdown 提醒我们:极致性能优化的副作用,是新的攻击面。
macOS 直接继承 Unix 血统(认证 UNIX);Linux 是 Unix-like 的重新实现;Android 用 Linux 内核;Windows 独立血统但也学了很多 Unix 概念。POSIX 让这些系统有了共同语言。
之前每代 CPU 自动变快又省电;之后只能靠多核 + 专用加速器 + 制程工艺。苹果 M1 的成功、ARM 入侵 PC、GPU 卖到天价、台积电的崛起——全是这个拐点之后的产物。
苹果同时控制 CPU、OS、编译器、应用生态,再加上独家拿到 TSMC 最先进工艺。每一层为下一层优化,PC 厂商无法复制。
x86 守住桌面和高性能 PC;ARM 主导移动和能效场景;RISC-V 在开源和自主市场扩展;GPU/NPU/TPU 承担越来越多 AI 与专用计算。"哪个架构会赢"是错误的问题——它们在各自领域共存,并通过虚拟化和容器协作。
计算机体系结构的历史告诉我们:没有最好的设计,只有最适合时代和场景的设计。今天的胜利者,可能是明天的失败者;今天的小众,可能是明天的主流。— 体系结构的元启示
真正不变的,是抽象的力量——从 8086 到 M3 Max,从汇编到 Python,每一层抽象都让人类从硬件细节中解放出来,去构建更宏大的东西。
Patterson & Hennessy
Patterson 是 RISC-V 的发起人之一,这本书是计算机体系结构的圣经。有 ARM 版、x86 版和 RISC-V 版,选你感兴趣的。
Andrew Tanenbaum
就是那个和 Linus 论战过的 Tanenbaum。这本书是操作系统经典教材,覆盖了内核所有核心概念。
Bryant & O'Hallaron
从程序员视角理解计算机系统的最佳入门书,配套 CMU 15-213 课程。能让你彻底打通"代码→机器"的认知。
Robert Love
想了解 Linux 内核怎么工作,这是最易读的入门书。看完可以接着读《深入 Linux 内核架构》。
Eric S. Raymond
开源运动的奠基性文章。讲述 Linux 为什么能用"集市"模式打败传统"大教堂"模式。免费在网上能读。
Eric S. Raymond
不是技术手册,而是 Unix 哲学的总结:简洁、模块化、组合性。读完会改变你对软件的理解。
Walter Isaacson
想了解 NeXT、macOS、Apple Silicon 决策背后的人和故事,这是最好的窗口。
riscv.org
开源指令集的完整规范。如果你想知道一个 ISA 的"说明书"长什么样,RISC-V 是最容易上手的,写得清晰简洁。
从 1969 年贝尔实验室的两个工程师,到 2026 年你手里这台设备——
背后是几十年无数人的设计、争论、迁移与重塑。
理解了这张大图,你看任何一台计算机,都不再陌生。