Linux创造者Linus Torvalds:23年前,我开发Linux仅仅是因为好玩
1991 年,年仅 22 岁的芬兰程序员 Linus Torvalds(后文简称 LT)发布了自己独创的操作系统—Linux。他将代码公布在网上,爱好者们也贡献者自己的力量来使它强大。
23 年过去了,Linux 已经遍地开花。智能手机,邮政系统,欧洲核子研究组织和超过 95% 的超级计算机都在使用。Linux 免费、开放、功能强大,而创始人 Torvalds 说他开发 Linux 仅仅是因为好玩儿。
Torvalds 依然在非营利组织 Linux Foundation 进行着他的事业。本周 Business Insider (后文简称 BI) 对 Torvalds 进行了访谈,以下是主要内容及完整的访谈录。
- 他很高兴看到 Linux 现在取得的成绩。“程序写的很棒,社区办的很棒,连同它做的项目也很棒。”
- 专利法案系统缺陷百出。“不管是申请专利,还是进行专利诉讼,遇到的流程问题简直不计其数”
- 不后悔将 Linux 作为开源贡献。
- Torvalds 整个家庭都用 Linux!
- 超大超复杂的项目如何合?“主要是要有并行的流水线,同时高效开放的分配工作。”
- 编程不一定人人都要会。 这毕竟是专业技术,不像读读写写那么简单。
BI:在得知你当初设计开发的系统在 20 年后遍布各个系统(从手机到证券交易)后,是怎样的心情呢?
LT: 从技术角度讲,我对于 Linux 在各个领域的广泛应用感到欣慰。在不同行业不同场景下的应用,不仅使得系统更加的平衡,也使得某个领域的突出技术特点,可以被借鉴移植到其他地方去。比如 说 Linux 的多处理结构兴起后,在嵌入式领域也逐渐被应用。在移动设备上的电源管理理念,随后也在服务器端被技术人员所重视。
而从个人角度讲,Linux 在技术领域的强大的影响力让我个人也非常满足。编程充满乐趣,围绕其核心的社区也十分给力,不管做什么,具体项目内容其实还是重中之重。
BI: 目前大多数软件公司对待知识产权的方式,对在哪里,又错在哪里?
LT: 知识产权这个词应该被禁止。知识和产权这两个词就不应该被搭配在一起。不管出于何种原因,这方面最主要的矛盾就在于“专利”。
在现阶段美国的不够完备的专利法律体系下,我并不认为是公司出了错。大多数情况下,公司都是在博弈。
专利本身就是一个很奇怪的存在,专利局无法否定它。假使有人否定专利的意义而不去申请,随之而来的是更麻烦的事儿(因为公司会对文件进行改良, 以期望其通过专利申请)。公司都希望其所拥有的专利定义模糊,难以界定,这似乎更是对判决是否侵犯专利这一诉讼过程的挑战。 所以对专利本身的投入,已经远远不及打官司的投入。
经历过的人都知道这有多么耗人心神,但从政治方面讲,它是想帮助公司的。但一但进入法庭程序,一切都不是那么简单了。
我推崇专利法案么?只有一点点吧。
很多人致力于保护智力成果,这是没错的。但问题出在流程上,不管是申请专利的流程,还是诉讼流程,都极为繁琐。
“商标”的问题就小很多。只有诉讼过程会比较纠结。
BI:有没有希望过当初要是给 Linux 注册专利或者商业化就好了?
LT: 没有。当时我自己也问过自己这个问题,但进行商业化可能会毁了 Linux。像现在这样和谐成熟的开发者社区就不会出现,Linux 也不会像现在这样全面。
坦白讲,我也不擅长做这个。我喜欢通过开源来让各地的开发爱好者们参与其中,做他们擅长做的事。也意味着我可以专注于技术方面,而其他人可以帮忙推广。
在很长一段时间里,我不让自己进入跟 Linux 有关的盈利性公司。所以进入了一家跟 Linux 毫无关联的创业公司,这样就不会让我的个人主观偏好影响到我的工作。
而在过去十年,我做的是跟 Linux 相关的工作,并且也依此获得薪水。但为了不参与带有倾向性的竞争,所以我加入了一家非盈利组织(Linux Foundation)。这样,我的“维护者”的角色就能得到大家的承认了。
BI: 微软和苹果的产品你有在用么?你自己主要的装备都有哪些?
LT:我的家庭都在用 Linux,惊奇吧哈哈。买回来的电脑开始会预装 Windows 或 OS X, 但到最后,都会回到 Linux 上来。
我的装备也各式各样。主要的台式机是组装起来的。之后还对部件进行了升级,主要也都是英特尔的硬件。不断升级之后,最初的元件只有电源留了下来。
曾经我也有过一部 MacBook Air,轻便小巧。但我受不了它的屏幕啦,后来就换成了 Chromebook, 再后来换成了 Sony Vaio Pro,一直用到现在。
同时我们还拥有不同的安卓手机和平板,还有几台 Chromebook。
BI: 超大型复杂度极高的项目如何分工合作,比如说国际热核聚变实验堆计划?很多时候大家都觉得最主要的问题是太多人员参与时的沟通问题。
LT:我不觉得复杂度太高是一个项目的主要障碍。复杂度可以通过开放和合作来解决。然而,只有开放和合作还不够,还要高效的进行任务指派。
用自然界中的例子来类比,最复杂的系统工程莫过于生物体本身的生理系统。而这么复杂的一个系统,通过高效的指派和合作完成了整个工程。
就像国际热核聚变实验堆 (ITER),最主要的问题其实还是在“分配”任务上。如果要搭建一个巨额造价的设备,显然很难让很多人独立的工作。这就是这个项目的瓶颈所在,并且很难避免。
ITER 也在准备将一个设备分拆成多个,以便多人进行合作,但我的意思并不仅仅指这种物理性的分拆。
我指的是一个项目有很多条并行线路,每个人都在自己的线路上,不断地重复地完成自己的事就好。
没有并行线路的项目,要合作起来十分之困难。而软件开发的好处就在于,这样的瓶颈非常之少。可以并行开发不用模块,之后再一起调试。并没有很多固定模型可以指导人们进行大规模开发,但“不断试错”是肯定要纳入项目思想中的。
市面上有些开放合作的很好的实例(维基百科算是一个),但都需要对资源进行分配并且开发过程中没有太多障碍。基于这种理解,无形的资产更有利于 进行这种合作。对其所需的硬件只要便宜,容易分布安装在不同的地方就行。在 FPGA 这种的硬件设计里,已经借鉴了此种方法。
但 ITER 呢?巨大,复杂,昂贵的硬件都使合作难上加难。
BI:硅谷传出这样一句话“每个人都要学编程”。如果这样的话,你想象中的计算机教育应该是什么样的呢?
LT: 我倒不觉得每个人都得学编程。这是项专业技能,大多数人都不会想要去做。这并不是简单的听说读写。
并不是说因为人人都要学才去学,而是要理解,程序像一种魔法,由你来告诉计算机它该做什么。如果这么理解编程的话,那在学校里进行这样的教育是一件很有趣的事。
BI: 大众怎么提高自己与科技的关系呢?
LT:我来回答这个好像不太合适,因为我从小就开始接触电脑了并会对它进行改造。不知道这算不算得上是个好的建议:“和它一起长大,并且尽可能地折腾它。在拆开、组装中寻找乐趣。”