作为Linux Torvalds

Lobsters Hottest 新闻

摘要

分析了Linus Torvalds作为领导者的独特角色,他早期停止编写代码,专注于Linux内核项目的协调与方向,与其他维护者形成对比。

<p><a href="https://lobste.rs/s/uwhqhi/being_linux_torvalds">评论</a></p>
查看原文
查看缓存全文

缓存时间: 2026/07/27 05:40

# 成为林纳斯·托瓦兹 - 来源:https://antirez.com/news/171 antirez (https://antirez.com/user/antirez) 1天前。22816次浏览。 (这篇博文改编自我YouTube视频https://www.youtube.com/watch?v=l6lxgYeVZqs的听录稿) 当林纳斯·托瓦兹开发第一个Linux内核时,他研究过Minix的源代码,研究过计算机体系结构,拥有所需的基础知识,而且显然是一位极其出色的程序员。但为386编写一个最小却可运行的Unix内核(最初Linux可以说是单架构的)这件事,是许多其他程序员和学生也能做到的。所谓“许多”,我的意思是,大概0.1%,千分之一,万分之一。显然大多数人无法完成这样的壮举,但有不少人可以。看看近几年的Hacker News,你会发现多少用C写的内核项目、从头实现的微内核、用Rust写的内核、各种风格和方式的内核、为树莓派垂直构建的小型Unix系统、为ESP32开发的操作系统等等。编写内核并非人人都能做到,但如果有足够努力,很多人是可以完成的。当然,并非每个人都能做得很好。他无疑是一位天才程序员,所以做得更好。然而,林纳斯只有一个。事实上,他这种实现能力并不能告诉我们太多关于他的信息:我们更应该关注的是后来发生的事情。 ## 他停止编写代码 在知名开源项目的维护者中,他是极少数在Linux开发早期就几乎完全停止编写代码,转而专注于领导项目的人。专注于成为领导者、协调者、唯一能清晰把握项目目标的人,等等。这是一件罕见的事。许多维护者(包括我自己,在很长一段时间里)反而继续直接实现功能,不太放权,诸如此类。这也源于对软件的不同理解。Linux必然要无比庞大:这是内核的本质——要涵盖众多设备、平台、子系统,并不断适应时代、新软件的需求以及逐步出现的新硬件。所以这不是一个错误。相反,Redis可以保持自包含。前几天我收到了SQLite的Richard Hipp博士对linenoise的拉取请求:他也追求稳定性、极简主义和性能,但始终保持代码库非常小,并且他长期持续编写代码。而林纳斯则不然。他立刻意识到,对于一个注定变得无比庞大、远超个人实现能力的项目,他必须将时间投入到更重要的事情上。于是他成为了项目领导者,掌握着想法和方向的人。 那么,林纳斯具体做什么呢?他并不是每次逐行检查每一个补丁。当然,他有时也会深入研究某个具体的实现,以了解情况。多年来,他也曾编写过一些新的子系统,甚至重写过某个子系统:我记得多年前他重写过USB层,还重写过虚拟文件系统——我相信在某个时间点他重新实现了它,改变了inode和inode缓存的结构。此外还有其他几次。他会时不时地继续编程,比如创建Git的时候等。但大多数情况下,他并不逐一、详细地、逐行检查补丁:他与子系统的维护者沟通,判断某个特性或某个方向是否值得采纳。所以,用布鲁克斯在《人月神话》中的术语来说,林纳斯掌握着内核的设计理念,并持续与内核层级中所有下级人员对话,使内核朝着某个方向前进。既从实现角度(这些开发如何实现,质量如何,代码编写方式本身所蕴含的实现思想是什么),也从设计角度:我们想做什么、不想做什么、对于模块、调度器、硬件支持、是否集成Rust等的最佳策略是什么。所有这些事情。 现在,我认为这才是林纳斯真正的天才之处。他不仅仅是一位非常出色的程序员:还有其他人也是。他还是一位维护者、一位令人难以置信的设计师,并且能够以连贯的方式处理庞大项目的理念和结构,与许多人进行对话。这不是人人都能做到的。 ## 现在我们都是林纳斯 现在,当我们用人工智能编程时,我们正是处在这个位置。我们就是林纳斯·托瓦兹,并不总是拥有他的天赋,但在那些我们不会逐行审查代码的项目中,我们应该扮演的角色正是那种类型。正是他拥有的那种角色。只不过,掌控起来更简单:除非我们并行使用大量智能体,否则本质上比处理来自不同方向的众多补丁要容易掌控。但速度要快得多。就好像我们不是在以人类速度与由许多人组成的团队互动,而是与由一两个人组成的团队互动(取决于当时我们开发项目的并行分支数量),但这些人速度快得多,所以能立即给我们快得多的反馈。这稍微改变了工作方式,但在我看来是往好的方向改变:更轻松,更少的上下文切换,更少的人际交往,更少的因性格、态度等产生的问题。因此,如果我们认为这个角色很重要,就不应该认为自动编程就是“我输入提示,然后东西就写出来了”。Vibe coding是一个错误的概念,既误解了自动编程是什么,也误解了自动编程对大多数人来说会是什么。对于没有技术能力但仍希望对自己的工具构建产生影响的人来说,Vibe coding是一件非常有趣的事情:所以,欢迎它,因为它使可能性民主化。但自动编程并非如此。相反,自动编程,掌握在专业技术人员、专业程序员、专业设计师、专业软件架构师手中,就是扮演林纳斯的角色,而智能体和LLM则扮演不同子系统的维护者。由于并非所有人都能做得那么好,自动编程同样需要天赋:与智能体对话、检查想法、知道哪些实现该做哪些不该做、知道如何与智能体沟通以使他们做出最佳工作,并将那些伟大程序员能直觉到、优秀程序员能直觉到并预判出来的设计提示融入其中。所以,自动编程,当做得好的时候,就意味着扮演林纳斯的角色。这件事可以做好,也可以做坏,可以被理解,也可以被贬低。它还需要训练,需要学习,正如林纳斯必须学习的那样:他无疑有这方面的天赋,但他从“我实现一切”过渡到了能够驾驭一部交响乐、成为乐队指挥的能力。对我来说,这就是林纳斯的启示,它应该立刻被用作一个对比论点,反驳那些认为“有了LLM,编程对每个人都容易了”的说法。

相似文章

Linux安全邮件列表“几乎无法管理”

Hacker News Top

Linus Torvalds 表示 Linux 安全邮件列表“几乎完全无法管理”,原因是出现了大量由 AI 生成的重复错误报告,他将这种混乱称为“无意义的工作”。