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