Linux 核心是如何測試的?


當我們談論像 Linux 作業系統這樣龐大的東西時,一個隨之而來的問題是它們是如何如此有效地工作的。當然,它執行起來非常流暢,但它們是如何處理可能存在於整個系統原始碼中任何位置的錯誤和 bug 的呢?

我們知道,我們每三個月就會得到一個新的 Linux 作業系統,並且在這段時間裡,大約兩週的時間被保留用於“合併視窗”。這個視窗是所有已經開發和批准的程式碼將被合併到 Linux Torvalds 樹(主線)的時間。所以,剩下的時間基本上用於修復 bug 和穩定系統。

有大量的開發者參與專案釋出和維護,並確保 Linux 核心儘可能地無 bug。但需要注意的是,他們不僅依賴於開發人員的經驗和知識來修復 bug,他們還使用各種工具,從自動化測試、程式碼靜態分析等等。

讓我們深入瞭解這些工具,以瞭解它們為 Linux 開發人員帶來的價值。

持續整合

核心 CI 是 Linux 核心上的一種自動化工具,它是 Linux 基金會的一個專案。目前,它是 Linux 核心最完整自動化測試和持續整合工具之一。

LKFT(Linux 核心功能測試) 是 Linux 核心上另一個自動化工具,它是 Linaro 的一個持續整合工具,它在多個核心開發樹上執行功能測試。它主要用於識別 bug 和迴歸。

程式碼靜態分析

Smatch 是一種靜態分析工具,它是專門為 Linux 核心開發的。它使開發人員能夠識別程式設計錯誤,例如訪問空指標、緩衝區溢位、死鎖、使用未初始化變數等等。

Sparse 也是 Linux 核心上的另一個工具,最初由 Linus Torvalds 編寫並整合到 Linux 原始碼中,旨在查詢核心中可能的編碼錯誤。

自動化工具測試

kselftest 是 Linux 原始碼中可用的另一個測試框架。它能夠測試核心的特定部分。測試主要用 C 語言或 shell 指令碼編寫。

Linux 測試專案 (LTP) 也是 Linux 核心上的另一個專案,它提供了一套自動化測試,不僅驗證 Linux 核心的功能,還驗證作業系統的可靠性和穩定性。

更新於: 2021-07-29

219 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告