快轉到主要內容

比較Arch Linux核心差異:linux, linux-zen, linux-lts, linux-hardened

Linux系統 Linux使用技巧 Arch Linux Linux Kernel
✍ 切換正體/簡體字
目錄

註:大部分使用者裝linux核心套件就夠了。如果你想知道其他核心的具體用途,那麼再繼續往下看。

本文Ivon介紹Arch Linux官方套件庫收錄的幾種Linux核心(kernel),讓您挑選出最適合用途的核心。

1. 前言
#

Arch Linux是一款使用Linux核心的作業系統。啊,好像在說廢話,但確實如此,這是大前提,Linux核心對整個系統至關重要。

Linux核心由Linux Trovalds等人開發。你可以在 kernel.org取得最新Linux核心原始碼,該網站還有 Linux核心的釋出週期

每當上游(upstream)釋出標記為stable的Linux核心後,Arch Linux的開發者便會儘快將其打包,提供給Arch Linux用戶下載。跟其他發行版不同的是,Arch Linux的開發者幾乎不給Linux核心打patch。

有趣的是,由於Arch Linux需要使用者手動打指令安裝,加上社群成員的貢獻,官方套件庫現在提供了多種Linux核心讓使用者選擇。

要在Arch Linux安裝Linux核心,你有以下選項:

  • linux
  • linux-lts
  • linux-zen
  • linux-hardened
  • linux-rt
  • linux-libre
  • 自行編譯核心

甚至你可以一次安裝多個核心套件,共存於同一系統。莫擔憂!Arch Linux可以任意切換核心開機的,文章後面我們會談談具體做法。

你不用擔心換核心後系統就炸掉,沒那麼容易。就算你的硬體驅動程式依賴特定Linux版本,也可以用DKMS版本迴避掉。

Linux的驅動程式通常透過核心模組裝載。核心模組大多用DKMS安裝,即硬體的驅動程式會在核心更新後自動跟著重新編譯。比方說nvidia-dkms套件可以確保您在換核心後仍讓Nvidia驅動正常運作。此外,Arch Linux有包山包海的AUR,需要的驅動程式都可以在那兒找到。

所以只要使用DKMS安裝驅動,就不需要太擔心換核心後驅動炸掉。

現在讓我們來看各個核心種類的特色。

2. Arch Linux提供的核心種類
#

Stable (linux)
#

套件名稱:linux

基於上游Linux stable release所編譯的版本,發布時程不固定。

大部分Arch Linux用戶的選擇,效能最均衡的核心。

滾動更新,幾乎每個月都會有新版本。

雖然叫做Stable,但不見得真的穩定,有些驅動開發者跟不上如此頻繁的開發進度,很容易系統更新後出問題。

Longterm (linux-lts)
#

套件名稱:linux-lts

基於上游linux longterm release編譯的長期支援版本。上游開發者會提供長時間的安全性更新,而非一直加新功能。

更新較慢,適合追求穩定的用戶使用。

你說Arch Linux本身是滾動發行版,追求穩定核心沒意義啊?我認為在特定情況下,Linux核心本身的穩定度,是比userspace的軟體重要的。

比如我在使用Nvidia閉源驅動的時候,linux-lts通常是比較穩定的。

舉個比較誇張的案例:Nvidia驅動版本545,在linux 6.6.8執行Nvidai PRIME指令跑Steam遊戲會讓系統卡死,linux-lts 6.1.6就不會。

或許linux核心遇到的問題很快就會修復,但我不想等。尤其更新時程這麼頻繁,加上Nvida驅動是閉源軟體,他們的開發時程跟Linux核心不一致,哪天更新後Nvidia驅動又會炸掉。

Zen (linux-zen)
#

套件名稱:linux-zen

基於上游linux stable,加上一些patch所編譯而成的核心,目的在於加快Linux反應速度,犧牲一些吞吐量,讓系統看起來比較順暢。

