凌晨两点挂掉的那台服务器,让我重新认识了开源软件

凌晨两点十七分。南京珠江路。

朋友电话打过来的时候,声音是抖的。他那台跑着小电商站的服务器,后台刷出一屏红字,订单全卡住。折腾到天快亮才定位到——一个解析时间的开源软件包。写它的那个人,六年前就把仓库归档了。

荒诞吗?你花钱买了云主机,花钱买了带宽,花钱请人做过安全加固。结果被一段没人收钱的代码掐住了脖子。

这就是开源软件最真实的样子。它不在发布会的大屏幕上,也不藏在什么高深的白皮书里,它就在你手机里、地铁闸机里、银行对账系统里,安安静静地跑着。

开源软件GitHub仓库Issue讨论区页面截图
开源软件GitHub仓库Issue讨论区页面截图

“免费”这两个字,坑了太多人

先把一件事掰开说清楚:开源软件不等于免费软件。

这俩词在中文里被混用得太久了。免费是价格问题,开源是权利问题。代码摆在那儿,你可以看、可以改、可以再发出去——前提是你得守它的规矩。规矩写在许可证里。

MIT 那种,宽松得像不管你。GPL 就拧巴多了:你改了它,再发布,得把改完的源码也交出来。不少公司就死在这条上。

我见过一个挺典型的场面。某家做硬件的团队,把一段 GPL 的代码抄进了自家固件,闭源卖了好几年,后来被社区里的人扒出来。不是有人举报,是有人顺手搜了一下字符串。

所以许可证这东西,不是走流程时盖的那个章。它是一份法律文件,只是长得像一段注释。

开源软件许可证GPL与MIT条款文本对比
开源软件许可证GPL与MIT条款文本对比

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

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

再说个更扎心的。

我们每天用的那些开源软件,背后往往就是极少数人。有人在赫尔辛基写了个压缩库,有人在成都维护一个日志框架,有人在巴西,白天上班,晚上回邮件。

他们拿到什么?一个捐赠按钮,偶尔几十美元的赞助。还有无穷无尽的 issue:能不能加个功能?为什么还不修?我的生产环境炸了你知道吗。

更难受的是——那些人连项目都不算真拥有。用它的公司市值多少多少,维护者自己可能房租都要算着交。

这不是情怀问题,是结构问题。

开源软件这套东西,最早是从学术圈和黑客文化里长出来的。分享源代码,让别人别重复造轮子。那个年代的假设是:参与者自己也是用户,修好了自己也用得上。这假设在很长一段时间里成立。

可等到整个互联网都架在这些代码上,参与者和使用者就彻底分家了。用的人不懂代码,写的人拿不到钱。

有个开源项目的维护者写过一篇很短的帖子,大意是:我收到的邮件里,九成是要求,一成是感谢,零成是钱。当时下面一片沉默。你翻评论区,能看到好多人现学现卖地跑去捐款,过了几个月又没声了。热情这东西,撑不住一个长期项目。

被问到最多的几个问题

开源软件安全吗?

看项目,别一刀切。人多看,漏洞确实容易被发现。但反过来——人人都能看,也意味着人人都能塞。几年前那个 XZ Utils 后门事件,就是有人花了好几年,慢慢混成维护者,然后在构建脚本里动手脚。这种攻击很难防,只能靠流程。

那公司是不是不该用它?

反了。不用才奇怪。从零写一个加密库,你凭什么觉得比全球看过这个库的人写得更好?问题不在用不用,在知不知道自己在用。

这就牵出一个东西:软件物料清单。听着术语味很重,其实就是一张进货单——我的系统里到底装了哪些开源软件,什么版本,谁在管。

大部分团队是没有这张单子的。出事那天才开始翻壳,一层一层剥,剥到凌晨。

能靠开源赚钱吗?

能。但路径通常不是卖代码,代码是送出去的。赚的是周边:托管服务、企业版、技术支持、云上一键部署。代价是你得接受有人拿你的东西自己搭一套,还不给你钱。

受不了这个,就别选这条路。

把代码交出去之后,事情才刚开始

把代码交出去之后,事情才刚开始
把代码交出去之后,事情才刚开始

这几年有个变化挺明显。

以前大家把代码往仓库一丢,就当完成任务了。现在越来越多项目往基金会里走。为什么?因为个人扛不住。

一个人维护的项目,他生病了怎么办?他不想干了怎么办?他被公司挖走了怎么办?

基金会解决的就是这个:商标、法务、资金、继任者。听着很无聊,像居委会。可到了那天,救命的正是这些无聊的东西。

另一个变化是生成式人工智能。它现在大量吃开源代码来训练,然后吐出新的代码。这里面的版权和许可证怎么算,说实话全世界都还在吵,没结论。有些项目已经把人工智能生成的部分标出来了,有些干脆在许可证里加限制条款。

我的感觉是,这场争论会拖很久。因为它压根不是技术问题。

所以,普通人该关心吗

所以,普通人该关心吗
所以,普通人该关心吗

如果你的工作跟技术沾一点边,该。

不需要你去提交代码。就三件小事,做了就有用:

用之前,把许可证看一眼,至少知道它叫什么名字。

把依赖列出来,别等出事再猜。

看到自己正在用的项目,如果它救过你的命——哪怕是加班的时候救的——去给它点个星,提一个能复现的 bug,或者直接捐一杯咖啡的钱。

听起来很小。但开源软件这东西,本来就是靠一堆小事堆起来的。

那天早上,我朋友的问题最后解决了。他给那个归档的仓库提了个 issue,又找到一个还在维护的分支替换上去。花了两天。

他说了一句话我记到现在:原来我一直在用别人的东西,却从来没想过它是谁写的。

嗯。这就是我想说的全部。

作者|科技

排版|科技

审核|满满

免责声明:市场有风险,选择需谨慎!此文仅供参考,不作买卖依据。如有侵权请联系删除。
文章名称:凌晨两点挂掉的那台服务器,让我重新认识了开源软件
文章链接:https://www.lfdjt.com/p/keji/a/24045.html