从批处理到云原生:操作系统六十年演进史

举报
solitern 发表于 2026/08/17 10:08:34 2026/08/17
【摘要】 前言操作系统是计算机科学的皇冠明珠之一。从最初几行汇编代码的监控程序,到如今驱动数十亿设备的复杂内核,操作系统的演进史几乎就是现代计算本身的演进史。本文将带你穿越六十余年时光,梳理操作系统从无到有、从简到繁的关键里程碑。 一、史前时代:没有操作系统的日子(1940s – 1950s) 1.1 真空管与接线板早期的计算机(如 ENIAC、EDVAC)根本没有操作系统的概念。程序员直接用机器语...

前言

操作系统是计算机科学的皇冠明珠之一。从最初几行汇编代码的监控程序,到如今驱动数十亿设备的复杂内核,操作系统的演进史几乎就是现代计算本身的演进史。本文将带你穿越六十余年时光,梳理操作系统从无到有、从简到繁的关键里程碑。


一、史前时代:没有操作系统的日子(1940s – 1950s)

1.1 真空管与接线板

早期的计算机(如 ENIAC、EDVAC)根本没有操作系统的概念。程序员直接用机器语言编写程序,通过物理接线板或打孔卡片输入。每次运行一个程序,都需要人工切换线路、装载卡片,机器大部分时间都在等待人工操作。

特征

  • 串行处理,一次只运行一个程序
  • 人工操作,机器利用率极低(常低于 20%)
  • 无任何资源管理抽象

1.2 批处理系统的萌芽

1956 年,IBM 704 上出现了第一个真正意义上的"系统软件"——GM-NAA I/O(由通用汽车研发部与北美航空联合开发)。它是最早的批处理监控程序,能自动将一组作业依次加载执行,减少了人工干预。

💡 这是操作系统的"第零步":还没有多道程序、没有分时,但已经有了"系统调度"的雏形。


二、大型机时代:多道程序与分时系统(1960s)

2.1 OS/360 —— 工程管理的里程碑

1964 年,IBM 发布 System/360 系列大型机,配套操作系统 OS/360。这是历史上最著名的软件工程项目之一,由 Frederick Brooks 主导。项目耗时 5000 人年,暴露了大量软件工程问题,Brooks 后来写出经典著作《人月神话》。

贡献

  • 首次大规模引入多道程序设计(Multiprogramming)
  • 通道(I/O 处理器)与 CPU 并行工作
  • 任务调度、内存保护、中断处理等核心概念成型

2.2 CTSS 与 Multics —— 分时共享的先驱

  • CTSS(Compatible Time-Sharing System,1961):MIT 开发的第一个分时操作系统,让多个用户通过终端同时使用一台计算机。
  • Multics(1964–):MIT、贝尔实验室和 GE 联合开发的分时系统,引入了段页式内存管理、层次化文件系统、动态链接等革命性概念。虽然 Multics 商业上未获成功,但它的思想直接启发了 UNIX。

三、UNIX 的诞生与黄金时代(1970s)

3.1 UNIX —— 简单即美

1970 年代初,贝尔实验室的 Ken ThompsonDennis Ritchie 因 Multics 过于复杂而退出项目,转而在 PDP-7 上开发了一个精简版系统——UNIX

核心设计哲学

  • 每个程序只做好一件事(Do One Thing Well)
  • 程序之间通过管道(pipe)组合协作
  • 一切皆文件(文件、设备、网络套接字统一抽象)
  • 用 C 语言重写内核,实现可移植性

UNIX 的影响至今无可估量:Linux、macOS、BSD、Android 的底层全部源自 UNIX 血统。

3.2 BSD 分支

加州大学伯克利分校的 BSD(Berkeley Software Distribution)在 UNIX 基础上加入了虚拟内存、TCP/IP 网络栈、vi 编辑器等关键特性。BSD 的网络代码成为早期互联网的基石。

3.3 小型机与 RTOS

同期,VMS(DEC VAX 上的系统)和各类实时操作系统(如 VxWorks 的前身)也在发展,服务于工业控制和嵌入式场景。


四、个人计算机革命(1980s)

4.1 CP/M —— PC 的先驱

Intel 8080 时代的微机多使用 CP/M(Control Program for Microprocessors),由 Gary Kildall 开发。它结构简单,是早期 8 位个人电脑的事实标准。

4.2 MS-DOS —— IBM PC 的搭档

1981 年,IBM PC 上市。IBM 本想使用 CP/M,但谈判未果,最终选择了微软购买的 86-DOS(QDOS),改名为 MS-DOS。MS-DOS 是单用户、单任务、命令行界面系统,凭借 IBM PC 的销量迅速占领市场。

4.3 图形用户界面的兴起

  • Mac OS(1984):苹果 Macintosh 带来大众化 GUI——窗口、图标、鼠标、下拉菜单。其灵感来自施乐 PARC 的 Alto 系统。
  • Windows 1.0(1985):微软推出图形外壳,初期只是 MS-DOS 上的一个程序,但开启了 Windows 漫长的演进之路。
  • AmigaOS、Atari TOS:同期也有创新性 GUI 系统,但商业上未成主流。

4.4 学术界的创新

  • Mach 微内核(1985,CMU):提出微内核架构,将内核服务移至用户态,影响后续的 macOS XNU、GNU Hurd 等。
  • Amoeba、Plan 9:分布式操作系统探索,Plan 9 由 UNIX 团队开发,将"一切皆文件"推向网络透明化。

五、开源浪潮与服务器霸权(1990s)

5.1 Linux —— 自由的内核

1991 年,芬兰大学生 Linus Torvalds 出于个人兴趣在 386 PC 上写了内核,并在 Usenet 上发布。结合 GNU 项目提供的用户态工具(GCC、bash、coreutils),Linux 成为一个完整的自由操作系统。

