他 11 岁学习编程,21 岁开发出 Linux 操作系统,拒绝乔布斯的 offer,活出了程序员该成为的样子...

本文主要是介绍他 11 岁学习编程,21 岁开发出 Linux 操作系统,拒绝乔布斯的 offer,活出了程序员该成为的样子...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

640?wx_fmt=gif

点击上方“杰哥的IT之旅”,选择“置顶公众号”

干货、福利第一时间送达!

640?

640?wx_fmt=jpeg

作者:张小吉

来源:鸡仔说

Linux 操作系统对做开发的人来说,已经再熟悉不过了。它具备免费、可靠、安全、稳定、多平台等优势,早在 1991 年公布以来,就得到迅猛的发展。以至于现在我们用到的几乎所有的智能设备都有它的应用。比如手机、电脑、路由器、电视等等。而这一切的一切都离不开一个人的突出贡献,那就是它的创造者——被称为 Linux 之父的林纳斯·托瓦兹(Linus Torvalds)。今天我们就带大家来看看这个"脱袜子",到底是何许人也?(不了解 Linux 发展史的童鞋,可以移步看我的另外一篇文章:《影响LINUX发展的四位天才黑客》)

林纳斯早在 11 岁时,就开始接触编程。这得益于他的外公,一位统计学教授。不知道这位老人是纯粹的偷懒,还是刻意培养外孙。他经常口述程序命令,让年幼的林纳斯在计算机上实现。聪明的林纳斯很快就发现这个神奇"盒子"的魔法,并对它产生了浓厚的兴趣。因此,花了大把时间"玩"编程的林纳斯,在进入大学之前就有了丰富的编程经验,这为他之后开发出 Linux 系统,打下了夯实的基础640?wx_fmt=gif

640?wx_fmt=jpeg

知道自己兴趣的人,大学生涯就幸运得多。林纳斯进入大学后便经常泡在学校的实验室,倒腾计算机。当时 AT&T 公司开发的 Unix 是学校的教学系统。林纳斯很快就喜欢上了它,花了一整个夏天的时间钻研它。并顺便学会了用来开发 Unix 系统的 C 语言。Unix 虽好,但它毕竟是商业公司的产品,而且面相个人用户收费价格昂贵,要数千美元,对于当时只是个大二学生的林纳斯来说,简直等同于敲诈勒索。但所幸,当时林纳斯已经参阅过 Unix 系统的核心代码,并掌握了开发 Unix 系统的 C 语言。对于天赋异禀的林纳斯,实现一个类 Unix 的操作系统,也只是一个时间问题,在没有更多选择的情况下,林纳斯便开始着手开发一个属于自己的 "Unix" 系统

当时,还有另外一款红极一时的操作系统——Minix。这个操作系统是生活在阿姆斯特丹自由大学的一位计算机教授,安德鲁·塔能鲍姆,为了辅助教学研发的,他仿照了 Unix 操作系统,并开放了源码,以便学生能够更好的理解操作系统教材。Minix 操作系统不如 Unix 操作系统成熟(但相比林纳斯的版本还是好用很多),一些黑客发现了 Minix 中所欠缺的一些功能,便给教授贡献代码,并希望作为正式版发布出来,但安德鲁教授觉得,我这个只是教学用的,并不打算做出点什么东西供大家使用。因此拒绝对代码提交合并,Minix 发展便陷入了停滞状态

640?wx_fmt=jpeg

安德鲁·塔能鲍姆教授


1991 年 8 月,林纳斯在 Minix 新闻组里面发表了一封后面看来著名的帖子:

640?wx_fmt=png

各位 Minix 用户,大家好。我正在制作一个(免费)的操作系统(只是作为爱好,不会像 Gnu 那样专业)。这个项目从 4 月就启动了,并将要准备好。我想听听大家的意见,特别是大家喜欢或不喜欢 Minix 的地方,因为我的操作系统将会和Minix有些像。我正在移植 bash 和 gcc。这意味着接下来的几个月里,我将获得一些实质性的成果…… 此外,它没有用 Minix 的代码……

640?wx_fmt=png

