| 動機 | 具體效益 |
|---|---|
| 效能優化 | 移除無用驅動/功能 → 核心體積縮小 → 指令快取命中率提升、記憶體佔用降低、啟動加速 |
| 記憶體節省 | 核心程式碼常駐記憶體 (不可交換),精簡核心釋放更多 RAM 給應用程式 |
| 安全強化 | 減少攻擊面:未使用的驅動/檔案系統/協議堆疊不編入 → 無漏洞利用面 |
| 功能定製 | 啟用特定功能 (即時核心 PREEMPT_RT、特定檔案系統、硬體支援、調試介面) |
# 1. 安裝建構工具鏈
sudo apt-get update
sudo apt-get install build-essential kernel-package libncurses5-dev libssl-dev bc flex bison git
# 2. 獲取核心源碼
cd ~
mkdir -p src && cd src
# 完整版 (F 代表 Full)
wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.6.10.tar.xz
# 或長期支援版
wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.6.10.tar.xz
# 3. 解壓 (Linus 建議:任意目錄均可,勿迷信 /usr/src)
tar -xJf linux-6.6.10.tar.xz
cd linux-6.6.10
# 4. 磁碟空間預估
# 源碼 ~1GB,建構後 ~3-5GB,建議預留 10GB+ 空間
df -h .
cp /boot/config-$(uname -r) .config
make olddefconfig # 自動處理新選項
make menuconfig # 僅修改必要項 (移除無用驅動、啟用特定功能)
優點:相容性最佳、啟動風險最低、支援所有當前硬體。
make allnoconfig
make menuconfig # 依「最精簡核心配置指南」逐項啟用
優點:核心最小、攻擊面最小、編譯最快;缺點:易遺漏隱性依賴、除錯困難。
make localmodconfig
# 掃描當前載入模組 (lsmod),將其設為 Y (內建) 或 M
# 需在「目標硬體完全裝載驅動」的系統上執行
make menuconfig # 微調
優點:精確匹配當前硬體、無多餘驅動;缺點:移植到不同硬體需重新配置。
# 編譯安裝後
reboot
uname -r # 確認版本後綴
dmesg | head -30 # 檢查啟動訊息、驅動載入
lsmod # 確認模組載入狀態
systemd-analyze # 啟動時間分析 (systemd 系統)
重新編譯核心是 Linux 使用者掌控系統、深入理解作業系統機制的必修課,亦是嵌入式/伺服器/高效能運算領域的核心技能。