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