找回密码
 立即注册
搜索
查看: 207|回复: 2

[行业轶事] 开发了世界上最流行的软件,竟然被人追杀,开源太可怕了...

[复制链接]

418

主题

2

回帖

4107

积分

管理员

积分
4107
发表于 2026-9-22 11:52:39 | 显示全部楼层 |阅读模式 来自 湖北武汉
    一个只占几百K内存的小工具,静静地运行在全球超过 200 亿台 设备上。
    从你手中的 iPhone、Android 手机,到 Windows、Linux 、macOS系统;
640.png
    从 Nintendo Switch、Xbox、PS5 等游戏机,到智能手表、汽车、打印机、智能厨房、医疗设备、机器人......
640.png
    只要需要网络数据传输,就有它的身影。
    它甚至运行在两个星球上:地球和火星(2021年随着毅力号登录火星)。
640.png
    这就是 cURL。
640.png
    它的作者,瑞典程序员丹尼尔(Daniel Stenberg),用了 28 年的时间,把一个不起眼的小工具打磨成了世界上最流行的软件。
    然而,开发了如此伟大的工具,丹尼尔不仅没有因此过上“人生赢家”的生活,甚至还收到过死亡威胁。
640.png
    在FOSDEM 大会上,丹尼尔讲述了几十年来把 cURL 打造为全球基础设施的酸甜苦辣,投入与坚持,非常值得一看。

01 伟大的项目,都始于微小的需求
    cURL 的诞生,最初只是为了满足一个再普通不过的小需求:写个自动脚本,从某个网站上下载汇率数据。
640.png
    和大多数程序员一样,他一开始在网上找了个叫 httpget 的开源项目,用得不亦乐乎。
    为了让它更好用,他陆续增加了对 Gopher 和 FTP 协议的支持。后来顺势接管了该项目,成为了维护者。
    随着功能越来越多,继续叫 httpget 显得不够准确了。1998 年,丹尼尔正式将其改名为 cURL。
    那一年,cURL 仅有 300 次下载。但丹尼尔觉得这已经“酷毙了”,因为300 个用户已经远远超过了他的朋友数量!
640.png
     当时的丹尼尔完全没有“改变世界”的野心,他的数学甚至算得很可爱:“2年有了 300 个用户,那再过 20 年,岂不就能有 3000 个用户了?”

02 极致的坚持
    很少有项目能一夜爆红。
    开源世界里最不缺的就是创意和同类软件,当 cURL 取得巨大成功后,很多人问丹尼尔究竟凭什么?
    丹尼尔的回答非常朴素:“我只是投入了更多的时间。”
640.png
    每个人都有家庭和生活,要把时间留给开源,就必须牺牲其他娱乐。
    比如,丹尼尔从来不玩电脑游戏,他把节省出来的所有闲暇时间都砸在了 cURL 上。
    在 cURL 还不出名的时候,大部分时间只有丹尼尔一个人在默默开发。那种孤独,就像在黑夜中独自漫长地行走。
640.png
    为了给项目“增加一点人气”,甚至发生过一件让人心酸又好笑的事:丹尼尔曾假装成其他用户,给自己的项目提交 Pull Request,热切期盼能有路人来评论互动。
    但大多数时候依然无人问津,丹尼尔只能默默切回主账号,自己把请求合并,然后继续往前走。
    (这不禁让人想起早期的腾讯QQ,马化腾假扮女生陪用户聊天)

3 沉重的责任
    任何软件都有漏洞,但对于一个安装量超过 200 亿次的软件来说,任何一个哪怕极小的安全漏洞,都可能引发全球性的基础设施危机。
    丹尼尔坦言,当严重漏洞出现时,他经常焦虑得夜晚难以入睡。
    但这是属于他自己的软件,他必须扛起这份责任。
640.png
    为了把风险降到最低,丹尼尔建立了一套极其严苛的品质保障体系:
  • 编写极具可读性的代码
  • 撰写极其完善的文档
  • 进行浩瀚如海的单元测试
  • 使用各种现代化工具进行静态分析
  • 引入高强度的模糊测试(Fuzzing)

    漏洞赏金计划:拿出真金白银,奖励那些发现漏洞的安全人员
    (2026年,由于很多程序员用AI提交了大量无效漏洞,丹尼尔暂时关闭了这个计划)

04 复杂的人心
640.png
    写代码很容易,写得不好可以随时重构、调试、换个算法重写。
    但与人打交道,才是开源维护者面临的最大挑战。
    随着项目规模越来越大,各种声音也随之而来:
    有人指责他选错了编程语言(无论选哪种语言都会被骂);
    有人抱怨技术太老、太笨、太烂;
    还有人因为 cURL 无法解决他们特定的私人问题而大发雷霆(哪怕 cURL 根本就不是为了解决那种问题而设计的)。
    只要有一点让人不满意,就会有人用极其咄咄逼人的语气提出质问。
    为了维护一个友好的社区氛围,丹尼尔练就了一套情绪管理法则:回复时做深呼吸;如果依然觉得被冒犯或不安,就先放下,绝对不立刻回复。
    开源就是这样:只要一切正常,绝不会有人夸你一句;
    可一旦出现一个小漏洞,尤其是比较愚蠢的 Bug 时,马上就会有无数人疯狂抱怨。
    至今,cURL 拥有 200 亿次安装,但仅有 1,240 名贡献者,而且大部分人只是提交了一个修复拼写错误的补丁就再也没出现过。
    但偶尔也会有惊艳的开发者突然出现,带着一份对 cURL 架构理解极深的高质量 Patch,这足以让丹尼尔兴奋许久。

05 真实的死亡威胁
    为了符合开源协议,丹尼尔把自己的个人邮箱写在了许可证的 Copyright页面上。
640.png
    这引发了一连串让人苦笑不得的奇葩事件。由于 cURL 被广泛嵌入到各种软件中,许多普通用户在软件报错时,翻到了版权声明里的邮箱,把丹尼尔当成了“官方万能客服”:
640.png
640.png
640.png
    丹尼尔在苦笑之余也大为震撼:“Cool,原来我的 cURL 还运行在这么多酷炫的设备里!”
    但最可怕的,是随之而来的黑客攻击事件与死亡威胁。
    曾有一名用户的系统遭到了黑客攻击,损失了价值数百万美元的项目。
    在排查过程中,受害者在日志里看到了 cURL 的踪迹,竟误以为是丹尼尔开发了攻击软件,把满腔怨气撒到了丹尼尔身上,甚至给他发出了极其疯狂的死亡威胁。
640.png
    面对真正的生命安全威胁,丹尼尔选择果断报警。
    几个月后,该受害者才终于冷静下来,意识到自己的愚蠢并向丹尼尔发信道歉。

6 一切源于“Have Fun”
640.png
    丹尼尔从来不认为自己是个天才是多么惊世骇俗的人物,他只是想开发一个好用的网络数据传输工具。
640.png
    但是一个人怎么可能“辛辛苦苦”在同一个开源项目上坚持 28 年?
    丹尼尔在演讲中多次强调一句话:Have Fun。
    Linux 之父也告诉我们:Just for Fun。
    没错,一切源于兴趣。

0

主题

307

回帖

670

积分

高级会员

积分
670
发表于 2026-9-22 21:43:37 | 显示全部楼层 来自
竟然被人追杀

0

主题

307

回帖

670

积分

高级会员

积分
670
发表于 2026-9-22 21:44:03 | 显示全部楼层 来自
绝对不立刻回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表