Ubuntu 進一步降低硬體門檻,支援在 2GB 記憶體的樹莓派 4 上執行

2022-01-13 09:00:06

Ubuntu 已經支援 Raspberry Pi(樹莓派)4 Model B 的 4GB 和 8GB 記憶體版本(自 Ubuntu 20.10 版本支援)。現在 Ubuntu 團隊,讓即將釋出的 Ubuntu 22.04 LTS 版本能在只有 2GB RAM 的Raspberry Pi 4 上執行。

然而,讓 Ubuntu 這樣一個完整的 Linux 系統在記憶體過低的硬體裝置上正常執行是很困難的,那 Ubuntu 是如何做到的呢?那就不得不提到一個名為 zswap 的 Linux 核心特性。

在提及 zswap 特性之前,先來說說  Linux 的虛擬記憶體檔案: swap file 。任何型別的 Linux 系統都會在硬碟或 SD 卡上分配一個 swap 檔案,它充當 RAM(執行記憶體) 的一種溢位,在系統的可用記憶體不足的時候,swap 檔案會快取部分頁面,釋放記憶體給活躍的程序使用,這樣系統即使在幾乎用完所有 RAM 時也能繼續工作。(另外提一下,Win 10 的系統磁碟也有 swapfile.sys 檔案)

但是,使用 swap 檔案的效能不如直接使用 RAM,因為存取硬碟的速度比起使用記憶體實在是太慢了,因此在這個過程中引入了 Zswap 特性。

zswap 本質上是一個壓縮工具。當一個程序即將被移動到 swap 檔案裡面時,zswap 會對其進行壓縮,並檢查壓縮過的新頁面是否仍需要移動,或者說可以保留在 RAM 中。如果壓縮過的頁面可以留在 RAM 中,那就等再次存取的時候對它進行解壓。解壓一個「zswap」頁面比存取 swap 檔案要快得多,所以 zswap 特性非常適合低記憶體的硬體裝置。

如何開啟此特性?

由於 Ubuntu 預設支援 zswap ,因此可以開啟終端模擬器,通過一行簡單的命令

sudo sed -i -e 's/$/zswap.enabled=1/' /boot/firmware/cmdline.txt

然後重新啟動板子,即可開啟特性。

事實上,zswap 只是降低 Ubuntu 硬體門檻的手段之一,此外還包括 z3fold 和 lz4 壓縮等一系列特性,這些優化內容將包含在 4 月釋出的 Ubuntu 22.04 ,且在所有 Raspberry Pi 4 裝置中預設開啟。

展開閱讀全文