操作系统战争(下)
信息
Command Line Heroes 讲述了开发者、程序员、黑客、极客和开源叛客如何革命性地改变技术领域的史诗真实故事。 于此处发布的《命令行英雄》为非官方授权的演绎作品,基于 LLM 应用程序转译,再经本人对少量内容进行增删查改得到。 仅用于个人研究学习,不得用于商业用途,禁止转载。
- 原始播客:Command Line Heroes | COS-SIG · 代码英雄系列
- 本站导航:《命令行英雄》拓展版 | 柴语言
如果有任何错误或不准确的地方,请谅解并指出,我会尽快更正。
部分引用的资源(如 YouTube 视频、Wikipedia 等)需要你的网络环境能正常访问类似的网站。
20 世纪 90 年代初,微软凭借 Windows 操作系统几乎垄断了个人电脑市场,市场份额高达 90%. 然而,随着互联网的兴起以及企业对服务器的需求猛增,操作系统战争的主战场从个人用户转移到了企业级市场。 正是在这个背景下,一个名叫 Linux 的开源操作系统内核悄然崛起,最终成为撼动微软霸主地位的重要力量。
开源系统?这简直不敢相信
Linux 内核诞生于 1991 年,最初只有 1 万行代码。 但它正在病毒式地蔓延,最终让全世界的极客和黑客都爱上了它。 十年后,这个数字增长到了 300 万行。 如今,Linux 内核的代码量已经超过 2000 万行。 在早期,发现 Linux 就像加入了一个秘密社团,程序员们会像分享地下音乐一样互相传播不同的 Linux 发行版。
对许多开发者来说,接触 Linux 是一次改变人生的体验。 开发者 Tristram Oaten 回忆道,他在 16 岁时第一次接触 Linux —— 在前往红海的潜水度假之旅中,他因生病被困在酒店房间里, 随身携带的只是一台全新安装了 Slackware Linux 的笔记本电脑, 于是只能花一周时间研究这个陌生的系统。 一开始他甚至搞不清楚 .
(表示当前目录) 和 ..
(表示上一级目录)的区别。 通过阅读手册和摸索终端,他逐渐开始理解 Linux 命令行的魅力。 虽然错过了金字塔、尼罗河或任何埃及的遗址,但他却解锁了现代世界的一大奇迹 —— Linux.
最让他感到惊讶的是,这份 Linux 的源代码居然是公开的,“That's amazing!”
命令行界面(CLI)是计算机早期就已存在的产物(远在 TUI 和 GUI 之前),并且一直受到开发者的青睐。 早期的互联网客户端-服务器(C/S)架构比较少见,更多是基于点对点(P2P)通信的模型,CLI 则是面向这样的场景设计的。 当时 IBM 虽然已经搞出了 哑终端 ,但设计较为简单,只具备基本的管理用户的界面,而没有足够的权限来进行更复杂的操作。 尽管后来图形用户界面(GUI)在普通用户中越来越流行,但工程师和开发者总是倾向于使用命令行界面, 因为它提供了更多的灵活性和控制权。 在 Linux 出现之前,这股力量就体现在 Emacs 和 GNU 等早期项目中, 它们代表了对命令行访问的早期需求和对自由软件的追求。
信息
目前人们理解的终端(terminal)是指运行 shell
的包装程序。 而几十年前,这是一种物理设备,仅由显示器和键盘组成。 比如 IBM 的 3270 系列终端,通过串行连接到主机计算机,用于输入和输出数据。 随着 Unix/Linux 系统添加了更好的多处理和窗口系统,终端这个概念被抽象到软件中。
如今,Shell / Terminal / Command Line / Console ... 在不同上下文中有不同的含义。
而 Linux 的出现,将这种对灵活性和控制权的追求发挥到了极致。
sudo rm rf - /*
sudo sysctl -w kernel.hz=1000
sudo sysctl -w fs.inotify.max_user_watches=524288
sudo fdisk /dev/sda
sudo vim /etc/default/grub && sudo update-grub
Linux 的崛起
随着互联网的普及,每家公司都需要建立网站、管理服务器和数据库。 Linux 凭借其开放性和低成本,在服务器市场上占据了优势。 到 1998 年,Linux 的贡献者数量已经远远超过了微软 Windows 的开发人员。 不过 Linux 从未真正关注过微软的桌面级客户,也许这就是一开始它被微软忽略原因。 当 Windows NT 于 1993 年问世,它开始与其他服务器操作系统竞争。 但许多开发人员都在想,“当我可以选择用 Apache 在基于 Linux 的系统进行低成本部署时, 为什么还要傻乎乎地去购买 IBM 的 AIX 或微软的 Windows NT 呢?” 逐渐地,Linux 的代码几乎渗透到了互联网领域所有目光所及之处,且有了一定的商业应用。
面对 Linux 的崛起,微软最初采取了否定和诋毁的策略, 散布对开源软件的恐惧、不确定性和怀疑(FUD, 即 Fear, Uncertainty, Doubt), 这种舆论攻击持续了很长一段时间,而微软也不是唯一对 Linux 的发展感到紧张的企业。 整个行业都在对这类未知的新兴事物感到恐慌并试图抵制。 如 SCO Group 声称 Linux 包含了其拥有版权的 Unix 代码, 并因此对 IBM 提起了诉讼,声称 IBM 将 UNIX 代码非法地贡献给了 Linux. 随后,SCO 扩大了诉讼范围,包括对其他公司和 Linux 用户的诉讼。 这场法律战争持续了多年,最终在 2010 年代初期以 SCO 的失败告终。 最终 SCO Group 因为财务问题申请了破产保护。 随着 IBM 在 2000 年宣布将在 Linux 上投资 10 亿美元,形势早已发生了变化。
IBM 认为,Linux 在服务器和大型机领域的优势将日益明显。 一位银行经理的话道出了其中的奥秘:“假设我有 3000 台服务器。 如果使用微软的 Windows NT,我需要 2999 名系统管理员。但用 Linux,我只需要 4 个人。” 这种巨大的成本优势让许多企业开始青睐 Linux. 显然,这是一个正确的判断,如今 IBM 已经不再涉及 PC 业务(于 2005 年将其卖给了联想), 而是专注于云计算和人工智能等领域,这些领域正是 Linux 的强项。
Linux 的成功并不止于服务器领域,它还在移动设备、嵌入式系统、超级计算机等领域取得了成功。 例如在智能手机时代,2007 年 1 月 9 日,苹果公司的 iPhone 携 iOS 系统问世,乔布斯再一次颠覆了世界。 微软的 Windows Phone 在 2010 年 10 月 21 日姗姗来迟, 此时基于 Linux 的 Android 系统早已成功抢占了市场,微软失去了进入移动操作系统市场的机会。 而作为搜索引擎公司问世的谷歌(Goolge),则因为在 2005 年收购 Android 公司, 并在 2007 年开源其代码(即 AOSP),进而获得了巨大的成功。 Android 以近乎零成本获得了一个非常复杂的操作系统基础,这让微软在新一代设备上失去了立足之地。 面对这种局面,微软经历了一段痛苦而迷茫的转型期。 公司内部对开源软件存在误解,担心它会污染知识产权或破坏商业模式。 但随着时间推移,微软意识到必须适应这个新世界。
兼容并包的未来
2013 年,微软的云计算服务 Azure 上线了。 令人惊讶的是,从第一天开始,Azure 就提供了 Linux 虚拟机。 虽然这一决定可能是迫于强烈的求生欲,当时的微软如果访问任何一家企业客户, 他们都会发现这家公司早已在 15 年前就决定使用 Linux. 在 2014 年秋季,新任 CEO 纳德拉公开表示 “微软 🩷 Linux”,并承诺将为 Linux 发行版提供一流的支持。 2016 年,Windows Subsystem for Linux (WSL) 1.0 问世,这是 Windows 设计的一个子系统, 让 Windows 用户可以在 Windows 10 上原生运行 Linux 二进制可执行文件(ELF 格式)。 1.0 版本的 WSL 通过翻译系统调用来实现,而到了 WSL 2.0, 微软直接在 Windows 上运行了一个真正的 Linux 内核。 如今已有开发者表示 WSL 是 “最好的 Linux 发行版”。
这一转变反映了企业 IT 环境的现实:几乎所有公司都在使用混合的技术栈,包括专有软件和开源软件。 这就是这个时代的真相,不论之前抛出过多么荒谬的言论,微软都不得不接受这个事实并做出改变。 即使是像微软这样大规模的公司,也无法与包括 Linux 在内的各类开源软件及其开发者们抗衡。 曾经将 Linux 比喻为 “癌症”,对之深恶痛绝的 CEO 鲍尔默滚蛋了,微软开始拥抱开源。 如今,微软已经成为 Linux 基金会的白金会员,也是 GitHub 上最大的开源贡献者。 他们甚至将 .NET 框架开源,且意外地发现超过 50% 的贡献来自公司外部。 开源软件的成功证明,合作共赢比单打独斗更有优势。 每个公司和个人都出于自私的动机为 Linux 做贡献,但正是这种自私让所有人受益。
你可能要问,苹果呢?苹果依旧延续着软硬件一体化的策略,iOS 和 macOS 仍然是封闭的系统。 乔布斯在 1997 年曾经邀请过莱纳斯加入苹果,但被拒绝了。 对于苹果正在准备中的 Mac OS X 内核,莱纳斯称其 “一堆废物。它包含了所有你能做到的设计错误,并且甚至打算只弥补一小部分。” 但近年来苹果也在逐渐 拥抱开源, 例如 LLVM 项目、Swift 编程语言 等。 LLVM 最初是为了提高编译器的性能和灵活性而设计的, 随着项目的发展,LLVM 成为了一个广泛使用的编译器基础设施,支持多种编程语言。 苹果公司在 2005 年开始对 LLVM 项目感兴趣,并且雇佣了 Chris Lattner 以及其他 LLVM 开发者来工作于苹果, 包括从零开始写 C、C++、Objective-C 语言的前端 Clang,用来完全替代掉 GNU/GCC. 在苹果的支持下,LLVM 得到了快速的发展,并且被集成到了苹果的开发工具链中,包括 XCode.
结语
随着云计算、人工智能等新技术的兴起,科技巨头们的竞争仍在继续。 在这个新时代,规模优势变得更加重要,新进入者可能会越来越难以追赶领先者。 然而,Linux 的故事告诉我们,即使是最强大的公司,也无法阻挡开放和协作的力量。 开源已经 “吞噬了整个技术世界”。从 Facebook 到 Google 搜索,再到 Android 手机,Linux 无处不在。
最重要的是,只要有敲下命令行的机会,任何人都有可能创造出下一个改变世界的程序。 无论是为了纯粹的创造乐趣而学习编程的新手,还是决定自己动手解决问题的普通人, 都有可能成为下一个伟大的程序员。这种可能性,正是开源世界最迷人之处。
更多阅读
注:Tanenbaum 的书阅读起来有些难度,建议多本书(原版、译版)互相参考。
- OPEN SOURCES 革命之声
- UNIX 编程艺术
- UNIX 传奇
- 只是为了好玩:Linux 之父林纳斯自传
- 操作系统导论 / 操作系统概念 · OSTEP
- 操作系统:精髓与设计原理
- 现代操作系统 - Tanenbaum
有趣的东西: