維護嵌入式 Linux 核心 So Easy

2021-07-27 19:19:41 字數 2154 閱讀 9744

pengutronix 核心黑客 jan lübbe 總結了嵌入式 linux 中正在不斷增長的安全威脅,並在這次歐洲嵌入式 linux 會議上概述了乙個計畫,以保持長期裝置的安全和功能完整。

安全漏洞只發生在 windows 上的好日子正在快速過去。惡意軟體黑客和拒絕服務老手們正在越來越多地瞄準過時的嵌入式 linux 裝置,因此在 10 月的歐洲嵌入式 linux 會議(elce)上的幾個演講的主題就與修復 linux 安全漏洞相關。

最值得去聽的講演之一是 pengutronix 核心黑客 jan lübbe 的《長期維護或管理(或免管理)嵌入式系統 10 年以上》。在總結嵌入式 linux 中不斷增長的安全威脅後,lübbe 制定了一項計畫,以確保長期裝置的安全和功能完整。 lübbe 說:「我們需要遷移到更新、更穩定的核心,並進行持續維護以修復關鍵漏洞。我們需要做上游更新和自動化流程,並建立乙個可持續的工作流程。我們沒有理由讓系統中仍留有過時的軟體。」

隨著 linux 裝置變得越來越老,傳統的生命週期過程已經不再適用。 lübbe 說:「通常,你會從 soc **商或主線上獲取核心、構建系統,並新增到使用者空間。你可以定製和新增程式,並做一些測試。但是,在此之後有 15 年的維護階段,你最好期望平台不會發生變化、不會想要新增新的功能、不需要實施管理調整。」

所有這些變化,越來越多地導致你的系統暴露出新的錯誤,並需要大量更新以才能與上游軟體保持同步。 lübbe 說:「在核心中發生導致問題的錯誤並不總是無意的」。對於去年在 allwinner 核心中發現的後門,他又補充說:「這些**商的核心從來不會執行主線核心社群的審查流程」。

lübbe 繼續說:「你不能認為你的**商一直沒問題。也許只有一兩個工程師檢視過後門**這塊。如果補丁發布在 linux 核心郵件列表上,就不會有這種事,因為總會有人注意到。硬體**商不關心安全或維護,也許你會在一兩年後得到更新,但是即使這樣,他們從乙個固定版本開始開發,到他們發布穩定的版本通常需要幾年的時間。如果你在這個基礎上再開始開發,可能又過了半年,這就更過時了。」

越來越多的嵌入式開發人員在長期穩定(lts)核心上構建長期產品。但這並不意味著沒事了。lübbe 說:「乙個產品發布後,人們經常不再遵循穩定的發行鏈,也不再應用安全補丁。這樣你會得到兩個最糟糕的結果:過時的核心和沒有安全性。你失去了多人測試的好處。」

lübbe 指出,使用像 red hat 這樣的面向伺服器的發行版的 pengutronix 客戶經常由於快速的定製、需要系統管理員干預的部署和公升級系統而遇到問題。

「更新對一些東西有用,特別是在 x86 上,但每個專案基本上是自己建立基礎設施來更新到新版本。」

許多開發人員選擇把向後移植作為更新長期產品的解決方案。lübbe 說:「開始時很容易,但是一旦你不處於專案的維護範圍,他們就不會告訴你所使用的版本是否受到乙個 bug 的影響,因此很難判斷乙個修復是否相關。於是你不停打補丁和更新,而 bug 也在不斷累積,而這些你必須自己維護,因為其他人不使用這些補丁。使用開源軟體的好處就丟失了。」

lübbe 認為,最好的解決方案是跟蹤由上游專案維護的版本。「我們主要關注基於主線核心的開發,所以我們在產品和主流核心及其他上游專案之間盡可能沒有差別。長期系統在主線核心上得到很好的支援。大多數不使用 3d 圖形的系統只需要很少的補丁。較新的核心版本還有很多新的強化功能,這些可以減少漏洞的影響。

跟隨主線發展對許多開發人員來說似乎令人畏懼,但是如果從一開始就這樣,然後堅持下去,就會相對容易一些,lübbe 說:「你需要為系統上做的一切制定流程。你總需要知道什麼軟體正在執行,這在使用良好的構建系統時會更容易。每個軟體版本應定義完整的系統,以便你可以更新相關的一切。如果你不知道那裡有什麼,你就不能解決它。你也需要乙個自動測試和自動部署更新。」

為了「減少更新週期」,lübbe 建議在開始開發時使用最新的 linux 核心,並且在進入測試時才轉到穩定的核心。之後,他建議每年將系統中的所有軟體(包括核心、構建系統、使用者空間、glibc 和元件(如 openssl))更新為當年上游專案支援的版本。

lübbe 說:「得到更新並不意味著你需要部署。如果沒有看到安全漏洞,你可以把補丁放在一邊,需要時它再用就行。」

最後,lübbe 建議每個月檢視發布公告,並且每週檢查 cve 和主線列表上的安全公告。你只需要問自己「該安全公告是否影響到了你」。他補充說:「如果你的核心足夠新,就沒有太多的工作。你不會希望通過在新聞中看到你的裝置才獲得有關你的產品的反饋。」

嵌入式Linux核心製作

一.linux核心簡介 linux系統架構分為核心空間和使用者空間。它們之間切換條件 1.系統呼叫 2.硬體中斷。核心架構 1.系統呼叫介面 2.程序管理塊 3.記憶體管理 4.體系結構相關 4.虛擬檔案系統 5.網路棧 6.裝置驅動 二.製作linux核心 1.修改配置檔案 make config...

嵌入式Linux核心介紹

張建波 linux最早是由芬蘭的linus torvalds為在英特爾x86架構上提供乙個自由免費的類unix作業系統而開發的。準確來說,linus torvalds僅僅是完成了linux 的 核心 也就是說 linux 核心 linux作業系統。現在pc機上比較流行的redhat ubuntu等等...

嵌入式Linux核心安裝

1 編譯linux原始碼 rtouch.sh make menuconfig make clean 該命令用於清除舊的編譯檔案 make make uimage 編譯完後,會在arch armboot 目錄下生成新的核心壓縮映象檔案uimage 2 uimage ramdisk.gz.img use...