如果把操作系统的发展史比作《三国演义》,那么本文更像《三国演义》,而不是《三国志》。

本系列尝试用故事化的方式,讲述 Unix、Linux、BSD、GNU、Windows、macOS、Android 等操作系统背后的发展历程。

文中的人物、事件和技术演进都尽量参考公开资料,但为了让故事更容易理解,会适当简化一些历史细节,也会加入作者自己的理解。

它不是一篇学术论文,而是一段程序员视角的技术故事。

如果读完之后,你产生兴趣,愿意继续查阅官方资料,那这篇文章的目的就达到了。


引子:今天的手机世界,其实只剩两个帝国

今天买一台智能手机。

你会发现:

看起来品牌很多。

Samsung。

小米。

OPPO。

vivo。

Google Pixel。

荣耀。

Nothing。

还有各种各样的 Android 手机。

另一边:

则是 iPhone。

如果只看品牌数量:

Android 世界似乎极其复杂。

iPhone 却只有 Apple 一家。

但是如果再往下看一层:

整个智能手机世界,其实早就变成了两个巨大的操作系统帝国:

Android。

iOS。

更有意思的是:

它们的起点,竟然来自两条我们前面已经讲过的技术路线。

一条来自:

Unix↓BSD↓NeXT↓Darwin / XNU↓iOS

另一条来自:

Unix 思想↓GNU↓Linux Kernel↓Android

于是:

几十年前 Unix 世界分出的两条道路,

最终竟然在每个人口袋里的手机上,再次相遇。

但这一次:

它们走成了两个完全不同的帝国。


第一章:iOS,其实是 macOS 的亲兄弟

上一篇讲 macOS 时,我们已经讲过:

苹果今天操作系统世界的核心,是:

Darwin + XNU。

简单画出来:

                 Darwin / XNU                   /       \               macOS        iOS

所以严格来说:

iOS 并不是苹果突然为了手机,从零重新写出来的一个操作系统。

它更像是:

苹果把自己已经非常成熟的 Unix 技术底座,带到了手机上。

这一点非常重要。

因为 2007 年第一代 iPhone 发布时,

苹果并不是第一次做操作系统。

在那之前:

Mac OS X 已经存在多年。

苹果手里已经有:

  • XNU 内核;
  • BSD 网络栈和 Unix 基础设施;
  • Mach;
  • Objective-C;
  • Cocoa;
  • 完整的图形系统;
  • 成熟的开发工具链。

于是苹果做 iPhone 时:

并不需要从 Kernel 开始重新造轮子。

它真正需要解决的是:

怎么把一套桌面操作系统技术,重新设计成一个适合手指、触摸屏、电池和移动设备的系统。

所以早期苹果甚至把 iPhone 的系统叫:

iPhone OS。

后来才改名:

iOS。

从技术血统上看:

iPhone 和 Mac 其实是一家人。

只是一个生活在桌面。

一个生活在口袋。


第二章:Android 却走了完全不同的一条路

Android 的故事不一样。

Android 最早并不是 Google 内部诞生的项目。

2003 年:

Android Inc. 成立。

最初它研究的方向甚至和今天的智能手机并不完全一样。

后来:

Google 看中了这个团队。

2005 年:

Google 收购 Android。

接下来真正决定 Android 命运的事情发生了。

Google 没有选择像 Apple 那样:

自己设计一台手机,然后让操作系统只服务自己的硬件。

Google 选择的是:

做一个可以交给整个手机行业使用的操作系统平台。

于是 Android 底层选择:

Linux Kernel。

为什么是 Linux?

原因并不神秘。

Linux 当时已经非常成熟。

它已经具备:

  • 进程调度;
  • 内存管理;
  • 网络协议栈;
  • 驱动模型;
  • 文件系统;
  • 权限机制;
  • 大量硬件支持。

Google 根本没有必要重新写一个 Kernel。

于是:

Linux Kernel     ↓Android

但这里必须强调一点:

Android 并不等于传统 Linux 发行版。

Android 虽然用了 Linux Kernel。

但它并没有直接采用我们熟悉的:

GNU+Linux+GNOME / KDE

这套桌面 Linux 组合。

它有自己的一整套用户空间。

