Busybox
目前系統上使用 Busybox 的原因
最初開髮用於磁片大小的可啟動系統,busybox 的設計考慮到了較小的記憶體佔用。今天,它不僅用於路由器、洗衣機和微波爐等小型系統,還用於高功率 NAS、智能手機和桌面 Linux 發行版的救援系統。(在後者可能是為了確保它適合某些引導載入程序圖像?)
但是作為一個單一的二進製文件,它也是一個單點故障。
為什麼不在這樣的機器上使用標準使用者空間而不是busybox?
但是作為一個單一的二進製文件,它也是一個單點故障。
即使是標準的使用者土地也有很多。損壞的libc?缺少依賴項?太糟糕了。
為什麼不在這樣的機器上使用標準使用者空間而不是busybox?
busybox(以及它的替代品,例如 toybox)的美妙之處在於它小巧、簡單,並且足以完成任務。它有效,那麼為什麼要使用其他東西呢?
作為 initramfs 的一部分,它也可以在任何台式 PC 上使用,同樣是為了簡單起見。雖然您可以在那裡複製一個真實的使用者空間,但它只會使核心/initramfs 的大小超出比例。更大的 initramfs 意味著更長的載入時間和更慢的啟動過程。
對於韌體供應商來說,跟踪單個項目也更容易,而不是像 Linux 發行版那樣,嘗試使各種組件適合併一起工作並跟踪每個組件的錯誤……
當然,busybox 也有其局限性,例如在busybox 環境中很難編譯Linux 核心,因為缺少某些功能(
ar
例如缺少核心想要使用的某些選項)。但對於 initramfs 或智能手機,這些限制無關緊要。