找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖
Claude、GPT 海外模型 API 接入Claude skills 从入门到精通 吴恩达亲授 AI Agent 核心技能2026 瞪哥公务员考试全攻略 行测申论一站式系统备考
Agent 文心智能蒸馏模型实战 90G 课程智泊 AI 大模型训练营 基于 LangChain 的 RAG 与提示工程实战构建企业级 AI 大脑:大模型微调与 RAG / Agent 全栈实战

6071

积分

0

好友

773

主题
发表于 昨天 22:39 | 查看: 0| 回复: 0

一个只占几百 K 内存的小工具,静静地运行在全球超过 200 亿台设备上。

从你手中的 iPhone、Android 手机,到 Windows、Linux、macOS 系统:

Windows Apple Android iOS Tux Ubuntu BlackBerry Red Hat Debian Mint Fedora

从 Nintendo Switch、Xbox、PS5 等游戏机,到智能手表、汽车、打印机、智能厨房、医疗设备、机器人……

curl runs in all your devices

只要需要网络数据传输,就有它的身影。

它甚至运行在两个星球上:地球和火星(2021 年随着毅力号登陆火星)。

2 planets

这就是 cURL 。

cURL logo

它的作者,瑞典程序员丹尼尔(Daniel Stenberg),用了 28 年的时间,把一个不起眼的小工具打磨成了世界上最流行的软件。

然而,开发了如此伟大的工具,丹尼尔不仅没有因此过上“人生赢家”的生活,甚至还收到过死亡威胁。

Date: Fri, 19 Feb 2021 03:02:24 Subject: I will slaughter you 我要杀了你

在 FOSDEM 大会上,丹尼尔讲述了几十年来把 cURL 打造为全球基础设施的酸甜苦辣,投入与坚持,非常值得一看。对于关注 开源实战 的开发者来说,这绝对是一个绕不开的真实案例。


01 伟大的项目,都始于微小的需求

cURL 的诞生,最初只是为了满足一个再普通不过的小需求:写个自动脚本,从某个网站上下载汇率数据。

从小处着眼 Start small

和大多数程序员一样,他一开始在网上找了个叫 httpget 的开源项目,用得不亦乐乎。

为了让它更好用,他陆续增加了对 Gopher 和 FTP 协议的支持。后来顺势接管了该项目,成为了维护者。

随着功能越来越多,继续叫 httpget 显得不够准确了。1998 年,丹尼尔正式将其改名为 cURL。

那一年,cURL 仅有 300 次下载。但丹尼尔觉得这已经“酷毙了”,因为 300 个用户已经远远超过了他的朋友数量!

December 1998 Mailing List

当时的丹尼尔完全没有“改变世界”的野心,他的数学甚至算得很可爱:“2 年有了 300 个用户,那再过 20 年,岂不就能有 3000 个用户了?”


02 极致的坚持

很少有项目能一夜爆红。

开源世界里最不缺的就是创意和同类软件,当 cURL 取得巨大成功后,很多人问丹尼尔究竟凭什么?

丹尼尔的回答非常朴素:“我只是投入了更多的时间。”

投入更多时间 Give it more time

每个人都有家庭和生活,要把时间留给开源,就必须牺牲其他娱乐。

比如,丹尼尔从来不玩电脑游戏,他把节省出来的所有闲暇时间都砸在了 cURL 上。

在 cURL 还不出名的时候,大部分时间只有丹尼尔一个人在默默开发。那种孤独,就像在黑夜中独自漫长地行走。

接受孤独 Accept that you might run alone in periods

为了给项目“增加一点人气”,甚至发生过一件让人心酸又好笑的事:丹尼尔曾假装成其他用户,给自己的项目提交 Pull Request,热切期盼能有路人来评论互动。

但大多数时候依然无人问津,丹尼尔只能默默切回主账号,自己把请求合并,然后继续往前走。

(这不禁让人想起早期的腾讯 QQ,马化腾假扮女生陪用户聊天)


03 沉重的责任

任何软件都有漏洞,但对于一个安装量超过 200 亿次的软件来说,任何一个哪怕极小的安全漏洞,都可能引发全球性的基础设施危机。

丹尼尔坦言,当严重漏洞出现时,他经常焦虑得夜晚难以入睡。

但这是属于他自己的软件,他必须扛起这份责任。

Vulnerabilities Fixed/Introduced CVEs reported within that year

