他 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

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

闲置电脑也能活出第二春?鲁大师AiNAS让你动动手指就能轻松部署

对于大多数人而言,在这个“数据爆炸”的时代或多或少都遇到过存储告急的情况,这使得“存储焦虑”不再是个别现象,而将会是随着软件的不断臃肿而越来越普遍的情况。从不少手机厂商都开始将存储上限提升至1TB可以见得,我们似乎正处在互联网信息飞速增长的阶段,对于存储的需求也将会不断扩大。对于苹果用户而言,这一问题愈发严峻,毕竟512GB和1TB版本的iPhone可不是人人都消费得起的,因此成熟的外置存储方案开

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

linux-基础知识3

打包和压缩 zip 安装zip软件包 yum -y install zip unzip 压缩打包命令: zip -q -r -d -u 压缩包文件名 目录和文件名列表 -q:不显示命令执行过程-r:递归处理,打包各级子目录和文件-u:把文件增加/替换到压缩包中-d:从压缩包中删除指定的文件 解压:unzip 压缩包名 打包文件 把压缩包从服务器下载到本地 把压缩包上传到服务器(zip

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设