忘记密码   免费注册 查看新帖 | 论坛精华区

ChinaUnix.net

  平台 论坛 博客 认证专区 大话IT HPC论坛 徽章 文库 沙龙 自测 下载 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
12345下一页
最近访问板块 发新帖
查看: 9050 | 回复: 40

[其他] 内核开发的前途在什么地方,发展方向有哪些? [复制链接]

论坛徽章:
2
2016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之广夏
日期:2016-12-07 08:32:11
发表于 2015-11-25 22:34 |显示全部楼层
本帖最后由 剑魂箫心 于 2016-11-16 09:00 编辑

2016年11月16日更新:
这篇帖子是我大四上学期找工作时发布的,距今已有一年,现在我从事的工作虽然和内核没什么关系,但是我依然在业余时间继续学习内核,跨过了0.12内核,学过了2.4内核的内存管理,现在借着2.6内核的书在研究4.4.30内核的MM子系统。时至今日,我依然是一个菜鸟,我想一定有很多内核学习者在学习的道路上踽踽独行、苦苦摸索,内核开发的速度越来越快,内核文档少之又少,几乎所有的资料都被时代远远地抛在后面,入门内核开发的难度越来越大,如果能在这条道路上得到各位高手、前辈的指点,不管是关于职业生涯还是关于技术路线,我们都将感激不尽!

-----------------------------------------------
以下是原贴:
-----------------------------------------------

我现在是一名大四学生,专业学的是软件工程,已经基本看完了《Linux 0.12内核完全剖析》这本书,但是这本书与现在内核差异比较大,现在也编译过2.4内核(毛德操先生的书中所用内核),但是毛德操先生的书也是比较厚,所以在开始研究之前先来请教下各位先辈。

在今年校招时我也是一心想做内核,但是无奈各大企业这方面招的人太少,移动、前端、Java岗位那么多,内核岗位根本找不到,即使有,那也是研究生岗位。曾经兴致冲冲去投了360的Linux内核工程师,结果做的笔试题全是Windows内核,至今不明白咋回事。

目前拒掉了一份深圳8000的offer,因为工作内容是机顶盒C/C++语言开发,想了想还是喜欢内核相关,又获得了一份与操作系统有关的offer,公司名就不说了,工资加上补贴有点低,也就5000吧,毕竟是二线城市,已经签了。我很想去红帽,可惜他不收应届生。现在在我看来,研究内核似乎并没有很大的出路,无非是为系统编程增加了点基础而已。我确实喜欢内核,但是在工资薪水面前还是有点不甘心,毕竟同学做前端的做移动的都那么高,所以我在想是不是应该向Linux系统编程发展一下,学学C++,学学服务器编程,毕竟生存乃是大事......

希望各位大侠能够根据自己的职业经历给点指导,小弟感激不尽。

论坛徽章:
20
丑牛
日期:2014-08-15 14:32:002017金鸡报晓
日期:2017-02-08 10:39:42黑曼巴
日期:2016-11-15 15:48:38CU十四周年纪念徽章
日期:2016-11-09 13:19:1015-16赛季CBA联赛之同曦
日期:2016-04-08 18:00:03平安夜徽章
日期:2015-12-26 00:06:30程序设计版块每日发帖之星
日期:2015-12-03 06:20:002015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-08-09 06:20:002015亚冠之吉达阿赫利
日期:2015-07-03 08:39:422015亚冠之西悉尼流浪者
日期:2015-05-15 10:16:372015年亚洲杯之阿曼
日期:2015-04-09 16:23:11
发表于 2015-11-26 09:10 |显示全部楼层
很多人都是这么迷茫,徘徊过来的。说说我自己的一些理解。

