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