关键推动力

  • GPL 许可证保证自由传播与修改
  • 互联网兴起使全球协作成为可能
  • 适合廉价 x86 服务器,性价比极高

5.2 Windows NT —— 微软的企业级野心

1993 年,微软发布 Windows NT 3.1,由 Dave Cutler(前 VMS 架构师)主导。NT 是全新的 32 位抢占式多任务内核,支持多处理器、硬件抽象层(HAL)、NTFS 文件系统,奠定了现代 Windows 的基础。

5.3 BSD 复兴

386BSD 和随后的 FreeBSD、NetBSD、OpenBSD 让 BSD 血统在 x86 上重生。FreeBSD 以高性能网络栈著称,早期 Yahoo、Hotmail 都运行在 FreeBSD 上。

5.4 Solaris 与商业 UNIX

Sun 的 Solaris 引入了 ZFS 文件系统、DTrace 动态追踪、 Zones 容器等企业级特性,在大型服务器市场占据重要地位。


六、移动时代与多核并发(2000s)

6.1 智能手机操作系统

  • Symbian:早期智能手机霸主,但架构老旧,最终衰落。
  • iOS(2007):苹果基于 macOS 的 Darwin/XNU 内核打造 iOS,引入触控优先的交互范式。
  • Android(2008):Google 基于 Linux 内核开发,上层使用 ART 虚拟机运行 Java/Kotlin 应用。Android 迅速成为全球占有率最高的移动 OS。

6.2 多核与并发挑战

2005 年前后,CPU 单核频率触及功耗墙,业界转向多核。操作系统需要改进:

  • 细粒度内核锁与可扩展调度器(如 Linux CFS)
  • 用户态并发原语(futex、RCU)
  • 虚拟化技术普及(Intel VT-x、AMD-V)

6.3 虚拟化与云计算

  • Xen(2003):剑桥大学开发的半虚拟化 hypervisor。
  • KVM(2007):合入 Linux 主线的全虚拟化方案。
  • VMware ESX:商业虚拟化先驱。

虚拟化让"一台物理机运行多个独立操作系统"成为常态,直接催生了 AWS EC2 等云服务。


七、云原生与内核创新(2010s – 至今)

7.1 容器与云原生

  • Docker(2013):基于 Linux namespaces + cgroups 的容器技术,带来应用打包与部署革命。
  • Kubernetes(2014):Google 开源的容器编排系统,成为云原生事实标准。
  • containerd、runc、OCI:容器运行时标准化。

容器并非新概念(chroot 1979 年就有),但 Docker 让它易用化,并推动了微服务架构的流行。

7.2 内核创新

技术 说明
eBPF 可在内核安全运行沙箱程序,用于观测、网络、安全,被称为"Linux 超能力"
io_uring 异步 I/O 接口,大幅提升高并发 I/O 性能
cgroup v2 统一层级结构,更清晰的资源控制
Landlock / seccomp 非特权用户可自定义的安全沙箱

7.3 新兴操作系统

  • Fuchsia:Google 用 Zircon 微内核打造的新系统,面向物联网与新型设备。
  • Redox OS:用 Rust 编写的类 UNIX 微内核系统,强调内存安全。
  • HarmonyOS:华为面向全场景的分布式操作系统。
  • seL4:形式化验证的微内核,数学上证明内核正确性,用于高安全领域。

7.4 异构计算

GPU、NPU、FPGA 等加速器成为计算主力。操作系统需要管理异构内存(统一虚拟内存 HMM)、加速器调度(如 NVIDIA 的 MPS)、以及跨设备通信(NVLink、CXL)。


八、演进脉络总览

1940s 打孔卡片 / 人工操作

1950s 批处理监控程序 (GM-NAA I/O)

1960s 多道程序 / 分时系统 (OS/360, CTSS, Multics)

1970s UNIX 诞生 → BSD 分支 → C 语言可移植内核

1980s PC 时代 (CP/M, MS-DOS, Mac OS, Windows)

1990s 开源浪潮 (Linux, FreeBSD) + 企业级 (Windows NT, Solaris)

2000s 移动革命 (iOS, Android) + 虚拟化 (Xen, KVM, VMware)

2010s 容器化 (Docker, Kubernetes) + 内核创新 (eBPF, io_uring)

2020s 云原生 / Rust 内核 / 异构计算 / 形式化验证


九、几条贯穿历史的规律

回顾六十年发展,可以总结出几条反复出现的规律:

  1. 简单抽象胜过复杂全能:UNIX 击败 Multics,容器轻于虚拟机,历史反复证明"少即是多"。
  2. 硬件推动软件:多核催生并发内核,SSD 催生新文件系统,加速器催生异构 OS。
  3. 开源成为主流:从 Linux 起步,到今天 Android、Kubernetes 统治各自领域,开源模式已被证明极具生命力。
  4. 安全日益中心化:从早期几乎没有隔离,到 seccomp、Landlock、seL4,安全从"事后补丁"变为"设计起点"。
  5. 分层与虚拟化不断深化:从虚拟内存到虚拟机再到容器,"用抽象隔离复杂度"是不变主题。

十、结语

操作系统的发展并非一条直线,而是无数技术路线竞争、融合、淘汰的结果。从打孔卡片到 eBPF,从单机批处理到全球分布式云原生,每一次跃迁背后都是硬件能力、应用需求与人类工程智慧的共同推动。

📖 延伸阅读推荐

  • 《人月神话》—— Frederick Brooks
  • 《UNIX 传奇》—— Brian Kernighan
  • 《现代操作系统》—— Andrew Tanenbaum
  • 《操作系统导论》(OSTEP)—— Remzi & Andrea Arpaci-Dusseau
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。