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内核开发和其他软件开发差别不太大,要做到优秀都是要付出努力的,没什么高低之分。这毕竟只是一份工作,要认真对待,但它也不是生活的全部。作为一个工程师,一个中国人,如果通过参与这个技术,从很具体的细节做起,让生活更美好,让世界更美好,让我们彼此之间更和谐,这是很有乐趣的事情,也是我认识的很多比我优秀的多的内核开发者们发自内心的动力。

上图右一胖子是本人。

系统软件开发,坦诚说并不适合绝大多数人,但如果有缘能够参与其中,养家糊口没问题的。如果有朋友觉得好难,或者好苦,只要你还喜欢就不要放弃。你不孤单,还有很多“蠢货”和你一样,一边挠头苦逼,一边傻乐傻笑。


推荐阅读:

专辑|Linux文章汇总

专辑|程序人生

专辑|C语言

我的知识小密圈

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/465619.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

时间同步绝对是一个大问题

上图是加班看到的夜景假设A电脑时间和B电脑时间不同,当他们两个电脑的用户在使用电脑的时候就会存在问题,比如A电脑的用户说,我们下午5:00 去打球,然后A电脑到了5:00就去打球了,但是可能这个时候…

Window10彻底卸载应用商店

Window10如何彻底卸载应用商店?Window10应用商店就是一个应用下载平台,我们可以在应用商店中下载各种应用,但是很多用户并不喜欢在Window10应用商店中下载应用,觉得应用商店浪费内存,因此想将应用商店卸载掉&#xff0…

STM32F7xx —— QSPI

STM32F7xx —— QSPI 目录 STM32F7xx —— QSPI 一、QSPI 二、几个重要的函数 三、几个重要的结构 四、QSPI接口设计(仅供参考) 五、QSPI驱动W25Q256 一、QSPI SPI 是 Queued SPI 的简写,是 Motorola公司推出的 SPI 接口的扩展&#xf…

嵌入式、物联网常见通信协议

本文介绍一些常见的嵌入式、物联网通信协议,它们具有不同的性能、通信速率、覆盖范围、功率和内存,而且每一种协议都有各自的优点和或多或少的缺点。其中一些通信协议只适合小型家用电器,而其他一些通信协议则可以用于大型智慧城市项目。物联…

解决T400死机的问题!

