开启辅助访问 切换到窄版

打印 上一主题 下一主题

Linux之父林纳斯:Linux的开始,我真的只是随便搞搞,够用就行

[复制链接]
作者:「selina」 
版块:
嵌入式操作系统 linux 发布时间:2020-1-31 19:44:27
13400
楼主
跳转到指定楼层
| 只看该作者 回帖奖励 |倒序浏览 |阅读模式
对软件工程师来说,Linux 实在是太熟悉了,互联网上用到的很多技术和产品背后都有 Linux 的身影。
你在用 Google 搜索的时候,用 kindle 看书的时候,用淘宝购物的时候,用 QQ、微信聊天的时候,后台是成千上万的 Linux 服务器在支撑着这些软件和服务。它们时时刻刻都在进行着忙碌的运算和数据处理,确保数据信息在人、软件和硬件之间安全的流淌。
Linux 可以称得上是 IT 发展史上圣杯级别的产品,同时,Linux 不仅仅在技术层面影响了人们的生活,它的诞生和发展历程本身就产生了很多有意思的话题和文化。
我读过不少 Unix/Linux 相关的书籍,到现在,很多具体的技术内容已经记不清了,但那些话题、模式和文化,却像醇香的好酒、美丽的传说,历久弥新,还在不断的为我带来思考和启发。
比如,最初的想法,往往并不是决定性的,几乎所有成功的产品都是边走边看做出来的


Linux 的缔造者是著名的 Linus Torvalds,为了方便,接下来我都会称他为林纳斯了。对林纳斯来说,做一个操作系统并不是他最开始的想法,一开始他也没有这么大的野心。
当时林纳斯还在上大学,他只是觉得迷你版 Unix 操作系统 Minix 的终端太难用了,既不能登录学校里的 Unix Server,也没法上网。这种功能缺陷对林纳斯这样的极客来说是无法接受的,于是他决定从硬件层面开始,重新为 Minix 设计一个终端仿真器。
你可能看过林纳斯的自传《Just for Fun》,在书里面,他是这么说的:“当时是三月,也可能是四月,就算彼得盖坦街上的白雪已经化成了雪泥我也不知道,当然我也并不关心。大部分时间我都穿着睡衣趴在相貌平平的计算机前面噼噼啪啪的敲打键盘,窗户上的窗帘遮得严严实实,把阳光和外部世界与我隔离开来。”
经过不眠不休的编程之后,终端仿真器做出来了,但那个时候林纳斯已经意识到自己的雄心壮志远不止于此,神山上的另一座圣杯“操作系统”已经向他发出了召唤。于是他马不停蹄的开始给终端仿真器添加磁盘驱动、文件系统等等诸多功能和模块。而随着工作的进展,一个新的操作系统的雏形诞生了,最终形成了 Linux。
另一个伟大的操作系统 Macintosh,也就是我们现在使用的 macOS,同样起步于一个微小的项目,期间历经换帅、更名、争吵、妥协,最终与 NextStep 经过长达四年的整合,才形成现代的经典操作系统 macOS。伟大的梦想,常常始于微不足道。
所以,很多人问我该怎么找到一份长期稳定的工作,如何开启一个能够带来巨大成功的项目时,我只能说,最初的想法,并不是一切,开始去做就好了。


林纳斯为了给自己做一个好用的终端仿真器,而最终做出了让他名垂青史的 Linux 操作系统。这样的例子并不罕见,沃兹因为热爱计算机而设计出了 Apple I,乔布斯因为想把 1000 首歌装进口袋而推出了 iPod。
所以说,好的软件产品,常常源于开发者自身的需求。这是我的另一个思考,你可能也有这样的感觉,如果有什么工作能够让自己保持长久的热情,那一定是做自己需要的产品。
很久之前,我做过一个给程序员用的开发工具,当时,我会要求每个研发人员都使用我们自己开发出来的工具,而不是仅仅把工具推给测试人员和项目组的程序员。过了一段时间,我发现那个 IDE 突然增加了很多“善解人意”并“出人意料”的功能。
现在我在做极客时间,这是一款面向工程师、产品经理和运营人员的知识服务产品,每次推出新功能,公司的研发人员往往是第一批真实用户,他们会不厌其烦的提出各种改进措施,产品经理细化之后,自己去实现改进。我们开玩笑说,程序员疯起来连自己都提需求。
然而,一个很现实的情况是,每个人的兴趣和需求都会转移,很可能你做着做着就不感兴趣了,林纳斯也不例外。
在 Linux 进入稳定发展的阶段后,他把更多的精力放到了开源社区上,但是,这并没有降低 Linux 操作系统的代码质量,因为他找到了更多的顶级源代码贡献者。
在软件开发项目中,我们同样会遇到类似的问题。某个功能的开发者突然对继续做这个功能失去了兴趣,这时候我们就有责任为这个功能找到一个可以胜任的接棒者,而不是强迫原来的开发者在原地踏步。
很多时候,我们厌倦了一件事情,并不是能力缺失,而是因为已经洞悉了这件事的所有秘密,于是开始渴望更多别的挑战。而这时,最好的做法是找到一个有能力的接棒者,这样,你才能没有负担的踏上新的征程


在 Linux 诞生的过程中,还有一点非常值得说说,那就是林纳斯并没有尝试从零开始编写 Linux,而是从复用 Minix 的代码和理念开始的。虽然在 Linux 最终的版本中,几乎所有的 Minix 代码都被移除或重写了,但它在 Linux 成长初期确实起到了类似脚手架的作用。
可以说,优秀的程序员知道如何编程,而卓越的程序员知道如何合理复用。如果探究一下原因,卓越的程序员通常都很懒,我们把这种懒叫做“建设性懒惰”,因为他们知道,很多时候我们要的都是最终的结果,而不是勤奋的过程。如果有可以复用的基础,显然比从零开始更具有建设性。
在开源社区澎湃发展的今天,我们有了更多的技术选择。所以,当你拿到一个轮子的需求时,最好去社区里找找问问,如果有可以复用的东西,就不要再费劲去造一个新轮子,况且你也无法保证自己造的轮子要比旧轮子好用。
当然,我从来不算卓越的程序员,我只是知道如何模仿他们,借鉴他们的编程理念和做事方式,最终形成自己的风格,做出自己的产品。
你之前有了解过 Linux 的诞生和发展历程吗?有得到什么收获和启发?欢迎在留言区分享给大家。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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