最近常想计算机是什么东西,计算机其实就是一个解决问题的工具。计算机包括硬件,软件。对于许多固定的问题寻求一种解决方法,可以调整的点很多,可能会设计专用芯片,可能会在软件上进行设计。而操作系统就是一个为了方便解决问题提供的一种通用平台。归根结底,kernel 只是为了服务其他软件的一种基础软件。所以可想,为什么做应用的公司这么多,而做 kernel 的公司很少。
kernel 的门槛很高。做 kernel 的工程师不像一个程序员,反而像一个学习系统架构的人。大部分人只是改改defconfig,dts文件,或者在某一个模块加几行代码。更多的时间是去弄懂一个子系统的工作原理。
kernel很多特性都是出于用户的需求而增加的,即在一个应用中,有些东西在userspace不能做了,那么在kernel中增加相关的支持。所以我认为,一个Linux Kernel工程师首先就要会进行系统编程。例如,如果如果研究调度,至少需要明白 user space 进程需要哪些管理机制吧。我看了不少 kernel 的大牛都有一些其他运行在 user space 的软件作品。
当然要写出优秀的软件,还是必须理解 kernel 的工作原理的。我有点倾向于把 kernel 当作和 算法 一样的课程,当作对自己提升功力的必修课,而不是专注在kernel上。到了对计算机理解到一定层次,想做什么就做什么。多注意平时的编程锻炼,多写代码。编程这事光看代码是不够的,之前也有说了,搞kernel是很少会有自己操刀的时候的,门槛太高,而且让一个新手来重构大牛的代码想想也是不可能。所以我认为在学习kernel 的同时,可以做一些user space的开源项目,不要把编程能力落下。还有一种可能就是,你进入了搞kernel 社区中feature的公司,有mentor手把手带你怎么搞kernel,例如先分派一些简单的改函数名字,移除废弃接口。如果有这些的机会那是最好的了。
对于做kernel的公司,二线城市肯定是不行的。只有大城市才有好的机会,一部分是芯片公司,专注点有体系架构,性能功耗;有些是网络公司,做虚拟化,安全,文件系统之类的。至于芯片的下游公司做的大都是驱动集成。
因为kernel是非常好的一个开源项目,里面问题很少。一般的公司都没有能力去改里面核心的东西。国内好像intel/ibm做的挺好的

论坛徽章:
170
15-16赛季CBA联赛之福建
日期:2017-05-11 14:36:15综合交流区版块每日发帖之星
日期:2016-07-24 06:20:00综合交流区版块每日发帖之星
日期:2016-07-23 06:20:00每日论坛发贴之星
日期:2016-07-18 06:20:00综合交流区版块每日发帖之星
日期:2016-07-18 06:20:00每日论坛发贴之星
日期:2016-07-16 06:20:00综合交流区版块每日发帖之星
日期:2016-07-16 06:20:00综合交流区版块每日发帖之星
日期:2016-07-11 06:20:00每日论坛发贴之星
日期:2016-07-09 06:20:00综合交流区版块每日发帖之星
日期:2016-07-09 06:20:00综合交流区版块每日发帖之星
日期:2016-07-08 06:20:00每日论坛发贴之星
日期:2016-07-24 06:20:00
发表于 2015-11-26 09:43 |显示全部楼层
楼主大黄小号  

求职 : 通讯/电信开
论坛徽章:
2
2015亚冠之鹿岛鹿角
日期:2015-07-08 11:58:2615-16赛季CBA联赛之佛山
日期:2015-12-21 17:28:04
发表于 2015-11-26 09:46 |显示全部楼层
同样很疑惑啊。我从大四保研开始就跟着实验室做无线网卡的ath9k驱动的研究,还完成了一个小小的项目。两年里面我研究了具体是怎么MAC层是怎么封装成帧,驱动层是怎么设置传输参数,数据帧,beacon帧,探测帧,认证帧的发送与接收流程及其功能等等。
在科研中遇到过很多问题,如浩如烟海的代码,往往一个函数被几十个函数调用,一个函数也是往往调用几十个函数,怎么debug,无法连接等等问题,最后也终于解决了。我师姐的博士论文中有一个章节的实验部分都是用我的数据完成的,也是蛮有成就感的。
到了今年九月份师兄找工作的时候,发现几乎没公司招收linux内核开发,更不必说无线网卡驱动这一块了,对应届生的要求基本就是算法,感觉自己学的在工作中好没用啊,不禁茫然了。
好茫然啊,求大神指导。。。

