了解最新公司動(dòng)態(tài)及行業(yè)資訊
上個(gè)月,Linus 正式發(fā)布了 Linux 5.0 的新版本。雖然版本號(hào)直接從 4 增加到了 5,但實(shí)際上是“故意操縱”,Linus 不喜歡顛覆號(hào)太大。
大版本升級(jí)是否意味著Linux內(nèi)核也發(fā)生了重大變化?
目前,Linux在物聯(lián)網(wǎng)、云計(jì)算、超級(jí)計(jì)算機(jī)、人工智能等領(lǐng)域發(fā)揮著越來越重要的作用,5G、邊緣計(jì)算等技術(shù)開始普及,技術(shù)創(chuàng)新將如何帶給Linux從業(yè)者。機(jī)遇與挑戰(zhàn)?作為一個(gè)“超級(jí)”的開源項(xiàng)目,雖然Linux一直在幕后,普通人也不是很熟悉,但作為開發(fā)者我們還是應(yīng)該注意的。
為此,我們邀請(qǐng)了資深的 Linux 內(nèi)核開發(fā)者 Uncle Uncle,共同探討 Linux 開發(fā)者的職業(yè)前景、Linux 的未來以及如何為 Linux 內(nèi)核貢獻(xiàn)代碼等話題。
以下是采訪內(nèi)容。
笨叔你好,我先自我介紹一下,和大家分享一下我最近在Linux內(nèi)核方面的工作。
大家好,我是笨叔。我目前在上海紫竹的一家芯片公司擔(dān)任FAE職位。FAE 是現(xiàn)場(chǎng)應(yīng)用工程師、技術(shù)支持工程師,負(fù)責(zé)客戶支持。
我從大學(xué)到現(xiàn)在已經(jīng)工作了 15 年,我的工作基本上與 Linux 相關(guān)。第一份工作恰好是客戶支持,在英特爾的移動(dòng)處理器如此受歡迎的時(shí)候,我們?yōu)樘幚砥鏖_發(fā)了開發(fā)板。在那之后,我還在研發(fā)工作了一段時(shí)間,現(xiàn)在我不得不回到FAE的老路線。
除了在工作中使用 Linux 內(nèi)核,我還利用業(yè)余時(shí)間寫書,錄制與 Linux 內(nèi)核相關(guān)的相關(guān)視頻。多年來我一直在思考一個(gè)問題:作為一個(gè)有興趣進(jìn)入Linux內(nèi)核領(lǐng)域的小伙伴,如何快速入門?最近剛剛發(fā)表了《Let's Run Linux * 》,分享了我在這個(gè)問題上的心得體會(huì)。您如何看待 Linux 開發(fā)人員多年來在 Linux 內(nèi)核領(lǐng)域的職業(yè)發(fā)展?
總體而言,Linux 開發(fā)人員在中國(guó)的職業(yè)道路非常光明。因?yàn)槌俗烂骖I(lǐng)域,Linux現(xiàn)在是操作系統(tǒng)的絕對(duì)霸主,國(guó)內(nèi)對(duì)Linux工作的需求也非常旺盛。
另一方面,自去年中興事件以來,國(guó)家對(duì)芯片和操作系統(tǒng)領(lǐng)域的關(guān)注度越來越高。盡管操作系統(tǒng)已經(jīng)開發(fā)多年,但目前還沒有完全內(nèi)部開發(fā)的通用操作系統(tǒng)。據(jù)了解,很多大公司都在秘密開發(fā)自己的操作系統(tǒng)。例如,據(jù)報(bào)道,華為一直在開發(fā)備份操作系統(tǒng)。
作為L(zhǎng)inux內(nèi)核的底層項(xiàng)目,Linux開發(fā)者的工作量比較少。主要有哪些?
Linux內(nèi)核有很多工作要做,這取決于公司和不同的工作。
比如現(xiàn)在的公司是云服務(wù)器提供商或者游戲廠商,部門是IT基礎(chǔ)設(shè)施部門,那么你的基本工作就是Linux運(yùn)維,也就是常說的“網(wǎng)絡(luò)管理”。
對(duì)于Linux運(yùn)維,業(yè)界也建立了評(píng)價(jià)標(biāo)準(zhǔn),大致分為初級(jí)、中級(jí)、高級(jí)三個(gè)等級(jí):
初學(xué)者:掌握主要Linux服務(wù)器發(fā)行版的安裝,如RHEL、RHEL;維護(hù)多臺(tái)服務(wù)器,熟悉常用 Linux 命令和 RHEL 常用服務(wù)。
中級(jí):精通SHELL腳本或語(yǔ)言,開發(fā)操作自動(dòng)化腳本。
高級(jí):了解有關(guān) Linux 內(nèi)核代碼的更多信息。了解模塊核心,根據(jù)企業(yè)需求優(yōu)化代碼層次。
在BAT、華為等公司的Linux運(yùn)維中,有很多Linux內(nèi)核專家對(duì)內(nèi)核的一些核心模塊,如內(nèi)存管理、文件系統(tǒng)、IO性能、虛擬化等有深入的認(rèn)識(shí)和了解。他們通常積極參與 Linux 社區(qū)的技術(shù)討論,并為 Linux 內(nèi)核提交許多補(bǔ)丁。這部分國(guó)內(nèi)阿里巴巴和華為做得最好。工資方面,主要運(yùn)維工資普遍較低,上述高級(jí)運(yùn)維基本都是百萬年薪入手。
除了 Linux 運(yùn)營(yíng)之外,還有另一類公司使用 Linux 構(gòu)建消費(fèi)類嵌入式產(chǎn)品、手機(jī)、可穿戴設(shè)備、IoT 和工業(yè)嵌入式產(chǎn)品。在中國(guó),這些公司恰好是Linux用戶社區(qū)的主力軍。
一般來說,這些公司有一個(gè)共同點(diǎn),那就是最終交付給客戶的都是產(chǎn)品,而Linux只是一個(gè)基礎(chǔ)平臺(tái)或載體。最終用戶可能甚至不知道該產(chǎn)品使用 Linux 內(nèi)核,但這并不妨礙他們需要大量的 Linux 開發(fā)人員——包括 Linux 內(nèi)核驅(qū)動(dòng)程序和 Linux 應(yīng)用程序開發(fā)人員。對(duì)于 Linux 內(nèi)核開發(fā)人員,該公司提供這些類型的工作,最大的工作需求是 Linux 驅(qū)動(dòng)程序開發(fā)工程師、測(cè)試工程師,其次是 Linux,最后是 Linux 內(nèi)核優(yōu)化工程師。此外,這些公司通常使用第三方芯片提供的解決方案,如MTK、TI等。芯片公司會(huì)提供一套可用的Linux板級(jí)開發(fā)板(BSP),其中包含參考項(xiàng)目BOM,驅(qū)動(dòng)程序和源代碼。然而,開發(fā)產(chǎn)品的公司通常會(huì)替換參考設(shè)計(jì)的外圍設(shè)備,一個(gè)是為了降低成本,另一個(gè)是為了使產(chǎn)品與眾不同。例如攝像頭、屏幕和 WiFi 芯片。因此,這些產(chǎn)品開發(fā)公司需要大量的Linux驅(qū)動(dòng)工程師進(jìn)行移植。
企業(yè)使用第三方芯片方案的另一個(gè)特點(diǎn)是,芯片企業(yè)提供的參考代碼僅提供,沒有經(jīng)過工業(yè)產(chǎn)品級(jí)復(fù)雜環(huán)境壓力測(cè)試和測(cè)試,需要企業(yè)自主開發(fā)產(chǎn)品。 . 所以他們也需要大量的 Linux 測(cè)試人員和開發(fā)人員。
最后,還有一類公司值得一提,即高通、英特爾、MTK、海思、展訊等芯片公司,它們對(duì)Linux內(nèi)核的底層開發(fā)者有著長(zhǎng)期的需求。要知道,開發(fā) SoC 不僅僅是開發(fā) SoC 相關(guān)的 Linux 驅(qū)動(dòng)程序。為了吸引客戶,芯片公司需要開發(fā)一個(gè)完整的解決方案,稱為 ,這涉及到許多 Linux 開發(fā)人員??梢酝瓿?。
這是 Linux 內(nèi)核的一部分,Linux 開發(fā)者經(jīng)常與社區(qū)保持密切聯(lián)系,但也優(yōu)先考慮較大的公司開發(fā)自己的驅(qū)動(dòng)程序提交給 Linux 內(nèi)核社區(qū)以獲得更好的支持。
有興趣為 Linux 內(nèi)核做貢獻(xiàn)的開發(fā)人員可以獲得哪些經(jīng)驗(yàn)分享或指導(dǎo)?
這是一個(gè)很好的目標(biāo)。我的建議是先熱愛這份工作。其次,不要急于為 Linux 內(nèi)核貢獻(xiàn)代碼,而應(yīng)該逐步實(shí)現(xiàn)自己的目標(biāo):
設(shè)備的驅(qū)動(dòng)比較簡(jiǎn)單,所以從你熟悉或感興趣的開始,嘗試從 Linux 社區(qū)閱讀最新的驅(qū)動(dòng)代碼。
看完代碼,可以嘗試調(diào)試代碼,探索一下可以修改的地方,比如編譯警告、代碼不合理等。
對(duì)于有問題的代碼it技術(shù)人員,您可以向社區(qū)提交自己的補(bǔ)丁,但請(qǐng)注意,在提交補(bǔ)丁之前,您應(yīng)該了解 Linux 社區(qū)的文化和 git 工具的使用。相關(guān)內(nèi)容在“運(yùn)行 Linux * 簡(jiǎn)介”中進(jìn)行了描述。如果你從未接觸過 Linux,它完全是白色的,所以從一個(gè) Linux 系統(tǒng)開始,比如說it技術(shù)人員,把它用作你的主要操作系統(tǒng)。
事實(shí)上,Linux內(nèi)核開發(fā)涉及多個(gè)領(lǐng)域的交叉,如C語(yǔ)言、匯編語(yǔ)言、操作系統(tǒng)和體系結(jié)構(gòu)。有興趣的同學(xué)可以逐點(diǎn)學(xué)習(xí)和提高。
Linux 內(nèi)核更新相對(duì)較快。是否需要在與社區(qū)一致的生產(chǎn)環(huán)境中保持進(jìn)度?升級(jí)時(shí)需要考慮哪些因素?
Linux 5.0 于上個(gè)月正式發(fā)布。整體變化不大,從 Linux 內(nèi)核 4.20 到 5.0 只是后期版本升級(jí)。Linus 本人表示,之所以直接升級(jí)主版本,是因?yàn)樗幌矚g非常大的顛覆號(hào)。他覺得自己的手腳都不算數(shù)。
至于版本節(jié)奏是否應(yīng)該與社區(qū)保持一致,我認(rèn)為這與產(chǎn)品選??擇有關(guān)。以云服務(wù)器提供商為例。他們通常使用 RHEL 或系統(tǒng),但現(xiàn)在最新的 7.6 使用 3.10 內(nèi)核。不建議升級(jí)到最新的 Linux 內(nèi)核,因?yàn)轱L(fēng)險(xiǎn)太大。
重要的是要知道,這些發(fā)行版中使用的 3.10 內(nèi)核已經(jīng)過紅帽大量 Linux 內(nèi)核工程師和測(cè)試人員的嚴(yán)格測(cè)試。這是一個(gè)相對(duì)可靠的版本。畢竟一般的公司缺乏這樣的實(shí)力。大家選擇紅帽的原因是相信紅帽在 Linux 社區(qū)中的實(shí)力和影響力。
所以,為了穩(wěn)定,最好跟著廠商的節(jié)奏升級(jí)。
另外,有些公司需要使用系統(tǒng)進(jìn)行產(chǎn)品開發(fā),這類公司一般都是跟版,或者使用芯片公司提供的BSP包版本進(jìn)行二次開發(fā),不會(huì)急于升級(jí)到最新版本的Linux內(nèi)核. .
如果開發(fā)者出于個(gè)人利益,想要將自己的個(gè)人開發(fā)環(huán)境升級(jí)到最新版本的內(nèi)核,那么這當(dāng)然不是問題。
24小時(shí)免費(fèi)咨詢
請(qǐng)輸入您的聯(lián)系電話,座機(jī)請(qǐng)加區(qū)號(hào)