IT科普知识系列 · 第八期
开源运动
Linux、自由软件,与改变世界协作方式的力量
一、黑客文化的黄金年代
1970年代的MIT人工智能实验室,"黑客"还是指热爱探索计算机极限的天才程序员。软件随硬件附赠,源代码免费共享。代表人物理查德·斯托曼(Richard Stallman)信奉"信息应该自由流通"。
1980年代初,软件开始商业化。施乐送给MIT一台打印机但拒绝提供驱动源代码。斯托曼想修改驱动让打印机更好用,却被告知"这是商业机密"。他愤怒了,决定从零开始写一个完全自由的操作系统——GNU(GNU's Not Unix)。
二、GNU计划:自由的操作系统
1983年,斯托曼发布GNU宣言。到1990年,团队已完成编译器GCC、编辑器Emacs、Shell(Bash)、调试器GDB等几乎所有Unix替代品。但有一个关键部件缺失:内核。GNU自己的内核Hurd开发缓慢,一拖再拖。
一个操作系统没有内核,就像一辆车有方向盘、座椅、轮子,但没有发动机。GNU所有的"零件"都准备好了,就差最后一块拼图——这块拼图来自遥远的芬兰赫尔辛基。
三、一个芬兰大学生的业余项目
1991年,林纳斯·托瓦兹(Linus Torvalds),21岁,赫尔辛基大学二年级学生。他买了一台386兼容机想在上面跑Unix,但商业Unix太贵了。于是他决定:自己写一个。
Hello everybody out there using minix —
I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu)...
— Linus Torvalds, 1991年8月25日
"just a hobby, won't be big and professional"——这大概是科技史上最著名的错误预言。1991年9月17日,Linux 0.01发布,代码量10239行。林纳斯把它放在GPL许可证下——任何人都可以免费获取、修改、分发。
林纳斯的管理哲学很简单:"早发布,勤发布,众人的眼睛发现bug"。如果有足够多的眼球,所有的bug都是浅显的。
四、开源 vs 自由:一场哲学之争
1998年,开源领袖们把"自由软件"重新包装为"开源软件"(Open Source),让企业不再害怕斯托曼的意识形态色彩。开源许可证主要有四类:
GPL(传染性):衍生作品必须开源。代表:Linux内核
MIT(最宽松):随意使用,保留版权声明即可。代表:React、Vue.js
Apache 2.0:附带专利授权,大企业最爱。代表:Android、Kubernetes
BSD:类似MIT,最早的开源许可证之一。代表:FreeBSD、Nginx
五、Linux统治世界
你可能以为Linux只在程序员圈子里流行。但事实是:Linux已经悄悄统治了世界。
你手中的Android手机、你访问的网站服务器、你看的Netflix、你家的路由器、特斯拉的中控屏、国际空间站的笔记本电脑——全都在跑Linux。到2024年,Linux内核有超过1500万行代码,由来自1500+家公司的20000+名开发者贡献。
六、Git:林纳斯的第二个杰作
2005年,Linux内核社区用的版本控制系统BitKeeper闹翻了。林纳斯用了两周,写了一个新的——Git。
2008年,三个程序员基于Git创建了GitHub——全球开发者的社交协作平台。到2024年,GitHub有超过1亿开发者、4.2亿个代码仓库。微软在2018年以75亿美元收购了GitHub。
七、开源如何改变了世界
2000年,微软CEO鲍尔默曾说"Linux是癌症"。二十年后的2020年,微软成了GitHub上最大的开源贡献者,Windows也内置了Linux内核(WSL)。2024年全球开源软件市场超过500亿美元。
你每天浏览的网页用Chrome(开源),看的视频用FFmpeg(开源),访问的网站跑在Apache/Nginx(开源)上,数据存在MySQL(开源)里,编程语言可能是Python(开源)——整个现代互联网基础设施,几乎全部建立在开源软件之上。
从一个愤怒的程序员辞职写GNU,到一个芬兰大学生的"业余项目"成为全球基础设施,再到Git/GitHub重新定义人类协作方式——开源运动证明了:当信息自由流通时,人类的创造力是无穷的。这不是一个关于软件的故事,这是一个关于人类如何协作的故事。