论坛徽章:
129
操作系统版块每日发帖之星
日期:2016-05-11 17:06:57操作系统版块每日发帖之星
日期:2016-05-11 17:06:57数据库技术版块每日发帖之星
日期:2016-05-11 17:07:05操作系统版块每日发帖之星
日期:2016-05-11 17:06:57操作系统版块每日发帖之星
日期:2016-05-11 17:06:57综合交流区版块每日发帖之星
日期:2016-05-11 17:07:052022北京冬奥会纪念版徽章
日期:2015-08-07 17:10:57IT运维版块每日发帖之星
日期:2016-05-11 17:06:49操作系统版块每日发帖之星
日期:2016-05-11 17:06:57综合交流区版块每日发帖之星
日期:2016-05-11 17:07:05操作系统版块每日发帖之星
日期:2016-05-11 17:06:57程序设计版块每日发帖之星
日期:2016-05-11 17:06:57
发表于 2015-11-26 10:45 来自手机 |显示全部楼层
神信息都是哪里挖掘的啊

论坛徽章:
2
2016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之广夏
日期:2016-12-07 08:32:11
发表于 2015-11-26 11:20 |显示全部楼层
本帖最后由 剑魂箫心 于 2015-11-26 11:21 编辑

回复 2# amarant


    是极,我当初想学这个是因为看Linux C语言开发的书中有很多函数不知道内部原理,用起来有点晕,所以想看看内核了解一下,结果这一看就是一年,其实才懂了点皮毛。看来内核不能急功近利,要通过进行Linux系统编程逐渐深入。其实我现在的公司也是围绕内核做上层应用开发,能真正在内核上动手的公司恐怕只有红帽、Intel这类的了。我要时刻准备好向北京进军。。。
    多谢版主老大回复

论坛徽章:
2
2016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之广夏
日期:2016-12-07 08:32:11
发表于 2015-11-26 11:21 |显示全部楼层
回复 3# yoyosys


    哪有。。。我就这一个号

论坛徽章:
2
2016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之广夏
日期:2016-12-07 08:32:11
发表于 2015-11-26 11:24 |显示全部楼层
回复 4# 九阳神功爱喝茶


    你这个研究的也的确是太深入了,感觉你这个应该算是硬件通信范畴了,软件公司和互联网公司需求量不大,也许手机公司会需要一些,比如小米这类。

论坛徽章:
2
2016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之广夏
日期:2016-12-07 08:32:11
发表于 2015-11-26 11:25 |显示全部楼层
本帖最后由 剑魂箫心 于 2015-11-26 11:25 编辑

回复 5# shang2010


    什么意思啊 ?

求职 : 通讯/电信开
论坛徽章:
2
2015亚冠之鹿岛鹿角
日期:2015-07-08 11:58:2615-16赛季CBA联赛之佛山
日期:2015-12-21 17:28:04
发表于 2015-11-26 14:19 |显示全部楼层
研究生都这样,学的东西不一定在工作中有用,没让去弄仿真已经是够好的了回复 8# 剑魂箫心


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

本版积分规则

SACC2017购票8.8折优惠进行时

2017中国系统架构师大会(SACC2017)将于10月19-21日在北京新云南皇冠假日酒店震撼来袭。今年,大会以“云智未来”为主题,云集国内外顶级专家,围绕云计算、人工智能、大数据、移动互联网、产业应用等热点领域展开技术探讨与交流。本届大会共设置2大主会场,18个技术专场;邀请来自互联网、金融、制造业、电商等多个领域,100余位技术专家及行业领袖来分享他们的经验;并将吸引4000+人次的系统运维、架构师及IT决策人士参会,为他们提供最具价值的交流平台。
----------------------------------------
优惠时间:2017年8月2日前

活动链接>>
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802020122
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP