0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

高中生也能成为Linux内核龙芯架构的maintainer!

Linux阅码场 来源:Linux阅码场 作者:Linux阅码场 2021-06-29 09:02 次阅读

当您打开Linux内核源代码的maintainer文件,在里面搜索一个名字Jiaxun Yang,您会发现,他是内核多个模块的maintainer:

4a0c6fce-d873-11eb-9e57-12bb97331649.png

4a16eaa8-d873-11eb-9e57-12bb97331649.png

您一定会以为Linux内核龙芯架构的maintainer,是一位资深的年长工程师。可是,接下来Linux阅码场将向您揭晓的Jiaxun Yang的故事,可能会让您目瞪口呆。

本期采访对象:杨嘉勋,中国上海某高中应届毕业生,长居于中国杭州。

当Linux阅码场联系到嘉勋的时候,他正好走出高中校园,在完成自己的毕业旅行。

我们非常幸运地采访到了嘉勋,并希望通过分享嘉勋的Linux故事,激励更多优秀的人们积极投身操作系统的研发中来,收获技术的喜悦和人生的精彩。

1。 Linux阅码场:你是什么时候开始接触Linux(内核)的?

嘉勋:

接触Linux应该是小学四五年级的时候,当时沉迷于用虚拟机安装各种操作系统,偶然从网上了解到了Linux操作系统,对其开源开放的模式感到好奇,于是下载安装了Ubuntu。

后来越来越着迷,在理解了各种基本操作之后之后就把Linux安装到笔记本上作为日用操作系统,慢慢地积累了不少各种Linux知识。

后来初三的时候换了台联想的IdeaPad笔记本,当时遇到无线网卡无法使用的问题,研究了一段时间发现问题的根源出在内核rfkill组件。当时在不少论坛QQ群求解都无人能回答,就打算自己啃这个硬骨头,读起了ideapad-laptop ACPI驱动的代码。

当时我对C语言已经有基本的掌握,但大量不理解的名词与逻辑仍然是是拦路虎。差不多边读代码边搜索了一个月,慢慢理解了内核驱动的套路,做了一个patch并提交到upstream。

2. Linux阅码场:你怎么进入Linux开发的,为什么选择这个?

嘉勋:

之后因为偶然的机会搞到了一台龙芯的机器,想装Debian系统,发现主线内核对他的支持很差,于是就想着折腾折腾。这一折腾就深似海,一头钻进去出不来了。各种写驱动抓debug交patch。

后来也因为在社区的活动得到了在龙芯生态里的企业航天龙梦实习的机会,在师傅陈华才博士的带领下对Linux的理解深入了不少,一路继续玩下去了。至于为什么选择这个,我觉得是Linux选择了我~他有问题需要我去解决。我也不是只做Linux开发,平时也会参与一些其他的开源项目或者自己写点小玩意玩。

3。 Linux阅码场:你在内核领域,都做了哪些事情?

嘉勋:

X86各种平台驱动随机修点问题。MIPS这里也是随机修修补补,整理整理代码,写写驱动,龙芯3A4000 CPU和7A1000桥片在上游的bring up,龙芯KVM的开发和upstream。实习期间搞了龙芯7A1000的GPU驱动和3A4000的睿频机制,不过这样那样的原因实习期间的工作没能upstream。

4。 Linux阅码场:你做内核开发的成就感来自哪里?

嘉勋:

It works。别笑,单单是It works就能给我很大的成就感。我从小就对各种机械,各种工业产品很感兴趣,据说两三岁的时候看着空调外机的风扇转动就能发几小时呆。

我一直希望成为一个去解决各种问题,创造产品的工程师。内核可以说是软件和硬件的边界,我从内核俯视可以看到盘根错节的电路构建的硬件,仰望可以看到几代人层层抽象刻画的用户态软件,能为这对伟大的结晶构建桥梁共同完成整个计算机系统,我觉得很荣幸。

5. Linux阅码场:第一次提交patch的过程,对初学者有什么建议?

嘉勋:

因为我是Loongson64的Maintainer,遇到first patch的机会还是挺多的,最近遇到的比较多的问题是大家对于patch提交前检测的流程不是很清楚。除了基本的功能性测试以及老生常谈的checkpatch.pl之外有些子系统还会有额外的要求,比如涉及DeviceTree的make dt_binding_check。

建议大家在提交之前仔细阅读一下内核的文档部分,除了子系统要求之外里面对于邮件客户端的配置以及基本工作流程的介绍都还是很实用的。如果没有时间压力的话在提交第一个补丁之前翻阅一下子系统邮件列表的历史信件也有助于快速搞清楚“潜规则”,避开常见的坑。

6. Linux阅码场:未来有什么计划?

嘉勋:

继续上学,继续写代码玩电脑,如果以后能成为一个工程师参与一些激动人心的项目那再好不过了。

Linux阅码场随后在Linux内核源码中发现了嘉勋的许多patch,最早地可以追溯到2017年。

Linux阅码场无意分享任何励志故事,更无意烹饪任何心灵鸡汤,我们只是希望让更多的人们相信:“我能行”。我们同时也衷心地祝愿嘉勋同学在Linux这条路上越走越远,收获更多的“It works”。

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 内核
    +关注

    关注

    3

    文章

    1316

    浏览量

    39952
  • Linux
    +关注

    关注

    87

    文章

    11031

    浏览量

    207283
  • 龙芯
    +关注

    关注

    2

    文章

    315

    浏览量

    30970
  • 计算机系统
    +关注

    关注

    0

    文章

    222

    浏览量

    23958

