Linux内核工程师是怎么步入内核殿堂的?
上图是公众号冠名参加的篮球赛
对我来说,要搞好Linux内核,首先要做的就是买一块Linux开发板,然后就使劲捣鼓。下面是一位大神对于入门Linux内核的看法。
以下的「我」不是公众号作者
=====
作者:Coly Li
https://www.zhihu.com/question/304179651/answer/545396428
步入殿堂,我的理解就是自己能靠这手艺养活自己,不仅饿不死,还有碗饱饭吃。对于资质平平的普通人来说,这也不难,就是坚持和时间的问题。大家看到的高手都是聪明人,他们不做内核开发做其他工作也会是很牛X,我们这些普通人之所以说要坚持和时间,是因为我们不管做什么事情,能有口饱饭吃都得靠坚持和时间。
内核开发也是写软件代码,和其他的软件代码开发工作没啥区别:创造有人用的代码。这就是一份工作,把工作做好,领薪水买米面油气交房前。可能不同的是内核软件没有用户界面,普通用户没法直接看到效果。
这份工作的好处是稳定和灵活,因为市场上工作岗位数量远远超过从事内核开发的聪明人,所以普通人如果能够达到基本的工作要求,也可以得到一份稳定而且灵活的工作。
稳定是指,薪水比较稳定,岗位也比较稳定,不会出现短期内快速加薪升职的情况。灵活是指,有很多此类岗位是可以提供远程办公的,所以如果不强求留在北上广深,而是回到老家和家里人一起生活,找一个彼此相爱的人厮守,这份薪水可以在当地过上娇纵淫欲的生活妥妥没问题。此外,只要能完成工作,时间都是自己安排的。如果真想做内核开发(其实绝大多数人并不感兴趣),这种氛围还是很有助于能力的成长的。
聪明人的例子就不说了,扎心。大家分享一下我自己这个普通人是如何走上做内核开发这条路,还至今没有饿死的。
我是97年上的大学,学校比较一般,刚入学的时候我满脑子想的是如何毕业之后和老家亲戚们一起经营农村土特产。大概是大二下学期有一次在图书馆看书,无意中看到了一本介绍Linux的薄书,作者写的很有意思,我居然就在图书馆一直看到很晚把那本书给看完了。然后我就决定,要去找Linux来玩玩。当时学校的机房里还没有Linux,我自己也没有电脑,只能是残念了。后来大三暑假我去了一家叫美商网虎的Linux公司实习,算是真正接触了这个系统,感觉很酷。关键是编程也是黑屏幕和我学DOS编程的环境很像,上手很顺利,呵呵。再后来就是在沈树镛教授指导下,在学校计算中心开课跟大家介绍这个系统的使用,自己也利用计算中心的网络环境和设备环境,很深入的了解了这个系统的使用和配置,以及基本的编程概念。
然后就开始进去了学习Linux内核编程的大坑,哈哈,什么不懂学什么,一转眼就十几年过去了。从驱动开始做起,然后做应用,然后做系统管理工具,然后做文件系统,然后去互联网公司做了几年工程管理,现在又回到一线岗位继续做Linux内核开发。
一眨眼,从我98年第一次知道Linux到现在,已经20年过去了。现在还能依然靠开发Linux内核养家糊口,还把自己吃成了胖子,我觉得已经蛮开心了。如果把这种状态称之为步入殿堂的哈,可能最重要的一条就是不要放弃自己。Linux内核代码是由一群优秀的工程师开发的,里面还会尝尝夹杂很多其它领域专业知识。普通开发者(譬如我)看不懂或者需要学习其它知识是家常便饭,时时会觉得自己和其他开发者比起来简直就是一头蠢猪,做这一行完全不适合没出路。这种感觉会经常冒出来 然而,对于系统软件开发的喜爱是由心而生的,随着越来越深入,我也么逐渐接受了自己没有预期那么优秀的现实,并鼓励自己蠢也不妨碍我喜欢这个技术
做Linux内核开发和其他软件开发差别不太大,要做到优秀都是要付出努力的,没什么高低之分。这毕竟只是一份工作,要认真对待,但它也不是生活的全部。作为一个工程师,一个中国人,如果通过参与这个技术,从很具体的细节做起,让生活更美好,让世界更美好,让我们彼此之间更和谐,这是很有乐趣的事情,也是我认识的很多比我优秀的多的内核开发者们发自内心的动力。
上图右一胖子是本人。
系统软件开发,坦诚说并不适合绝大多数人,但如果有缘能够参与其中,养家糊口没问题的。如果有朋友觉得好难,或者好苦,只要你还喜欢就不要放弃。你不孤单,还有很多“蠢货”和你一样,一边挠头苦逼,一边傻乐傻笑。
推荐阅读: