程式忍者PGNinja

Hacker News

開源工具 Bootvine 用即時樹狀圖顯示開機 systemd 流程

· Bootvine 是用 Rust 寫成的終端介面,把開機時雜亂捲動的 systemd 日誌換成清楚的即時工作樹狀圖。

Bootvine 是 Willem Vanhulle 開發的開源專案,放在 Codeberg 上,採用 GPL-3.0-or-later 授權。作者的出發點是對 Linux 開機畫面的不滿:開機時畫面上只有一堵快速捲動、看不清楚也搞不懂目前在做什麼的核心與 systemd 日誌行,Bootvine 要解決的就是這種開機黑盒子的問題。

具體做法是用 Rust 寫一個終端使用者介面(TUI),透過 ratatui 這個函式庫把 systemd 的工作狀態畫成即時更新的樹狀結構,取代原本逐行捲動的日誌。畫面上會顯示還在等待的單元、目前最慢的幾個單元花了多久、關機過程的進度,也會處理像 LUKS 解鎖這種需要輸入密碼的提示,單元失敗時會把對應的日誌行顯示出來。要跑起來需要 systemd 246 以上版本當作 PID 1,並搭配 libdbus、libsystemd 與一個虛擬終端。

這類工具吸引 Hacker News 讀者,是因為它處理的是幾乎每個 Linux 使用者都遇過、卻很少有人認真解決的痛點:開機時到底卡在哪一步。作者在說明裡提到概念上類似 nix-output-monitor,把原本只給機器看的日誌轉成人看得懂的即時畫面,這種把雜訊變成有結構視覺化的思路也常被拿來討論。

對正在學程式的孩子來說,這個專案是個具體例子,說明系統底層的開機流程(systemd 如何一個一個啟動服務)其實可以被拆解、可視化,而不是神秘的黑盒子;對想多接觸 Linux 或系統程式的學生,直接讀這個專案的 Rust 原始碼,會比單純背指令更能理解開機到底在發生什麼事。

開源LinuxRust系統程式

其他新聞