为了把风险降到最低,丹尼尔建立了一套极其严苛的品质保障体系:

  • 编写极具可读性的代码
  • 撰写极其完善的文档
  • 进行浩瀚如海的单元测试
  • 使用各种现代化工具进行静态分析
  • 引入高强度的模糊测试(Fuzzing)
  • 漏洞赏金计划:拿出真金白银,奖励那些发现漏洞的安全人员

(2026 年,由于很多程序员用 AI 提交了大量无效漏洞,丹尼尔暂时关闭了这个计划。有趣的是,在 安全/渗透/逆向 的圈子里,这种用 AI 批量刷漏洞的现象也引发了不少讨论。)


04 复杂的人心

随着时间的推移,写代码越来越少,和人打交道越来越多 Over time, maintenance means less coding and more interfacing humans

写代码很容易,写得不好可以随时重构、调试、换个算法重写。

但与人打交道,才是开源维护者面临的最大挑战。

随着项目规模越来越大,各种声音也随之而来:

有人指责他选错了编程语言(无论选哪种语言都会被骂);

有人抱怨技术太老、太笨、太烂;

还有人因为 cURL 无法解决他们特定的私人问题而大发雷霆(哪怕 cURL 根本就不是为了解决那种问题而设计的)。

只要有一点让人不满意,就会有人用极其咄咄逼人的语气提出质问。

为了维护一个友好的社区氛围,丹尼尔练就了一套情绪管理法则:回复时做深呼吸;如果依然觉得被冒犯或不安,就先放下,绝对不立刻回复。

开源就是这样:只要一切正常,绝不会有人夸你一句;

可一旦出现一个小漏洞,尤其是比较愚蠢的 Bug 时,马上就会有无数人疯狂抱怨。

至今,cURL 拥有 200 亿次安装,但仅有 1,240 名贡献者,而且大部分人只是提交了一个修复拼写错误的补丁就再也没出现过。

但偶尔也会有惊艳的开发者突然出现,带着一份对 cURL 架构理解极深的高质量 Patch,这足以让丹尼尔兴奋许久。


05 真实的死亡威胁

为了符合开源协议,丹尼尔把自己的个人邮箱写在了许可证的 Copyright 页面上。

COPYRIGHT AND PERMISSION NOTICE

这引发了一连串让人哭笑不得的奇葩事件。由于 cURL 被广泛嵌入到各种软件中,许多普通用户在软件报错时,翻到了版权声明里的邮箱,把丹尼尔当成了“官方万能客服”:

我想知道如何使用卡罗拉上的GPS

我想升级宝马车上的iDrive软件

我的Instagram账号被黑了,你能帮我找回来吗?

丹尼尔在苦笑之余也大为震撼:“Cool,原来我的 cURL 还运行在这么多酷炫的设备里!”

但最可怕的,是随之而来的黑客攻击事件与死亡威胁。

曾有一名用户的系统遭到了黑客攻击,损失了价值数百万美元的项目。

在排查过程中,受害者在日志里看到了 cURL 的踪迹,竟误以为是丹尼尔开发了攻击软件,把满腔怨气撒到了丹尼尔身上,甚至给他发出了极其疯狂的死亡威胁。

Date: Fri, 19 Feb 2021 03:02:24 Subject: I will slaughter you 我要杀了你

面对真正的生命安全威胁,丹尼尔选择果断报警。

几个月后,该受害者才终于冷静下来,意识到自己的愚蠢并向丹尼尔发信道歉。


06 一切源于 “Have Fun”

我并不特殊 I am not special 我不是天才 I am not a genius 我并没有做那些前所未有的事情 I did not do anything previously unknown 我只想要一个互联网数据传输的工具 I wanted a tool for internet transfers

丹尼尔从来不认为自己是个天才,是什么惊世骇俗的人物,他只是想开发一个好用的网络数据传输工具。

Daniel Stenberg 在他的工作室

但是一个人怎么可能“辛辛苦苦”在同一个开源项目上坚持 28 年?

丹尼尔在演讲中多次强调一句话:Have Fun。

Linux 之父也告诉我们:Just for Fun。

没错,一切源于兴趣。

回过头来看,cURL 的故事在 开发者广场 上也常常被提起:一个起初只是“给自己用”的小脚本,最终变成了全球互联网基础设施中不可或缺的一环。能支撑一个人走过 28 年孤独、误解甚至威胁的,其实从来不是什么宏大叙事,而是那份最初觉得“写出来挺好玩”的劲头。




上一篇:OpenViking 零代码搭建 LLM-Wiki:团队文档不再各说各话
下一篇:Excel凭啥成全球用户最多的编程语言?LAMBDA让它图灵完备
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-9-25 04:04 , Processed in 1.703589 second(s), 46 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

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