终于解决这几天突然出现的t400 vista假死问题! 原来罪魁祸首是 ThinkPad -- Intel Matrix Storage Manager驱动程序(Windows XP/vista 32bit) 此更新在su自动更新里也有 千万别更新 如果不小心更新并出现偶尔假死(现象:鼠标能动,但是不能打开程序所有应用…

网络中路由器的工作原理

大家好,我是情报小哥!01路由器

C++学习(10)

1 //设计运算符重载的复数类2 #include<iostream.h>3 4 class Complex{5 private:6 double real;//实部7 double image;//虚部8 public:9 Complex(){ 10 real0; 11 image0; 12 } 13 Complex(do…

嵌入式真的没前途?

-上图是我的朋友邓总最近在互联网&#xff0c;然后从侧面了解了嵌入式的行业发展&#xff0c;嵌入式是离不开硬件的&#xff0c;但是硬件的话&#xff0c;又不只是靠硬件赚钱&#xff0c;如果硬件做不成一个产品&#xff0c;很难卖一个好价钱&#xff0c;就好比一个好的食材&am…

js for in 遍历对象与数组

遍历对象 let obj {q:9,w:5,e:2,t:7,c:3}//for in 遍历对象 key为对象的属性名称,遍历属性值时用[]操作符访问//通过[]操作符为对象添加属性或访问属性时&#xff0c;属性名称可以是任何字符串。for (let key in obj) {console.log(obj的key:,key, obj的value:,obj[key]);} …

前凸后翘的步进电机调速算法~

[导读] 大家好&#xff0c;我是逸珺。今天想分享一种超级实用的步进电机调速算法&#xff0c;这种算法在步进电机调速方案中可以说是一种非常优异的方案。梯形调速算法 为啥需要设计一个调速算法呢&#xff1f;步进电机不是给多少脉冲就动多少步吗&#xff1f;但是带上负载了就…

CentOS 7.3 系统安装配置图解教程

一、安装CentOS 7.3 CentOS 7.x系列只有64位系统&#xff0c;没有32位。生产服务器建议安装CentOS-7-x86_64-Minimal-1611.iso版本 成功引导系统后&#xff0c;会出现下面的界面 界面说明&#xff1a; Install CentOS 7 # 安装CentOS 7 Test this media & install CentOS …

朝花夕拾-不务正业的大学生做了什么比赛?

朝花夕拾&#xff0c;旧事重提之意。恰逢CSDN年终征文&#xff0c;所以写作本文为年终总结&#xff0c;实为大学四年的总结&#xff0c;和CSDN一起成长参与各类竞赛的回忆。四年里和小伙伴们一起辛苦奋斗做了那么多比赛&#xff0c;当比赛结束&#xff0c;那些作品便无人问津了…

我是在这里学到的Linux知识的

-上图是读者朋友圈照片&#xff0c;已咨询原创作者这是一个群友分享的学习资料&#xff0c;确实很棒。今天在上班&#xff0c;临近下班的时候&#xff0c;我到茶水间打水&#xff0c;当时下比较大的雨&#xff0c;从里面向外面看出去&#xff0c;看到蒙胧胧的一片&#xff0c;春…

c#字符型转化为asc_wap站 utf-8与 gb2312字符编码的转化函数

一般的wap站的编码都是<?xml version"1.0" encoding"utf-8"?>&#xff0c;所以用form 或者a 传递参数时会遇到乱码&#xff0c;在调用页面无法读取正确的中文字符&#xff0c;可以用一下的函数编译&#xff0c;转化成中文&#xff0c;然后调用Func…

Suct(一)

网址&#xff1a;https://github.com/ScutGame/Scut/wiki 优点&#xff1a;免费&#xff0c;教程多&#xff0c;又有Demo 贼好 【服务器框架层次结构图解】 &#xff08;好厉害~&#xff09; 【一、配置好 IIS Web 服务器】 1. 打开 控制面板 -> 程序和功能 -> 打开或关…

网校系统推荐eduline_网校系统的各项功能的用处

网校系统中有许多的子系统&#xff0c;其中众所周知也是相对重要的两个子系统&#xff0c;一个考试系统&#xff0c;一个直播系统&#xff0c;今天未来云校就来讲讲这两个子系统以及这两个子系统和网校系统的联系。在线模拟考试系统与网校系统大家都知道考试相对于学员、老师和…

学习 Linux/C/C++ 必备资料

在这个信息过载的时代&#xff0c;质量往往比数量更为重要&#xff01;接下来给你推荐的&#xff0c;是我私藏很久的几个有态度、有意思、有质量的优质公号。学习 Linux/C/C 必备&#xff01;快来关注&#xff0c;在这里看见另一种可能&#xff01;开发内功修炼公众号「开发内功…

emmc固件开发_UP2开发板简易开箱(二)

在 老狼 的x86开源硬件群里面抽中了一个UP2开发板&#xff0c;时间已经过去半年多了&#xff0c;实在惭愧&#xff0c;其中一部分原因是菜&#xff0c;菜是原罪。现接上一位抽中UP2的大佬 Jiaao Bai 的文章&#xff0c;本文就叫UP2开发板简易开箱&#xff08;二&#xff09;。一…

vue基础(学习官方文档)

基础 介绍 是什么 是一套用于构建用户界面的渐进式框架声明式渲染 <div id"app">{{ message }}</div>var app new Vue({el: #app,data: {message: Hello Vue!} })vue 实例 var vm new Vue({// 选项 })一个 Vue 应用由一个通过 new Vue 创建的根 Vue 实…

用GPIO口模拟串口通信,它真的来了

你是否遇到过某个MCU串口不够的情况&#xff1f; 这时我们可以考虑用GPIO去模拟&#xff0c;如何具体实现呢&#xff1f;首选我们需要了解串口的传输协议&#xff0c;UART使用异步模式工作&#xff0c;不需要时钟信号&#xff0c;其一般格式为&#xff1a;起始位数据位校验位停…