这看起来像是在和 Minxi 叫板,但却得到了新闻组内绝大多数黑客的支持。社区的力量是强大的,发帖不久后,就有 Minix 用户向林纳斯反馈自己想要的功能。更有用户为林纳斯建立 FTP 服务器,方便上传 Linux 代码。随后林纳斯与社区人员一起,不断迭代完善它,并最终于 1994 年 3 月 14 日正式发布了 1.0 版本。之后的故事我们都很熟悉了,由于 Linux 的开源理念,Linux 一路高歌猛进,并最终成为当下影响力最大的操作系统,没有之一

640?wx_fmt=jpeg

我们事后看来,林纳斯是极其幸运的。因为 Linux 的发展壮大纯属意外。假设当时 Unix 对个人用户降价,或者 Minix 当时将社区维护交由热心者继续开发,又或者当时 GNU 项目早一点研发出类 Unix 的内核,也就没有现在的 Linux 了。不过历史没有假如,从这一点上来看,时机对一个人来说相当重要。这一点也可以从 BAT 创始人的身上得到印证。早一批开发出 MSN 软件的马化腾,率先建立电商帝国的马云和开创近乎垄断国内搜索引擎业务的李彦宏,他们每一个人的成功,都毋庸置疑地抓住了时代的先机

当然,我们并不能因为林纳斯幸运,就忽略了他极大地贡献。而且,如果我们细心,就会发现,林纳斯身上有太多值得我们普通人学习的特质

首先,林纳斯极其专注,和很多功成名就的黑客大师不同,现年 49 岁的林纳斯从不做跨界的事。甚至有传言说,林纳斯因为极度聚焦于自己所擅长的领域,以至于不会自己搭建 web 服务。可以讲,林纳斯的整个青春都奉献到 Linux 事业当中,要知道,从 Linux 开发至今 28 个年头,没有超出常人的意志力和耐心是没有办法坚持下来的。不过这一点林纳斯有他自己的解读,他表示他非常想告诉大家“坚持就是胜利”,但是很遗憾的是事实并非如此。最重要的是找到自己感兴趣的事情去做

除此之外,林纳斯淡泊名利,在当年 Windows 帝国的统治下,Linux 开源系统成为各大商业公司几乎唯一的选择。《福布斯》杂志将林纳斯的照片刊登在当年的杂志封面上,并觉得这个来自芬兰的穷小子是绝对有望打败微软帝国的黑马。但尽管林纳斯坐拥 Linux 这个商标,却并没有拿它盈利。在我看来,他甚至过的有点寒掺。在 1997 年,林纳斯带着妻女迁居美国的时候,账户里只有几千美元的余额,在美国的第一个晚上,林纳斯不得不和妻子挤在充气床垫上熬过漫漫长夜。如果他愿意,他完全可以选择更好的生活,乔布斯曾经亲自邀请林纳斯加盟苹果公司,Red Hat 及 VA Linux 这样提供 Linux 服务和支持的公司也同时成立起来,如果他愿意,他完全可以大展宏图,名利双收,但林纳斯仅接受了这些公司表达的感谢而赠予的期权。他不愿意加盟任意一家公司,以避免他自己因为商业利益而无法保持中立

640?wx_fmt=jpeg640?wx_fmt=gif

讲到这里,我们补充一点林纳斯身上的趣事,你会发现这个人非常爱憎分明。平时他行事非常低调,以至于你很少在网络上看到他的报道。但在网络邮件上,他却以脾气火爆著称。例如,在一次与人争论他发明的 Git 为何不使用 C++ 开发时,与对方用 "bullshit"互骂。更曾以“一群自慰的猴子”(原文为“OpenBSD crowd is a bunch of masturbating monkeys”)的称呼来讽刺 OpenBSD 团队。而在 2012 年 6 月 14 日,在出席芬兰的阿尔托大学所主办的一次活动时,称 Nvidia 是他所接触过的“最烂的公司”(the worst company)和 “最麻烦的公司”(the worst trouble spot),因为 Nvidia 从未针对 Linux 平台发布任何官方的 Optimus 支持。随后便做了 NSFW(Not Safe/Suitable For Work 表示不适合在工作场合出现的内容) 的手饰和言论:“Nvidia,操你的! ”(So, Nvidia, fuck you!)

640?wx_fmt=jpeg640?wx_fmt=gif

另外,我们的 Linux 之父一直都保持不鸣则已一鸣惊人的姿态。因此,留下了很多非常犀利有趣的言论 ???

关 于 穿 着

   我从小不太讲究穿衣,长大后,又突然要由别人来决定我的穿衣,这些人主要是某些高技术公司的销售人员,我就穿他们在会议上免费发送的T恤和夹克。