原文标题:一名上海高中生是如何成长为Linux内核多个模块的maintainer的?

文章出处:【微信号:LinuxDev,微信公众号:Linux阅码场】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    欢创播报 华为宣布鸿蒙内核已超越Linux内核

    1 华为宣布鸿蒙内核已超越Linux内核   6月21日,在华为开发者大会上, HarmonyOS NEXT(鸿蒙NEXT)——真正独立于安卓和iOS的鸿蒙操作系统,正式登场。这是HarmonyOS
    的头像 发表于 06-27 11:30 376次阅读

    龙芯CPU统一系统架构规范及参考设计下载

    *附件:LoongArch 系统调用(syscall)ABI.pdf *附件:龙芯 CPU 统一系统架构规范(适用于 LA 架构通用 PC、服务器系列)-v4.1.0.pdf *附件:龙芯
    发表于 06-20 14:42

    龙芯2K0300蜂鸟板支持OpenHarmony 4.0 Release版本操作系统

    接口和一个40Pin的扩展接口,可以提供丰富且强大的外设控制能力。 龙芯2K0300蜂鸟板在软件方面采用uBoot启动界面和Linux内核,适配了Buildroot、OpenWrt
    发表于 06-20 10:02

    广东龙芯发布2K0300蜂鸟板,今日正式发售

    个40Pin的扩展接口,可以提供丰富且强大的外设控制能力。 龙芯2K0300蜂鸟板在软件方面采用uBoot启动界面和Linux内核,适配了Buildroot、OpenWrt和OpenHarmony
    发表于 06-20 10:00

    全国大学生计算机系统能力大赛操作系统设计赛-LoongArch 赛道广东龙芯2K1000LA 平台资料分享

    本项目是用于兰州大学的教学操作系统,兰州大学相关团队为其编写了教材《MaQueOS:基于龙芯LoongArch架构的教学版操作系统》。 Yocto. Yocto是用于定制嵌入式Linux系统
    发表于 02-04 15:37

    rk3399移植Linux内核

    Linux内核移植到RK3399上。 首先,我们需要了解RK3399的硬件架构和特性。RK3399采用的是ARM架构,具有双核Cortex-A72和四核Cortex-A53处理器,支持
    的头像 发表于 01-08 09:56 586次阅读

    Linux内核内存管理架构解析

    内存管理子系统可能是linux内核中最为复杂的一个子系统,其支持的功能需求众多,如页面映射、页面分配、页面回收、页面交换、冷热页面、紧急页面、页面碎片管理、页面缓存、页面统计等,而且对性能也有很高
    的头像 发表于 01-04 09:24 426次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>内核</b>内存管理<b class='flag-5'>架构</b>解析

    获取Linux内核源码的方法

    (ELF1/ELF1S开发板及显示屏)Linux内核是操作系统中最核心的部分,它负责管理计算机硬件资源,并提供对应用程序和其他系统组件的访问接口,控制着计算机的内存、处理器、设备驱动程序和文件系统等
    的头像 发表于 12-13 09:49 378次阅读
    获取<b class='flag-5'>Linux</b><b class='flag-5'>内核</b>源码的方法

    SELinux内核架构

    SELinux可作为可加载的安全模块运行。 LSM是一个底层的安全策略框架,Linux系统利用LSM管理所有的系统调用。SELinux通过LSM框架整合到Linux内核中。 当用户进程执行系统调用
    的头像 发表于 10-31 14:50 339次阅读
    SELinux<b class='flag-5'>内核</b><b class='flag-5'>架构</b>

    AVR单片机为何能成为8位机中的佼佼者?

    AVR单片机为何能成为8位机中的佼佼者? AVR单片机是一种高性能、低功耗、高可靠性、方便编程的微控制器。它可以广泛应用于消费电子、汽车电子、通信、医疗、工业自动化等领域。为什么AVR单片机能成为8
    的头像 发表于 10-29 17:29 505次阅读

    玩转单片机的重要功能-DMA,你的MCU编程设计有可能成为卷王!

    玩转单片机的重要功能-DMA,你的MCU编程设计有可能成为卷王!
    的头像 发表于 09-18 10:56 1599次阅读
    玩转单片机的重要功能-DMA,你的MCU编程设计有可<b class='flag-5'>能成为</b>卷王!

    linux内核源代码详解

     在安装好的Linux系统中,内核的源代码位于/ust/src/linux.如果是从GNU网站下载的Linux内核的tar文件,则展开以后在
    发表于 09-06 17:01 3次下载

    Linux内核如何使用结构体和函数指针?

    我将结合具体的Linux内核驱动框架代码来展示Linux内核如何使用结构体和函数指针。
    的头像 发表于 09-06 14:17 665次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>内核</b>如何使用结构体和函数指针?

    Linux内核的编译主要过程

    Linux内核的编译主要过程: 配置、编译、安装 。
    发表于 08-08 16:02 563次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>内核</b>的编译主要过程

    万千设备,linux内核如何知道?

    linux内核设备的注册由device_register()函数完成,这个函数是linux设备驱动模型的核心函数
    的头像 发表于 07-12 08:52 604次阅读
    万千设备,<b class='flag-5'>linux</b><b class='flag-5'>内核</b>如何知道?