快轉到主要內容

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

· 民國112年癸卯年
·
切換繁體/簡體
分類   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核心遇到的問題很快就會修復,但我不想等。尤其更新時程這麼頻繁,加上Nvidia驅動是閉源軟體,他們的開發時程跟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

參考資料
#

相關文章

Distrobox使用例探討:在Ubuntu安裝Arch Linux AUR的套件
分類   Linux系統 Linux使用技巧
標籤   Distrobox Arch Linux Ubuntu Arch User Repository
Ubuntu如何安裝Wifi無線網路卡驅動程式,以Realtek RTL8822BU為例
分類   Linux系統 Linux使用技巧
標籤   Linux Kernel Ubuntu
Arch Linux安裝多重Python版本,使其共存
分類   Linux系統 Linux使用技巧
標籤   Arch Linux Python

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用圖床網站。