关 于 成 长

   妈妈对她的一些朋友们说,我是个非常好养的孩子。她只要把我放在一个黑咕隆咚的储藏柜里,再配上一台电脑,偶尔朝里扔一些意大利面条,我就会感到格外高兴了。她的话不无道理。

关 于 入 伍

   在那里手拿武器,上了一个月的操练课后,我便觉得有生之年完全有资格从此一动不动,享受平静的生活了。惟一可做的事情就是在键盘上打代码,或者手里端着一瓶啤酒。

关 于 打 工

   我一贯喜欢室外运动,曾经一度当过邮差,但送的不是报纸而是垃圾邮件。

关 于 Unix

   你在UNIX上完成的大部分任务都是通过六个基本操作完成的,它们被称作"系统调用"(system call)。第一个基本操作是"创建子进程"(fork),一个程序把自身完全复制出来,这样你就有了两个相同的拷贝。第二个基本操作是复制出来的程序,再用一个新项目替换自己。其他四个基本系统呼叫--打开、关闭、读和写--都是为了访问文件的。这六个系统呼叫便组成了UNIX的简单操作。然后,你只需在程序之间创造出交流管道(pipes),就能解决复杂的问题。

关 于 编 程

   对于任何编程的人来说,编程是世界上最有趣的事,比下棋有乐趣得多,因为你可以自己制订游戏规则。而你制定什么样的规则,也就会导出与此规则相符合的结果。

关 于 操 作 系 统

   创造操作系统,就是去创造一个所有应用程序赖以运行的基础环境。从根本上来说,就是在制定规则:什么可以接受,什么可以做,什么不可以做。事实上,所有的程序都是在制定规则,只不过操作系统是在制定最根本的规则。

关 于  Linux 的 发 明

   这花费了我大量的精力:编程――睡觉――编程――睡觉――编程――吃饭(饼干)――编程――睡觉――编程――洗澡(冲冲了事)――编程。

关 于 操 作 系 统

   创造操作系统,就是去创造一个所有应用程序赖以运行的基础环境。从根本上来说,就是在制定规则:什么可以接受,什么可以做,什么不可以做。事实上,所有的程序都是在制定规则,只不过操作系统是在制定最根本的规则。

关 于 妹 纸

   在那个时候,只要一想到姑娘,Linux系统就变得不再重要了。在某种程度上,今天也还是这样。

关 于 网 络 口 水 仗

   它们的全部存在意义就是不遗余力地宣传什么东西,也就意味着还要贬损其他的相关物。你在那里经常看到的通常只是些"我的系统比你的系统更好"之类的废话。我们可以把它们看作是某种形式的在线手淫。

关 于 攻 击 者

   有人声称,作为Linux领头人所产生的压力,已经使我从一个电脑迷变成了一个混蛋。他错了,实际上我一直是一个混蛋

关 于 成 名

   当人们开始过分认真地对待你时,就为你设下了一个温柔的陷阱。

关 于 律 师

   那些将人类的创造结果称之为是"财产"的人,不用说,便是律师了。

关 于 电 子 邮 件

   我喜欢电子邮件的众多理由之一是,它如此方便又如此容易被忽略。你可以轻松地对某些邮件不加理睬。

关 于 生 活 哲 学

   寻找乐趣,做一些有趣的事情,增加财富和提高名声。

关 于 技 术 未 来

   当你谈及技术的未来时,真正有意义的是人们想要什么?一旦能够描绘出这一点,剩下的事情就是如何大规模地生产它,并使它足够便宜,以便人们能够在不牺牲另外也想要的东西的同时获得它。除此而外,没有任何事情真正有意义。

林纳斯无疑活成了大多数程序员该活成的样子,极度专注,淡泊名利,能够在自己喜欢的事业上耕耘成长。鸡仔也希望大家能够有幸,走出属于自己的路。希望林纳斯的故事对你有所启发

参考资料

1. https://www.cnblogs.com/vamei/p/6718942.html

2. https://itsfoss.com/linus-torvalds-facts/

3.https://zh.wikipedia.org/wiki/%E6%9E%97%E7%BA%B3%E6%96%AF%C2%B7%E6%89%98%E7%93%A6%E5%85%B9

4. https://www.cio.com/article/2973995/linus-torvalds-security-is-never-going-to-be-perfect.html

5. https://www.zdnet.com/article/even-linus-torvalds-doesnt-completely-understand-the-linux-kernel/

6. https://www.infoq.cn/article/2017/07/Linus-Torvalds-no-Linux

7. https://www.cnblogs.com/vamei/p/6718942.html

8. https://blog.csdn.net/chao199512/article/details/79846043

9. http://www.ruanyifeng.com/blog/2012/09/linus_torvalds.html


640

推荐阅读

1、影响 Linux 发展的四位天才黑客

2、你有一份2019运维技能风向标,请查收~

3、如何在 Saltstack 组件下收集被控主机的信息?

4、10分钟带你搞定 Linux awk命令

5、程序猿:“合格”与“不合格”的差距

6、Linux 性能监控、测试、优化工具

7、聊聊 Linux 的匿名管道

8、5 种方法查看当前系统登录的用户信息

9、“帮我调试个bug好么” 12星座程序猿的反应...

640?wx_fmt=jpeg

这篇关于他 11 岁学习编程,21 岁开发出 Linux 操作系统,拒绝乔布斯的 offer,活出了程序员该成为的样子...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/777304

相关文章

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用

Oracle数据库定时备份脚本方式(Linux)

《Oracle数据库定时备份脚本方式(Linux)》文章介绍Oracle数据库自动备份方案,包含主机备份传输与备机解压导入流程,强调需提前全量删除原库数据避免报错,并需配置无密传输、定时任务及验证脚本... 目录说明主机脚本备机上自动导库脚本整个自动备份oracle数据库的过程(建议全程用root用户)总结

Linux如何查看文件权限的命令

《Linux如何查看文件权限的命令》Linux中使用ls-R命令递归查看指定目录及子目录下所有文件和文件夹的权限信息,以列表形式展示权限位、所有者、组等详细内容... 目录linux China编程查看文件权限命令输出结果示例这里是查看tomcat文件夹总结Linux 查看文件权限命令ls -l 文件或文件夹

idea的终端(Terminal)cmd的命令换成linux的命令详解

《idea的终端(Terminal)cmd的命令换成linux的命令详解》本文介绍IDEA配置Git的步骤:安装Git、修改终端设置并重启IDEA,强调顺序,作为个人经验分享,希望提供参考并支持脚本之... 目录一编程、设置前二、前置条件三、android设置四、设置后总结一、php设置前二、前置条件

PyQt5 GUI 开发的基础知识

《PyQt5GUI开发的基础知识》Qt是一个跨平台的C++图形用户界面开发框架,支持GUI和非GUI程序开发,本文介绍了使用PyQt5进行界面开发的基础知识,包括创建简单窗口、常用控件、窗口属性设... 目录简介第一个PyQt程序最常用的三个功能模块控件QPushButton(按钮)控件QLable(纯文本

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

Linux系统之lvcreate命令使用解读

《Linux系统之lvcreate命令使用解读》lvcreate是LVM中创建逻辑卷的核心命令,支持线性、条带化、RAID、镜像、快照、瘦池和缓存池等多种类型,实现灵活存储资源管理,需注意空间分配、R... 目录lvcreate命令详解一、命令概述二、语法格式三、核心功能四、选项详解五、使用示例1. 创建逻

Linux下在线安装启动VNC教程

《Linux下在线安装启动VNC教程》本文指导在CentOS7上在线安装VNC,包含安装、配置密码、启动/停止、清理重启步骤及注意事项,强调需安装VNC桌面以避免黑屏,并解决端口冲突和目录权限问题... 目录描述安装VNC安装 VNC 桌面可能遇到的问题总结描js述linux中的VNC就类似于Window

linux下shell脚本启动jar包实现过程

《linux下shell脚本启动jar包实现过程》确保APP_NAME和LOG_FILE位于目录内,首次启动前需手动创建log文件夹,否则报错,此为个人经验,供参考,欢迎支持脚本之家... 目录linux下shell脚本启动jar包样例1样例2总结linux下shell脚本启动jar包样例1#!/bin

Linux之platform平台设备驱动详解

《Linux之platform平台设备驱动详解》Linux设备驱动模型中,Platform总线作为虚拟总线统一管理无物理总线依赖的嵌入式设备,通过platform_driver和platform_de... 目录platform驱动注册platform设备注册设备树Platform驱动和设备的关系总结在 l