內建Virtualbox、Waydroid所需的核心模組。

在Phoronix所作的跑分測試中,linux-zen於部份項目拔得頭籌,適合追求極致遊戲效能的用戶使用。

Hardened (linux-hardened)
#

套件名稱:linux-hardened

追求極致安全的核心,基於 linux-hardened專案。編譯時將有安全隱憂的選項停用,再加上一些增強安全性的patch。

不建議桌面用戶使用,效能下降嚴重。且關掉的功能太多了可能要找一堆修補方案,得不償失。

如果你真要用這個核心的話,推薦搭配Secure Boot、TPM、LUKS、AppArmor等機制全方面強化Linux系統安全性。

Realtime (linux-rt)
#

套件名稱:linux-rt

基於 Real-time Linux專案,加上PREEMPT_RT的patch所編譯而成。追求即時反應的核心。

雖然名字這樣寫,但實際上遊戲效能比linux-zen要差。

linux-rt對桌面用戶來說沒什麼用處,也許適合用在RTOS之類的嵌入式系統;或者給做音樂的用戶使用,追求極低的音訊延遲。

Linux-libre (linux-libre)
#

(這個核心只有AUR有收)套件名稱:linux-libre

基於 linux-libre專案,完全移除閉源驅動的Linux核心。

以Arch為基礎開發的Polabora Linux和Hyperbola Linux就是使用這個核心。

不適合一般桌面用戶。

linux-libre僅適合追求完全自由軟體精神的用戶使用。如果你的電腦是 自由軟體基金會認證硬體,完全不需要閉源驅動程式就能讓硬體動起來,再考慮用這個核心。

自行編譯核心
#

超過本文主旨,不細談。我們是在用Arch,不是Gentoo。

你可以善用Arch Linux官方提供的 PKGBUILD,用類似AUR套件的方式編譯你自己的核心,方便以pacman管理。

但除非是為了學習,否則自行編譯核心沒什麼意義。

Arch Linux核心更新很快,沒有Ubuntu LTS手動編譯新核心的需求。

如果你需要特定核心模組,多半能用DKMS裝載,AUR有許多寶貴資源。或者用上面別人編譯好的核心即可。

3. 如何切換Arch Linux核心
#

假設我現在要從linux切換成linux-lts

  1. 確認你的boot分區空間是否足夠,建議要有256MB以上空間
df -h /boot
  1. 查看目前正在使用的核心,應該會印出核心版本-arch
uname -a
  1. 安裝你要用的核心,裝*-headers套件的理由是有些程式編譯需要用到。
sudo pacman -S linux-lts linux-lts-headers
  1. 更新initramfs,確保所有核心模組都有更新到
sudo mkinitcpio -p linux-lts
  1. 編輯GRUB設定
sudo vim /etc/default/grub
  1. 加入以下二行,使其記住開機時候使用的核心
GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true
  1. 更新GRUB設定
sudo grub-mkconfig -o /boot/grub/grub.cfg
  1. 電腦重開機,在GRUB畫面選取Advanced Options for Arch,選取linux-lts開機。下次GRUB會自動用這個核心開機。

  2. 重開機後檢查核心是否切換成功,應該會印出核心版本-lts

uname -a

參考資料
#

相關文章

教你在Arch Linux安裝Nvidia、CUDA、cuDNN、TensorRT專有驅動程式
Linux系統 Linux使用技巧 Arch Linux Nvidia
Nvidia PRIME用法,Linux雙顯卡電腦切換獨顯跑3D渲染
Linux系統 Linux使用技巧 Nvidia Arch Linux Ubuntu
fontconfig調整Linux中文預設字體的優先順序,修正字體模糊、Emoji亂碼的問題
Linux系統 Linux使用技巧 Ubuntu Arch Linux

留言板

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Giscus留言板,需要Github帳號才能留言。支援markdown語法,若要上傳圖片請貼Imgur連結。您的留言會在Github Discussions向所有人公開。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。