當(dāng)您打開(kāi)Linux內(nèi)核源代碼的maintainer文件,在里面搜索一個(gè)名字Jiaxun Yang,您會(huì)發(fā)現(xiàn),他是內(nèi)核多個(gè)模塊的maintainer:
您一定會(huì)以為L(zhǎng)inux內(nèi)核龍芯架構(gòu)的maintainer,是一位資深的年長(zhǎng)工程師。可是,接下來(lái)Linux閱碼場(chǎng)將向您揭曉的Jiaxun Yang的故事,可能會(huì)讓您目瞪口呆。
導(dǎo)
言
本期采訪對(duì)象:楊嘉勛,中國(guó)上海某高中應(yīng)屆畢業(yè)生,長(zhǎng)居于中國(guó)杭州。
當(dāng)Linux閱碼場(chǎng)聯(lián)系到嘉勛的時(shí)候,他正好走出高中校園,在完成自己的畢業(yè)旅行。
我們非常幸運(yùn)地采訪到了嘉勛,并希望通過(guò)分享嘉勛的Linux故事,激勵(lì)更多優(yōu)秀的人們積極投身操作系統(tǒng)的研發(fā)中來(lái),收獲技術(shù)的喜悅和人生的精彩。
1。 Linux閱碼場(chǎng):你是什么時(shí)候開(kāi)始接觸Linux(內(nèi)核)的?
嘉勛:
接觸Linux應(yīng)該是小學(xué)四五年級(jí)的時(shí)候,當(dāng)時(shí)沉迷于用虛擬機(jī)安裝各種操作系統(tǒng),偶然從網(wǎng)上了解到了Linux操作系統(tǒng),對(duì)其開(kāi)源開(kāi)放的模式感到好奇,于是下載安裝了Ubuntu。
后來(lái)越來(lái)越著迷,在理解了各種基本操作之后之后就把Linux安裝到筆記本上作為日用操作系統(tǒng),慢慢地積累了不少各種Linux知識(shí)。
后來(lái)初三的時(shí)候換了臺(tái)聯(lián)想的IdeaPad筆記本,當(dāng)時(shí)遇到無(wú)線網(wǎng)卡無(wú)法使用的問(wèn)題,研究了一段時(shí)間發(fā)現(xiàn)問(wèn)題的根源出在內(nèi)核rfkill組件。當(dāng)時(shí)在不少論壇QQ群求解都無(wú)人能回答,就打算自己啃這個(gè)硬骨頭,讀起了ideapad-laptop ACPI驅(qū)動(dòng)的代碼。
當(dāng)時(shí)我對(duì)C語(yǔ)言已經(jīng)有基本的掌握,但大量不理解的名詞與邏輯仍然是是攔路虎。差不多邊讀代碼邊搜索了一個(gè)月,慢慢理解了內(nèi)核驅(qū)動(dòng)的套路,做了一個(gè)patch并提交到upstream。
2. Linux閱碼場(chǎng):你怎么進(jìn)入Linux開(kāi)發(fā)的,為什么選擇這個(gè)?
嘉勛:
之后因?yàn)榕既坏臋C(jī)會(huì)搞到了一臺(tái)龍芯的機(jī)器,想裝Debian系統(tǒng),發(fā)現(xiàn)主線內(nèi)核對(duì)他的支持很差,于是就想著折騰折騰。這一折騰就深似海,一頭鉆進(jìn)去出不來(lái)了。各種寫驅(qū)動(dòng)抓debug交patch。
后來(lái)也因?yàn)樵谏鐓^(qū)的活動(dòng)得到了在龍芯生態(tài)里的企業(yè)航天龍夢(mèng)實(shí)習(xí)的機(jī)會(huì),在師傅陳華才博士的帶領(lǐng)下對(duì)Linux的理解深入了不少,一路繼續(xù)玩下去了。至于為什么選擇這個(gè),我覺(jué)得是Linux選擇了我~他有問(wèn)題需要我去解決。我也不是只做Linux開(kāi)發(fā),平時(shí)也會(huì)參與一些其他的開(kāi)源項(xiàng)目或者自己寫點(diǎn)小玩意玩。
3。 Linux閱碼場(chǎng):你在內(nèi)核領(lǐng)域,都做了哪些事情?
嘉勛:
X86各種平臺(tái)驅(qū)動(dòng)隨機(jī)修點(diǎn)問(wèn)題。MIPS這里也是隨機(jī)修修補(bǔ)補(bǔ),整理整理代碼,寫寫驅(qū)動(dòng),龍芯3A4000 CPU和7A1000橋片在上游的bring up,龍芯KVM的開(kāi)發(fā)和upstream。實(shí)習(xí)期間搞了龍芯7A1000的GPU驅(qū)動(dòng)和3A4000的睿頻機(jī)制,不過(guò)這樣那樣的原因?qū)嵙?xí)期間的工作沒(méi)能upstream。
4。 Linux閱碼場(chǎng):你做內(nèi)核開(kāi)發(fā)的成就感來(lái)自哪里?
嘉勛:
It works。別笑,單單是It works就能給我很大的成就感。我從小就對(duì)各種機(jī)械,各種工業(yè)產(chǎn)品很感興趣,據(jù)說(shuō)兩三歲的時(shí)候看著空調(diào)外機(jī)的風(fēng)扇轉(zhuǎn)動(dòng)就能發(fā)幾小時(shí)呆。
我一直希望成為一個(gè)去解決各種問(wèn)題,創(chuàng)造產(chǎn)品的工程師。內(nèi)核可以說(shuō)是軟件和硬件的邊界,我從內(nèi)核俯視可以看到盤根錯(cuò)節(jié)的電路構(gòu)建的硬件,仰望可以看到幾代人層層抽象刻畫的用戶態(tài)軟件,能為這對(duì)偉大的結(jié)晶構(gòu)建橋梁共同完成整個(gè)計(jì)算機(jī)系統(tǒng),我覺(jué)得很榮幸。
5. Linux閱碼場(chǎng):第一次提交patch的過(guò)程,對(duì)初學(xué)者有什么建議?
嘉勛:
因?yàn)槲沂荓oongson64的Maintainer,遇到first patch的機(jī)會(huì)還是挺多的,最近遇到的比較多的問(wèn)題是大家對(duì)于patch提交前檢測(cè)的流程不是很清楚。除了基本的功能性測(cè)試以及老生常談的checkpatch.pl之外有些子系統(tǒng)還會(huì)有額外的要求,比如涉及DeviceTree的make dt_binding_check。
建議大家在提交之前仔細(xì)閱讀一下內(nèi)核的文檔部分,除了子系統(tǒng)要求之外里面對(duì)于郵件客戶端的配置以及基本工作流程的介紹都還是很實(shí)用的。如果沒(méi)有時(shí)間壓力的話在提交第一個(gè)補(bǔ)丁之前翻閱一下子系統(tǒng)郵件列表的歷史信件也有助于快速搞清楚“潛規(guī)則”,避開(kāi)常見(jiàn)的坑。
6. Linux閱碼場(chǎng):未來(lái)有什么計(jì)劃?
嘉勛:
繼續(xù)上學(xué),繼續(xù)寫代碼玩電腦,如果以后能成為一個(gè)工程師參與一些激動(dòng)人心的項(xiàng)目那再好不過(guò)了。
Linux閱碼場(chǎng)隨后在Linux內(nèi)核源碼中發(fā)現(xiàn)了嘉勛的許多patch,最早地可以追溯到2017年。
Linux閱碼場(chǎng)無(wú)意分享任何勵(lì)志故事,更無(wú)意烹飪?nèi)魏涡撵`雞湯,我們只是希望讓更多的人們相信:“我能行”。我們同時(shí)也衷心地祝愿嘉勛同學(xué)在Linux這條路上越走越遠(yuǎn),收獲更多的“It works”。
編輯:jq
-
內(nèi)核
+關(guān)注
關(guān)注
3文章
1372瀏覽量
40282 -
Linux
+關(guān)注
關(guān)注
87文章
11296瀏覽量
209360 -
龍芯
+關(guān)注
關(guān)注
3文章
340瀏覽量
31245 -
計(jì)算機(jī)系統(tǒng)
+關(guān)注
關(guān)注
0文章
282瀏覽量
24107
原文標(biāo)題:一名上海高中生是如何成長(zhǎng)為L(zhǎng)inux內(nèi)核多個(gè)模塊的maintainer的?
文章出處:【微信號(hào):LinuxDev,微信公眾號(hào):Linux閱碼場(chǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論