自己的 Runtime。

自己的 Framework。

自己的应用模型。

自己的权限机制。

自己的 UI。

所以:

Ubuntu 和 Android 都使用 Linux Kernel。

但它们其实是两个完全不同的操作系统世界。


第三章:2007 年,两条路线正式碰撞

2007 年。

Apple 发布第一代 iPhone。

Jobs 站在舞台上说:

今天苹果要发布三个革命性产品。

一个宽屏 iPod。

一台手机。

一个互联网通信设备。

然后他说:

它们不是三个设备。

而是:

一个设备。

iPhone 出现了。

它几乎重新定义了智能手机。

但同一年:

Google 也在准备自己的答案。

Google 联合多家厂商成立:

Open Handset Alliance。

其中包括:

手机厂商。

芯片公司。

运营商。

软件公司。

然后:

Android 被推向整个产业。

2008 年。

第一台商业 Android 手机出现。

于是两条路线正式形成:

Apple  ↓iOS  ↓iPhone

以及:

Google   ↓Android   ↓SamsungXiaomiOPPOvivoMotorolaGoogle……   ↓无数手机

表面看:

这只是两个操作系统在竞争。

实际上:

从一开始,

它们玩的就根本不是同一个游戏。


第四章:Apple 想卖的是“完整产品”

先看 Apple。

苹果的思路一直非常明确:

我不只做操作系统。

我要控制整个产品。

所以一台 iPhone 背后:

苹果控制:

  • 芯片;
  • 硬件设计;
  • 操作系统;
  • 驱动;
  • 图形系统;
  • Framework;
  • App Store;
  • 开发工具;
  • 云服务;
  • 系统升级。

甚至今天:

连 CPU 都是 Apple 自己设计的。

这意味着:

iOS 并不是一个准备卖给 Samsung、Xiaomi、OPPO 使用的操作系统。

它存在的意义就是:

让 iPhone 成为一个完整产品。

苹果真正卖给你的:

并不是一个操作系统许可证。

而是:

Hardware+OS+App+Service+Ecosystem

全部绑在一起的一整套体验。

换句话说:

苹果不是:

操作系统公司。

也不仅仅是:

手机公司。

苹果想控制的是:

从硅片到用户界面的整条产品链。


第五章:Google 想建立的是“硬件联盟”

Android 则完全不同。

Google 面临一个天然问题:

它不是传统手机硬件厂商。

Google 擅长的是:

搜索。

互联网服务。

广告。

云。

软件平台。

所以 Google 没必要自己制造世界上所有手机。

它需要的是:

让尽可能多的手机运行自己的平台。

于是 Android 最重要的能力并不是:

“Google 能不能做出一台最漂亮的手机。”

而是:

“能不能让 Samsung、Motorola、小米、OPPO、vivo、Sony、HTC……全部愿意加入。”

这就出现了一种和 Apple 完全不同的商业模式:

Google   ↓Android   ↓硬件厂商   ↓不同价位不同尺寸不同芯片不同设计   ↓全球消费者

Android 本质上做了一件非常厉害的事情:

用操作系统建立了一个巨大的硬件联盟。

Google 不需要自己生产几亿台手机。

无数手机厂商:

会帮 Google 把 Android 带到世界各地。


第六章:所以 Android 必须“开放”

很多人喜欢把 Android 与 iOS 的区别总结成:

Android 开放。

iOS 封闭。

这个说法不能算错。

但还不够深。

真正的问题应该是:

为什么 Android 必须开放?

答案其实就在它的商业模式里。

如果 Google 告诉 Samsung:

手机只能按照我的样子设计。

Samsung 为什么要用 Android?

如果告诉 Xiaomi:

UI 不准改。

小米为什么要加入?

如果告诉 OPPO:

功能不准加。

OPPO 为什么不自己寻找其他系统?

所以:

为了让整个硬件产业加入,

Android 天生就必须允许厂商:

在一定范围内做自己的东西。

于是我们看到了:

Samsung One UI。

小米 HyperOS。

OPPO ColorOS。

vivo OriginOS。

不同手机:

不同外观。

不同功能。

不同相机。

不同硬件。

不同价位。

Android 提供的是:

一个共同的平台底座。

