你看看身边的 996 工友们:Docker、K8s、Ubuntu、CentOS(哦不,现在叫 AlmaLinux/Rocky Linux 了),张口闭口全是 Linux。面试八股文背得滚瓜烂熟。但你问他"BSD 是什么?"——可能十个里有八个要么一脸懵,要么来一句"那不是苹果用的吗?"
没错,苹果确实用了。Netflix 也用了。PlayStation 也用了。WhatsApp 也用了。
今天这篇文章,咱们就来扒一扒 Linux 和 BSD 这对"同父异母的兄弟"到底是什么关系,为什么走上了不同的路。
准备好了吗?系好安全带,这趟车有点长。
Linux 与 BSD 的历史渊源
先说爹:UNIX
所有故事的起点,都要从那个"爹"——UNIX——说起。
1969 年,美国贝尔实验室(Bell Labs),两位大佬 Ken Thompson 和 Dennis Ritchie 搞出了 UNIX。对,就是那个 C 语言之父 Dennis Ritchie。一个人顺手发明了 C 语言,另一个人顺手写了个操作系统。这操作,搁现在相当于一个人同时拿了诺贝尔物理学奖和化学奖。
UNIX 的设计哲学极其优雅:一切皆文件,每个程序只做一件事,程序之间通过管道协作。 这虽然听起来像某种极简主义宗教信条,但它确实奠定了整个现代操作系统的基调。
关键转折点来了——因为 AT&T(贝尔实验室的东家)的一些商业操作,UNIX 的源代码在早期被以很低的价格分享给了各大学。其中,加州大学伯克利分校(UC Berkeley)拿到了源码之后,一群天才学生和教授开始在上面魔改。
伯克利那帮疯子
1977 年起,伯克利的 Bill Joy(后来创立了 Sun Microsystems,Java 的爸爸公司)和一帮同事开始在 AT&T UNIX 的基础上做了大量增强工作,搞出了 BSD(Berkeley Software Distribution)。
BSD 加了什么?TCP/IP 协议栈、vi 编辑器、C Shell、虚拟内存、快速文件系统(FFS)…… 基本上你今天用网络的底层能力,有一大半是伯克利那帮人奠定的。
你想想,没有 BSD 实现的 TCP/IP,互联网能不能起来都两说。这帮伯克利的疯子,给全世界的互联网打了地基,然后默默走到了聚光灯之外。
那 Linux 呢?
时间来到 1991 年。
芬兰赫尔辛基大学,一个 21 岁的学生 Linus Torvalds 在 Usenet(comp.os.minix)上发了一个帖子:
"I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu)…"
"just a hobby, won't be big and professional"—— 这大概是计算机历史上最著名的 flag 了。
Linus 写的这个内核,就是 Linux。注意:Linux 只是一个内核(Kernel),不是一个完整的操作系统。完整的操作系统是 Linux 内核 + GNU 工具链 + 各种用户空间程序的组合,所以 Richard Stallman 一直强调应该叫 GNU/Linux。但大家懒得叫全称,就像你管"中华人民共和国"叫"中国"一样。
一个关键的历史岔路口
现在要讲一个很多人不知道,但极其重要的故事。
1992-1994 年,AT&T 旗下的 USL(Unix System Laboratories)把 BSDi(BSD 的商业化公司)告上了法庭,官司闹了将近两年。这场诉讼直接导致 BSD 的发展被冻结——所有人都不确定 BSD 里有多少代码是"合法"的。
而恰恰就是这两年(1992-1994),Linux 趁着 BSD 被官司缠身,拼命发展。大量原本可能选择 BSD 的开发者涌向了 Linux 阵营。等到 1994 年官司和解、BSD 4.4-Lite 发布时,Linux 已经建立了不小的社区规模。
这就好比你开着店好好的,突然被房东告了。你关店打官司两年,等你赢了回来,发现隔壁已经开了一家生意红火的竞品。
如果没有那场官司,今天的 Linux 和 BSD 的市场地位可能完全反过来。 这话不是我说的,是很多老一辈 UNIX 黑客的感慨。
所以总结一下家族关系:
注意:Linux 和 BSD 没有直接的代码继承关系。Linux 是 Linus 从零写的内核,灵感来自 UNIX 的设计理念和 MINIX(Andrew Tanenbaum 写的教学用操作系统),但没有用 BSD 或 AT&T UNIX 的源代码。它们是"设计上的亲戚,代码上的陌生人"。
Linux 与 BSD 的本质差异、系统设计哲学
好了,历史课上完了。现在说点真正让程序员关心的:它们到底有什么不同?
内核 vs 完整操作系统
这是最根本的区别,没有之一。
Linux 只是内核。 这个内核需要搭配 GNU 工具链(gcc, glibc, coreutils)、包管理器、桌面环境等一大堆东西才能变成你用的 Ubuntu/Fedora/Arch。所以才会有几百个"Linux 发行版"——因为任何人都可以拿 Linux 内核,配上自己选的工具,打包成一个新发行版。你甚至可以今天下午就做一个"小明 Linux",虽然大概率没人用。
BSD 是一个完整的操作系统。 内核、用户空间工具、文档、标准库,全部由一个项目统一开发和维护。FreeBSD 就是 FreeBSD,从内核到 ls 命令都是一个团队出品的。
这意味着什么?打个比方:
- Linux 像安卓——Google 做了个系统底层,然后三星、小米、vivo 各自套壳,各有各的 UI、各有各的 bug、各有各的更新节奏。你在小米上学的操作,到了三星可能不灵。
- BSD 像 iOS——苹果从硬件到软件一条龙,高度统一,体验一致,但灵活性就没那么高。
开发模式:大教堂 vs 集市
这对比其实最早是 Eric S. Raymond 在《大教堂与集市》(The Cathedral and the Bazaar)里提出的,虽然原文说的是 GNU Emacs vs Linux,但用来形容 BSD vs Linux 也非常贴切。
BSD 是"大教堂"模式。 有一个核心团队(committers),代码变更需要经过严格的审查。质量优先。每个 BSD 项目都像一座精心设计的教堂——可能建得慢,但结构扎实。你想贡献代码?先在社区里混个脸熟再说。
Linux 是"集市"模式。 全世界成千上万的开发者往一个仓库里提交代码,Linus 和一些核心维护者做 code review。速度快、迭代猛、功能多,但偶尔也会出现一些质量参差不齐的情况。就像赶集——热闹、品种多、偶尔踩到坑。
关于 init 系统:一场没有硝烟的战争
说到设计哲学差异,不得不提 systemd。
2010 年,Lennart Poettering 和 Kay Sievers 搞出了 systemd,一个全新的 Linux init 系统。它要替换掉传统的 SysV init 和 Upstart,接管系统启动、服务管理、日志等一大堆事情。
Linux 社区为此吵翻了天。支持者说它现代、统一、好用。反对者说它违背了 UNIX 哲学——一个程序管太多事,是"feature creep"(功能膨胀)。Debian 社区甚至因为是否采用 systemd 发生了社区分裂,催生了 Devuan(一个不用 systemd 的 Debian 分支)。
而 BSD 这边呢?
BSD 从来没用过 systemd,也大概率永远不会用。 FreeBSD 用的是自己的 rc.d 系统,OpenBSD 用的是自己简洁的 rc 启动脚本。BSD 社区对"一个工具干太多事"这件事天然反感——这就是 UNIX 哲学的原教旨主义。
你可以这么理解:Linux 阵营里有一部分人在搞"现代化改革",另一部分人坚守传统。而 BSD 阵营基本上都是"传统派",只不过他们不是固执,而是真心觉得简单的东西就该保持简单。
内核的技术差异
说几个硬核的:
1. Linux 内核是宏内核(Monolithic Kernel),BSD 也是。
是的,它们都是宏内核,但实现方式和模块化程度不同。Linux 的内核模块(Loadable Kernel Modules, LKM)机制非常成熟,你可以动态加载/卸载驱动而不用重启。BSD 也支持可加载内核模块(FreeBSD 叫 KLD, Kernel Loadable Module),但整体上 BSD 更倾向于把东西编译进内核。
2. 网络栈。
BSD 的网络栈历史上一直被认为更优雅、更高效——毕竟 TCP/IP 就是在 BSD 上首次完整实现的。Netflix 选择 FreeBSD 做 CDN 服务器(Open Connect),部分原因就是看中了 FreeBSD 的网络栈性能。
Linux 这些年在网络方面追赶了很多(特别是 eBPF、XDP 等技术的出现),但 BSD 的网络栈在某些场景下仍然有优势。
3. 存储。
Linux 有 ext4、XFS、Btrfs。FreeBSD 有 ZFS 的原生一流支持。
ZFS 是什么?简单说,它是"存储领域的瑞士军刀"——自带 RAID、快照、压缩、数据校验、去重,把文件系统和卷管理合二为一。最初由 Sun Microsystems 开发,FreeBSD 从很早就支持了 ZFS,而且是作为一等公民。
Linux 也能用 ZFS,但因为 ZFS 的 CDDL 协议和 Linux 的 GPL 协议有兼容性问题,所以 ZFS on Linux 一直处于一种"能用但有法律灰色地带"的尴尬状态。Canonical 在 Ubuntu 上硬推了 ZFS,但法律风险一直悬而未决。
所以如果你对 ZFS 有刚需,FreeBSD 是更"名正言顺"的选择。
FreeBSD 是什么?不同的 BSD 系列的区别?
FreeBSD:BSD 家族的"大师兄"
FreeBSD 诞生于 1993 年,脱胎于 386BSD(Bill Jolitz 把 BSD 移植到 Intel 386 处理器上的项目)。它是目前使用最广泛的 BSD 系统。
FreeBSD 的特点:
性能优先:特别是网络和存储方面,前面说了 Netflix 的案例
Ports 系统:一套从源码编译软件的框架,目前有约 36,000–38,000 个 port(具体以 FreshPorts 或官方 ports 索引为准)
Jail 系统:你以为容器化是 Docker 发明的?FreeBSD 的 Jail 在 2000 年就出现了(FreeBSD 4.0),比 Docker(2013 年)早了 13 年。Jail 提供了操作系统级别的虚拟化,原理和 Linux 后来的容器技术异曲同工
bhyve:FreeBSD 原生的虚拟化方案,类似 Linux 的 KVM
DTrace:动态追踪框架,最早来自 Solaris,FreeBSD 对其有完整支持。Linux 后来搞出了类似功能的 eBPF,但 DTrace 在 BSD 上是"亲儿子"级别的体验
OpenBSD:安全偏执狂的天堂
OpenBSD 是 1995 年由 Theo de Raadt 从 NetBSD 分叉出来的。分叉的原因?简单说就是 Theo 的性格比较……直接,跟 NetBSD 核心团队闹翻了。
但 Theo 是个真正的安全大师。OpenBSD 的核心理念就一个字:安全(好吧两个字)。
OpenBSD 干了什么?
- 默认安全配置:装完系统,默认只开必要的服务,其他全部关闭。不像有些 Linux 发行版装完一看,好家伙,SSH、HTTP、FTP 全开着,就差在门上贴个"欢迎黑客光临"
- 代码审计:OpenBSD 团队对代码进行极其严格的安全审计。OpenBSD 官网长期标榜“默认安装在很长一段时间内只有两个远程漏洞”,这在开源系统中极为罕见。
- 发明了 OpenSSH:对,你天天
ssh 连服务器用的那个 OpenSSH,就是 OpenBSD 团队开发的。全世界几乎所有的服务器都在用,但很多人不知道它来自 OpenBSD - LibreSSL:OpenSSL 出了著名的 Heartbleed 漏洞之后(2014年),OpenBSD 团队分叉了 OpenSSL,搞出了 LibreSSL,大刀阔斧地删减了几十万行"可能有问题"的代码
- W^X(Write XOR Execute)、ASLR、pledge/unveil 等安全机制,很多后来被 Linux 和其他系统借鉴
Theo de Raadt 这个人,在技术圈的口碑是"技术极牛,情商极低"。他骂过的人/公司/项目,列出来大概能出一本书。但不得不承认,OpenBSD 在安全领域的贡献是教科书级别的。
NetBSD:可移植性之王
NetBSD 诞生于 1993 年,跟 FreeBSD 差不多同时。它的口号(Slogan)是:
"Of course it runs NetBSD."
这不是在吹,NetBSD 支持的硬件平台是所有 BSD(甚至所有操作系统)里最多的——从 x86 到 ARM、MIPS、PowerPC、SPARC、VAX、Alpha,甚至各种嵌入式设备和古董硬件。有人在面包机上装过 NetBSD,也有人在烤面包机上装过……好吧最后那个可能是个段子,但你懂。
如果 FreeBSD 是"大师兄",OpenBSD 是"安全专家",那 NetBSD 就是"万能适配器"。
不过说实话,NetBSD 的桌面用户和服务器用户都比 FreeBSD 少得多。它更多是一个学术研究和嵌入式领域的选择。
DragonFlyBSD:HAMMER 出击
DragonFlyBSD 是 2003 年由 Matthew Dillon(曾是 FreeBSD 的核心开发者)从 FreeBSD 4.8 分叉出来的。
分叉的主要原因是对 FreeBSD 5.x 中 SMP(对称多处理)实现方式的分歧。Dillon 想走一条不同的路。
DragonFlyBSD 最出名的是其 HAMMER / HAMMER2 文件系统——一个支持快照、去重、历史数据保留的高级文件系统。你可以把它理解为 DragonFlyBSD 版的 ZFS,但设计理念有所不同。
说实话,DragonFlyBSD 的用户群体相当小众,属于"技术极客的玩具"。但它在文件系统和内核架构上的一些创新思路,对整个 BSD 生态是有贡献的。
一张表看清四大 BSD
Linux 与 BSD 的包管理与软件生态
Linux:百花齐放,也百家争鸣
Linux 的包管理,用一个字形容就是:乱。
不是说质量乱,是说格式和生态乱:
- Debian/Ubuntu 系:
.deb 格式,用 apt(前身是 apt-get) - Red Hat/Fedora/CentOS 系:
.rpm 格式,用 yum(现在是 dnf) - Gentoo:
emerge(从源码编译,编译一个 Firefox 够你吃顿火锅的时间) - 还有跨发行版的 Flatpak、Snap、AppImage……
你在 Ubuntu 上写的部署脚本,到了 CentOS 上得改包名。你在 Arch 上编译通过的软件,到了 Debian Stable 上可能因为库版本太老而报错。这个碎片化问题困扰了 Linux 社区几十年,至今没有完美解决。
用国内老话说:这叫"十八路诸侯,各自为政"。
BSD:Ports + pkg,清清爽爽
FreeBSD 的包管理方案就简单多了:Ports 系统 + pkg。
Ports 系统是什么?
简单说,它是一个巨大的 Makefile 集合。每个 port(港口,意思是"把软件移植过来")就是一个目录,里面有 Makefile 告诉系统怎么下载源码、打哪些补丁、用什么编译选项、怎么安装。
你想从源码编译安装 nginx?
cd /usr/ports/www/nginx
make install clean
搞定。编译过程中会弹出一个文本菜单让你选编译选项,比如要不要支持 HTTPS、要不要带 Lua 模块等。
嫌编译太慢?直接用预编译的二进制包:
pkg install nginx
也搞定。
这种"想折腾就 Ports 从源码编译,嫌麻烦就 pkg 装二进制"的双轨制设计,既照顾了极客的定制化需求,又不为难普通用户。
OpenBSD 也有类似的 Ports 系统,加上 pkg_add 命令安装二进制包。
NetBSD 的独特贡献是 pkgsrc——一个可移植的包管理系统,不仅在 NetBSD 上能用,还能在 Linux、macOS、Solaris 等系统上使用。
软件生态:这才是真正的"痛"
说到这里,不得不面对一个残酷的现实:BSD 的软件生态远不如 Linux。
Linux 的用户基数和商业支持决定了绝大多数开源软件首先适配 Linux。Docker?Linux 优先(Docker 在 FreeBSD 上的支持一直是半残状态)。Kubernetes?Linux only。大量的云服务提供商默认只提供 Linux 镜像。
这就形成了一个恶性循环:
- 用的人少 → 2. 适配 BSD 的软件少 → 3. 更多人选 Linux → 4. 用 BSD 的人更少 → 回到第 1 步
对于普通开发者来说,如果你的工作就是部署一个 Web 应用到云上,Linux 几乎是唯一的选择。这不是 BSD 不好,而是生态壁垒太高了。
但——如果你的场景是网络设备、存储服务器、安全网关,BSD 可能就是更好的选择了。术业有专攻嘛。
License(许可证)的区别
先说 GPL
Linux 内核使用的是 GPL v2(GNU General Public License, Version 2)。
GPL 的核心精神是 Copyleft(著佐权)——你可以自由使用、修改、分发我的代码,但有一个条件:你修改后的代码也必须以 GPL 许可证发布。你拿了我的代码做了个产品,你的产品代码也得开源。
这就像是说:"我的菜谱免费给你用,但你在我基础上改良的菜谱也必须免费公开。"
Richard Stallman(自由软件运动之父,GNU 项目创始人)把这叫做"自由"——确保软件的自由永远传递下去,任何人都不能把开源代码"私有化"。
再说 BSD License
BSD 系统使用的是 BSD 许可证(现在最常见的是 2-Clause BSD License,也叫 Simplified BSD License)。
BSD 许可证极其简短,核心就两条:
- 再分发二进制形式时必须在文档中保留版权声明和许可证文本
就这样。没了。
你可以拿 BSD 代码做任何事:用在商业产品里、闭源、卖钱、改名换姓,都行。唯一要求就是保留一下版权声明。
为什么说 BSD 协议比 GPL "更自由"?
这是一个哲学问题,取决于你怎么定义"自由"。
BSD 阵营的观点:真正的自由意味着"你想怎么用就怎么用,我不管你"。你拿我的代码去商用、闭源?没问题,你的选择。这是对用户自由的最大尊重。
GPL 阵营的观点:自由必须被保护,否则就会被滥用。如果允许任何人把开源代码变成闭源,那最终开源社区会被商业公司"白嫖"殆尽。GPL 的限制恰恰是为了保护自由。
Stallman 有一句很精辟的话来解释两者的区别:
"Free as in free speech, not as in free beer."
(自由如言论自由,而非免费啤酒的"免费"。)
在 Stallman 看来,BSD 许可证给了"免费啤酒"的自由(你想怎么喝就怎么喝),但没有保护"言论自由"的自由(商业公司可以让你闭嘴)。
但 BSD 拥护者可能会反驳:你用法律手段强制所有人也必须开源,这本身就是一种"不自由"。
这场辩论已经持续了三十多年,至今没有标准答案。这种没有标准答案的问题,一般被称为"审美分歧"——就像甜豆腐脑和咸豆腐脑之争一样,也许永远不会有人赢。
macOS:BSD 协议最成功的"商业后代"
说到 BSD 许可证的现实影响,最大的案例就是 macOS。
苹果的 macOS 底层是 Darwin,而 Darwin 大量使用了 FreeBSD 的用户空间代码和网络栈。macOS 的内核 XNU 是 Mach 微内核 + FreeBSD 内核代码的混合体。
为什么苹果能做到这一点?因为 BSD 许可证允许这么做。苹果拿了 FreeBSD 的代码,加上自己的 UI 和一堆专有技术,做成了全世界最赚钱的操作系统之一——然后它不需要把自己的修改回馈给社区。
如果 FreeBSD 用的是 GPL……苹果要么不敢用,要么必须把 macOS 的所有改动开源。你觉得哪种可能性更大?
不仅是苹果。Sony 的 PlayStation 4 和 PlayStation 5 的操作系统都基于 FreeBSD:
Sony PlayStation 4/5 的系统软件(Orbis OS)基于 FreeBSD 早期版本(PS4 约 FreeBSD 9 基础,PS5 约 FreeBSD 11 基础)的深度修改。
你每次打开 PS5 玩《原神》或者《艾尔登法环》的时候,底下跑的就是 FreeBSD。
想想看——因为 BSD 许可证的"更自由",FreeBSD 的代码在商业世界遍地开花。但也正因为如此,这些商业公司从 FreeBSD 拿走了代码,却很少回馈社区。这让 FreeBSD 的开发始终缺钱缺人。
这就是 BSD 许可证的双刃剑:你给了世界自由,但世界不一定给你公平。
Linux 与 BSD 的实际应用场景
说了这么多理论,最终还是要落到一个问题上:我到底什么时候用 Linux,什么时候用 BSD?
Linux 的主场
1. 云计算和容器化
这个没什么好争的。AWS、阿里云、腾讯云、Azure,默认提供的都是 Linux 镜像。Docker 和 Kubernetes 都是 Linux 原生的。整个云原生生态就是围绕 Linux 建的。
你要在这个领域里工作,学 Linux 就对了,没有第二选择。
2. 嵌入式和 IoT
Android(基于 Linux 内核)统治了手机市场。大量的 IoT 设备(路由器、智能家居、监控摄像头)也跑的是各种裁剪版的 Linux。
3. 桌面(如果你执意要折腾的话)
Ubuntu、Fedora、Linux Mint 等发行版在桌面体验上已经相当不错了——至少比十年前好了一百倍。虽然跟 Windows、macOS 比还是差那么点意思,但日常办公、编程完全够用。
如果你用 BSD 做桌面……勇气可嘉,但何必呢?
4. 超算
全球 Top 500 超级计算机,100% 运行 Linux。没有 BSD,没有 Windows,100% Linux。
BSD 的主场
1. 网络设备和防火墙
OpenBSD 的 pf(Packet Filter) 是业界公认最优雅的防火墙框架之一。大量商业防火墙产品的底层都基于 BSD。
FreeBSD 的 IPFW 和从 OpenBSD 移植过来的 pf 也被广泛使用。
如果你的工作是做网络安全设备,BSD 是行业标配。
2. 高性能网络服务
前面说了 Netflix 用 FreeBSD 做 CDN。这不是小规模应用——Netflix 的 Open Connect CDN 大量使用定制 FreeBSD 系统,能处理极高吞吐量(如单机 100Gbps+)。FreeBSD 能扛得住这种级别的流量,本身就说明了其网络栈的强大。
WhatsApp 早期(被 Facebook 收购前)以 FreeBSD + Erlang 实现了惊人扩展性,一个经典案例是仅用约 50 名工程师就支持数百万并发连接。这一架构曾被行业广泛讨论,这个效率在那时让整个行业震惊。
3. 存储系统
需要 ZFS 的生产环境?FreeBSD 是一等公民。经典的 FreeNAS(现在的 TrueNAS CORE)就是基于 FreeBSD 的开源存储操作系统,在 NAS 市场占有一席之地。
4. 安全敏感场景
OpenBSD 在安全领域的声誉无出其右。如果你的项目对安全性有极高要求(金融核心系统、军事系统、VPN 网关等),OpenBSD 值得认真考虑。
一个诚实的建议
作为一个写了这么多字的人,我给你一个非常现实的建议:
如果你是一个普通开发者,做 Web 开发、写微服务、搞云原生——你用 Linux 就够了,别折腾 BSD。 生态决定了一切。你的同事用 Linux,你的文档写的是 Linux,你的 CI/CD 跑的是 Linux,你的容器镜像就是 Linux。在这个语境下,BSD 对你来说只是"了解一下挺好"的东西。
但如果你是做基础设施、网络安全、高性能网络服务、存储系统的——认真看看 BSD。 它可能给你意想不到的惊喜。
如果你是一个想真正理解操作系统原理的学生/极客——去读 BSD 的源码。 BSD 的代码组织、文档质量、注释密度,远比 Linux 适合学习。这不是我个人偏见,很多操作系统教材(比如经典的 McKusick 和 Neville-Neil 写的《The Design and Implementation of the FreeBSD Operating System》)直接以 FreeBSD 源码为教材。
写在最后
写到这里,回头看看这篇文章,我突然有一种感慨。
从 1969 年的 UNIX,到 1977 年的 BSD,到 1991 年的 Linux,再到 2026 年的今天——将近 60 年的时间跨度里,操作系统领域发生了翻天覆地的变化,但那些最根本的设计理念(文件抽象、进程隔离、管道组合、权限模型)几乎没怎么变。
Linux 赢了吗?从市场份额来看,毫无疑问。
BSD 输了吗?它从来没参加过这场比赛。
BSD 系统一直在做自己认为正确的事——精心设计、代码审计、安全优先、保持简洁。它不追求市场占有率,不讨好商业公司,不搞"生态大跃进"。在这个一切都讲 KPI、DAU、增长黑客的年代,这种态度几乎显得有点……格格不入。
但也许正是这种格格不入,才让 BSD 在 2026 年依然活着——而且活得还不错。FreeBSD 14.4 刚发布不久,OpenBSD 的新版本也如期而至,社区虽小但稳定。相比之下,你还记得那些曾经风光无限、号称要颠覆一切的技术项目——现在还有多少还在呢?
技术圈里有一句话我很喜欢:"The best technology doesn't always win." 最好的技术不一定赢。VHS 赢了 Betamax,Windows 赢了 OS/2,Linux 赢了 BSD。
但"赢"和"更好"从来就不是一回事。
所以最后,留一个问题给你想想:
在这个开源吞噬一切、商业公司又反过来吃掉开源的时代——BSD 许可证的"绝对自由"和 GPL 的"强制自由",哪一个才能让开源走得更远?
这个问题没有标准答案。
但值得每一个写代码的人认真想一想。