凌晨两点十七分。南京珠江路。
朋友电话打过来的时候,声音是抖的。他那台跑着小电商站的服务器,后台刷出一屏红字,订单全卡住。折腾到天快亮才定位到——一个解析时间的开源软件包。写它的那个人,六年前就把仓库归档了。
荒诞吗?你花钱买了云主机,花钱买了带宽,花钱请人做过安全加固。结果被一段没人收钱的代码掐住了脖子。
这就是开源软件最真实的样子。它不在发布会的大屏幕上,也不藏在什么高深的白皮书里,它就在你手机里、地铁闸机里、银行对账系统里,安安静静地跑着。

“免费”这两个字,坑了太多人
先把一件事掰开说清楚:开源软件不等于免费软件。
这俩词在中文里被混用得太久了。免费是价格问题,开源是权利问题。代码摆在那儿,你可以看、可以改、可以再发出去——前提是你得守它的规矩。规矩写在许可证里。
MIT 那种,宽松得像不管你。GPL 就拧巴多了:你改了它,再发布,得把改完的源码也交出来。不少公司就死在这条上。
我见过一个挺典型的场面。某家做硬件的团队,把一段 GPL 的代码抄进了自家固件,闭源卖了好几年,后来被社区里的人扒出来。不是有人举报,是有人顺手搜了一下字符串。
所以许可证这东西,不是走流程时盖的那个章。它是一份法律文件,只是长得像一段注释。

维护者的深夜,账单一分没少

再说个更扎心的。
我们每天用的那些开源软件,背后往往就是极少数人。有人在赫尔辛基写了个压缩库,有人在成都维护一个日志框架,有人在巴西,白天上班,晚上回邮件。
他们拿到什么?一个捐赠按钮,偶尔几十美元的赞助。还有无穷无尽的 issue:能不能加个功能?为什么还不修?我的生产环境炸了你知道吗。
更难受的是——那些人连项目都不算真拥有。用它的公司市值多少多少,维护者自己可能房租都要算着交。
这不是情怀问题,是结构问题。
开源软件这套东西,最早是从学术圈和黑客文化里长出来的。分享源代码,让别人别重复造轮子。那个年代的假设是:参与者自己也是用户,修好了自己也用得上。这假设在很长一段时间里成立。
可等到整个互联网都架在这些代码上,参与者和使用者就彻底分家了。用的人不懂代码,写的人拿不到钱。
有个开源项目的维护者写过一篇很短的帖子,大意是:我收到的邮件里,九成是要求,一成是感谢,零成是钱。当时下面一片沉默。你翻评论区,能看到好多人现学现卖地跑去捐款,过了几个月又没声了。热情这东西,撑不住一个长期项目。
被问到最多的几个问题
开源软件安全吗?
看项目,别一刀切。人多看,漏洞确实容易被发现。但反过来——人人都能看,也意味着人人都能塞。几年前那个 XZ Utils 后门事件,就是有人花了好几年,慢慢混成维护者,然后在构建脚本里动手脚。这种攻击很难防,只能靠流程。
那公司是不是不该用它?
反了。不用才奇怪。从零写一个加密库,你凭什么觉得比全球看过这个库的人写得更好?问题不在用不用,在知不知道自己在用。
这就牵出一个东西:软件物料清单。听着术语味很重,其实就是一张进货单——我的系统里到底装了哪些开源软件,什么版本,谁在管。
大部分团队是没有这张单子的。出事那天才开始翻壳,一层一层剥,剥到凌晨。
能靠开源赚钱吗?
能。但路径通常不是卖代码,代码是送出去的。赚的是周边:托管服务、企业版、技术支持、云上一键部署。代价是你得接受有人拿你的东西自己搭一套,还不给你钱。
受不了这个,就别选这条路。
把代码交出去之后,事情才刚开始

这几年有个变化挺明显。
以前大家把代码往仓库一丢,就当完成任务了。现在越来越多项目往基金会里走。为什么?因为个人扛不住。
一个人维护的项目,他生病了怎么办?他不想干了怎么办?他被公司挖走了怎么办?
基金会解决的就是这个:商标、法务、资金、继任者。听着很无聊,像居委会。可到了那天,救命的正是这些无聊的东西。
另一个变化是生成式人工智能。它现在大量吃开源代码来训练,然后吐出新的代码。这里面的版权和许可证怎么算,说实话全世界都还在吵,没结论。有些项目已经把人工智能生成的部分标出来了,有些干脆在许可证里加限制条款。
我的感觉是,这场争论会拖很久。因为它压根不是技术问题。
所以,普通人该关心吗

如果你的工作跟技术沾一点边,该。
不需要你去提交代码。就三件小事,做了就有用:
用之前,把许可证看一眼,至少知道它叫什么名字。
把依赖列出来,别等出事再猜。
看到自己正在用的项目,如果它救过你的命——哪怕是加班的时候救的——去给它点个星,提一个能复现的 bug,或者直接捐一杯咖啡的钱。
听起来很小。但开源软件这东西,本来就是靠一堆小事堆起来的。
那天早上,我朋友的问题最后解决了。他给那个归档的仓库提了个 issue,又找到一个还在维护的分支替换上去。花了两天。
他说了一句话我记到现在:原来我一直在用别人的东西,却从来没想过它是谁写的。
嗯。这就是我想说的全部。
作者|科技
排版|科技
审核|满满
大讲堂