加入收藏 | 设为首页 | 会员中心 | 我要投稿 威海站长网 (https://www.0631zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 移动互联 > 评测 > 正文

Linux 绝对霸主,Linux 开发者未来可期

发布时间:2019-04-20 02:55:43 所属栏目:评测 来源:局长
导读:Linus Torvalds 在上个月正式发布了 Linux Kernel 5.0 全新版本,版本号虽然直接从 4 升到了 5,但其实这只是 Linus 不喜欢子版本号太大的任性操作。 版本号大升级是否意味着 Linux 内核也发生了重大的变化? 目前 Linux 在物联网、云计算、超算、人工智能
副标题[/!--empirenews.page--]

Linux 绝对霸主,Linux 开发者未来可期

Linus Torvalds 在上个月正式发布了 Linux Kernel 5.0 全新版本,版本号虽然直接从 4 升到了 5,但其实这只是 Linus 不喜欢子版本号太大的“任性操作”。

版本号大升级是否意味着 Linux 内核也发生了重大的变化?

目前 Linux 在物联网、云计算、超算、人工智能等领域扮演着越来越重要的角色,诸如 5G、边缘计算等技术也开始逐渐铺开,技术的革新对 Linux 从业者又会带来怎样的机遇和挑战?作为一个“超级”开源项目,虽然 Linux 总是藏身幕后而不怎么为普通人熟知,但作为开发者的我们应保持对它的关注。

为此,我们邀请到了资深 Linux 内核开发者笨叔叔一起探讨关于 Linux 开发者的职业发展前景、Linux 未来发展,以及如何为 Linux 内核贡献代码等话题。

下面是采访内容整理。

笨叔叔您好,先自我介绍一下吧,顺便和大家分享下最近和 Linux 内核相关的工作

大家好,我是笨叔叔,目前在上海紫竹一家芯片公司担任 FAE 职位,FAE 就是 Field Application Engineer,技术支持工程师,负责客户支持工作。

我本人从大学毕业到现在工作已经有 15 个年头了,从事的工作基本都是和 Linux 相关。第一份工作恰好也是客户支持,当时 Intel 的 XScale 移动处理器十分热门,而我们做的正是 XScale 处理器的开发板。在这之后也曾投身过一段时间的研发工作,几经折腾现在又回到 FAE 的老本行。

平时除了在工作中会和 Linux 内核打交道以外,还会利用业余时间编写与 Linux 内核相关的书籍和录制相关视频。从业多年,也一直在思考一个问题:作为有志进入 Linux 内核领域的小伙伴,如何能快速入门?最近本人刚出版的《奔跑吧Linux内核 *入门篇》分享了我对于这个问题的一些心得和经验。

在 Linux 内核领域深耕多年,您认为 Linux 开发者的职业发展如何?

整体来看,Linux 开发者在中国的职业道路是十分光明的。因为除了桌面领域,Linux 现在称得上是操作系统的绝对霸主,国内对 Linux 职位的需求也很旺盛。

另外一方面,自从去年中兴事件发生后,国家对芯片和操作系统领域的重视程度越来越看重。操作系统虽然已发展多年,但目前还没有一款真正意义的完全自主研发的通用操作系统。据了解,很多大公司都在秘密自主研发操作系统,比如有消息称华为一直在研发操作系统以作备用。

Linux 内核作为底层项目,那么 Linux 开发者的工作是不是也比较偏底层,主要有哪些?

围绕 Linux 内核的工作有很多,取决于不同的公司和不同的工作岗位。

举例来说,如果就职的公司是云服务器厂商或者游戏厂商,而所在的部门是IT基础设施部门,那你的基本工作就是 Linux 运维,即大家俗称的「网管」。

对于 Linux 运维,业内也有约定俗成的评估标准,粗略分成初、中、高三个等级:

  • 初级:掌握主流 Linux 服务器发行版的安装,如 RHEL 和 CentOS 等;维护多台服务器,熟练掌握常用 Linux 命令和 RHEL 常见的服务。
  • 中级:熟练掌握 SHELL 脚本或 Python 语言,能为运维工作开发自动化脚本。
  • 高级:深入了解 Linux 内核代码。根据企业需求,深入了解内核的某个模块并进行代码级别的优化。

像 BAT 和华为等公司的 Linux 运维里面,就有不少 Linux 内核专家,他们对内核某些核心模块有深厚的理解和造诣,比如内存管理、文件系统、IO 性能以及虚拟化等。他们平时会积极参与 Linux 社区的技术讨论,并且也给 Linux 内核提交了很多补丁。这一块国内的阿里巴巴和华为做得最为出色。薪水方面,初级运维薪资普遍较低,而上面说到的高级运维,基本是百万年薪起步。

除了 Linux 运维,还有一类公司会利用 Linux 打造产品,比如消费级的嵌入式产品,手机、可穿戴设备、IoT 和工业嵌入式等。在中国,这类公司正好是 Linux 使用群体的主力军。

通常来说,这类公司都有一个共同点,那就是最终交付给客户的是一个产品,而 Linux 只是一个基础平台或者载体。最终用户可能甚至不知道这个产品使用了 Linux 内核,但这不妨碍他们需要大量的 Linux 开发者 —— 包括 Linux 内核驱动以及 Linux 应用程序开发人员。

对于 Linux 内核开发者来说,这些公司主要提供几类工作岗位,需求最大的岗位是 Linux 驱动开发工程师,其次是 Linux 测试工程师,最后是 Linux 内核优化工程师。此外,这些公司通常采用第三方芯片提供的方案,比如高通,MTK,TI 等。芯片公司会提供一套可用的 Linux 板级开发板(BSP),其中包含了参考方案的 BOM、驱动程序和源代码等。但通常研发产品的公司会替换参考设计的外围器件,一是为了降低成本,二是让产品差异化。比如摄像头、屏幕和 WiFi 芯片等。因此,这类做产品开发的公司需要大量的 Linux 驱动工程师进行移植工作。

使用第三方芯片方案的公司还有一个特点,由于芯片公司提供的参考代码仅仅是可用,并没有经过工业产品级别的压力测试和复杂环境的测试,而这方面工作恰好需要研发产品的公司独立完成,因此他们还需要大量的 Linux 测试人员和研发人员。

最后还有一类公司值得一提,那就是芯片公司,比如高通、Intel、MTK、海思和展讯等,他们对 Linux 内核底层开发人员长期都有大量的需求。要知道开发一款 SoC 不仅仅是开发和 SoC 相关的 Linux 驱动,为争取到客户,芯片公司还需要开发一整套解决方案,即所谓的 Turnkey Solution,其中涉及到的工作需要大量 Linux 底层开发人员参与才能完成。

这部分 Linux 开发人员通常和 Linux 内核社区紧密接触,而大公司也会优先把自己开发的驱动提交到 Linux 内核社区,以获取更好的支持。

对于有志为 Linux 内核贡献代码的开发者,有什么经验分享或指引?

这是一个很好的目标。我的建议是,首先要热爱这个工作。第二,不必抱着急于为 Linux 内核贡献代码的想法,而是采用循序渐进的方式实现目标:

  • 设备的驱动程序相对比较简单,所以不妨先从自己熟悉或者感兴趣的驱动程序开始着手,尝试阅读 Linux 社区最新的驱动代码。
  • 阅读代码之后,可以尝试对代码进行调试,发掘能修改的地方,比如编译警告、不合理的代码等。
  • 针对有问题的代码,可以向社区提交自己编写的补丁,不过要注意提交补丁之前,应学习熟悉 Linux 社区的文化,以及 git 工具的使用等。相关内容在《奔跑吧Linux内核*入门篇》中有介绍。

如果从未接触过 Linux,完完全全是小白状态,不妨先从自己动手安装 Linux 系统开始,比如 Ubuntu 等,并将其作为主力操作系统使用。

事实上,Linux 内核开发涉及到多领域的交叉,比如 C 语言、汇编语言、操作系统和架构。有兴趣的同学可以逐点学习和提高。

Linux 内核的更新比较快,生产环境要保持和社区一致的进度是否有必要,升级的话有哪些考虑的因素?

(编辑:威海站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读