厂商则在上面:

继续建设自己的产品。


第七章:而 iOS 为什么必须“封闭”

反过来看 Apple。

iOS 为什么不开放给 Samsung?

不是因为 Apple 技术上做不到。

而是:

一旦开放,Apple 自己的商业模式就被破坏了。

假设今天出现:

Samsung iOS PhoneXiaomi iOS PhoneOPPO iOS Phone

会发生什么?

消费者可能开始问:

既然大家都运行 iOS,

为什么我要买昂贵的 iPhone?

于是 Apple 自己最重要的竞争优势:

就被稀释了。

所以:

Android 需要扩张。

iOS 需要控制。

Android 的成功标准是:

有多少硬件厂商使用 Android。

而 iOS 的成功标准是:

有多少用户愿意购买 Apple 的完整产品。

这就是两条路线最根本的区别。


第八章:开放的代价:碎片化

Android 的模式带来了一个巨大优势:

规模。

你可以买:

几百元的 Android 手机。

也可以买:

旗舰 Android 手机。

可以:

折叠屏。

游戏手机。

三防手机。

超长焦手机。

甚至各种奇怪形态的设备。

Android 很快覆盖了:

几乎所有价位。

所有国家。

所有手机厂商。

但这种模式也有一个经典问题:

Fragmentation。

碎片化。

因为 Android 世界里存在:

不同芯片。

不同屏幕。

不同厂商。

不同驱动。

不同 Android 版本。

不同 UI。

不同升级策略。

于是开发者有时会发现:

我的程序在 Pixel 上没问题。

到了某品牌:

出问题了。

某个 API:

这台手机支持。

另一台:

行为又不一样。

某个 Android 新版本:

Google 已经发布。

但很多手机:

几个月甚至更久之后才升级。

为什么?

因为:

Android 的升级链路并不只有 Google。

很多情况下更像:

Google  ↓Android  ↓芯片平台  ↓手机厂商  ↓运营商  ↓用户

中间每多一层:

就多一层适配和测试。


第九章:控制的优势:Apple 可以“一刀切”

iOS 就简单很多。

因为:

Apple  ↓Hardware  ↓iOS  ↓iPhone

全是 Apple 自己的。

所以苹果可以说:

下个月开始,这个 API 不用了。

然后:

整个生态一起升级。

苹果也可以推出一种新的硬件能力。

然后同时修改:

芯片。

驱动。

Kernel。

Framework。

SDK。

Xcode。

应用接口。

全部一起配合。

这是垂直整合最大的力量。

比如:

Apple 设计自己的芯片后,

硬件与操作系统之间可以非常紧密。

操作系统团队知道:

未来 CPU 有什么能力。

CPU 团队也知道:

未来操作系统需要什么。

这种协同效率:

是 Android 阵营很难完全复制的。

因为 Android 面对的是:

几十家厂商。

大量芯片平台。

无数设备。


第十章:但控制也有代价

当然:

Apple 的路线也不是没有问题。

当一个公司同时控制:

操作系统。

应用商店。

硬件。

支付。

分发。

开发工具。

审核规则。

那么:

开发者几乎无法绕开它。

Android 世界至少理论上存在:

多个应用商店。

侧载。

不同厂商。

不同硬件选择。

而 iOS 世界:

Apple 拥有非常强的控制权。

所以围绕:

App Store。

应用分发。

抽成。

浏览器引擎。

支付规则。

一直都有争议。

从某种角度看:

苹果的优势和它的问题:

其实来自同一个地方。

控制。

控制带来一致体验。

也带来强大的平台权力。


第十一章:Android 其实也没有想象中那么“开放”

这里还有一个很容易被忽略的问题。

很多人会说:

Android 是开源操作系统。

大体没错。

Android 有:

AOSP:Android Open Source Project。

理论上:

厂商可以基于 AOSP 做自己的系统。

但今天普通消费者熟悉的 Android 手机:

通常不仅仅是 AOSP。

里面还会存在大量 Google 服务。

例如:

Google Play。

Google Maps。

YouTube。

Google Play Services。

以及一整套 Google Mobile Services。

所以:

Android 的真实世界其实分成两层:

AOSP↓开放的 Android 基础平台

上面还有:

Google Services↓Google 的商业生态

这也是 Google 商业模式非常聪明的地方。

底层足够开放:

让厂商愿意加入。

而真正连接:

应用。

账号。

地图。

搜索。

云服务。

广告。

应用商店。

的那一层:

Google 仍然拥有极强影响力。

所以 Android 并不是简单的:

“完全开放”。

它更像是:

开放底座 + 商业生态。


第十二章:两家公司真正争夺的,其实不是操作系统

如果把视角再拉远一点:

你会发现:

Android 和 iOS 的竞争,

早就不是:

Kernel 谁更好。

也不是:

哪个 UI 更漂亮。

甚至不只是:

哪台手机参数更高。

真正竞争的是:

生态入口。

手机已经成为现代人最重要的计算设备之一。

你每天在手机上:

搜索。

聊天。

购物。

支付。

导航。

拍照。

看视频。

玩游戏。

办公。

订阅服务。

使用 AI。

谁控制手机操作系统:

谁就站在整个数字世界非常重要的入口。

于是:

Apple 建立:

iPhone+iOS+App Store+iCloud+Apple Services

Google 建立:

Android+Google Play+Search+Maps+YouTube+Google Services

表面上:

它们卖的是操作系统和手机。

实际上:

它们建立的是:

数字生态帝国。


第十三章:两种路线,没有绝对赢家

很容易有人问:

那么:

Android 和 iOS。

到底谁的路线更好?

其实这个问题:

没有标准答案。

Android 的路线擅长:

规模。

它可以联合整个硬件产业。

覆盖:

不同国家。

不同价格。

不同硬件。

不同用户。

iOS 的路线擅长:

控制。

它可以让:

硬件。

系统。

软件。

服务。

协同工作。

所以最后形成了一个非常有意思的局面:

Android 世界:

像一个巨大的联邦。

里面有:

Samsung。

Xiaomi。

OPPO。

vivo。

Google。

Motorola。

……

大家共享一个基础制度。

但各自拥有自己的城市和军队。

而 iOS 世界:

更像一个高度统一的帝国。

只有:

Apple。

一套规则。

一套硬件。

一套系统。

一套生态。


第十四章:再回头看 Unix,会发现历史非常有意思

现在回头看看整个系列。

我们会发现一个非常奇妙的历史循环。

Unix 出现。

然后:

Unix├── BSD│    ↓│   NeXT│    ↓│   Darwin / XNU│    ├── macOS│    └── iOS│└── Unix 思想     ↓    GNU     ↓   Linux Kernel     ↓   Android

最终:

两个今天最重要的移动操作系统,

居然都能追溯到:

几十年前 Unix 世界留下的技术和思想。

Apple 这条线:

BSD↓NeXT↓Darwin↓XNU↓iOS

Google 这条线:

Linux Kernel↓Android

一条强调:

垂直整合。

另一条强调:

平台扩张。

一个:

控制完整产品。

一个:

联合整个硬件行业。

最后:

共同统治了智能手机世界。


写在最后:真正不同的不是“开放与封闭”

很多人讨论 Android 和 iOS 时:

最后都会落到一句话:

Android 开放。

iOS 封闭。

但如果沿着操作系统历史一路走下来,

会发现:

这只是表面。

更深层的区别其实是:

它们代表了两种完全不同的操作系统商业模式。

Android 的逻辑是:

Google↓Android↓Samsung / Xiaomi / OPPO / vivo / ...↓无数硬件

也就是:

用操作系统建立硬件联盟。

iOS 的逻辑是:

Apple↓iOS↓iPhone

也就是:

用操作系统控制完整产品。

一个希望:

更多公司加入。

一个希望:

所有东西掌握在自己手里。

一个依靠:

规模。

一个依靠:

整合。

这两条道路:

从 2007 年开始激烈碰撞。

直到今天:

仍然没有结束。

而更有意思的是:

无论你今天从口袋里掏出的是:

一台 Android 手机,

还是:

一台 iPhone。

它们背后:

其实都还能看到五十多年前那个老操作系统的影子。

Unix 从来没有统治过智能手机。

但它留下的后代和思想,却最终统治了整个移动世界。

Logo

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

更多推荐