Kernel

如何執行 Linux 核心?

  • May 11, 2016

我正在閱讀 Robert Love 的Linux Kernel Development以了解更多關於 Linux 核心開發的資訊!

但是在第 2 章:核心入門中,我被指示下載並安裝核心。這讓我很困惑。“建構核心很容易”,他說。然而,在 Linux 環境中安裝 Linux 核心的想法對我來說沒有意義——就好像我會虛擬執行這個新的 Linux?

他給出的步驟是獲取核心源

$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
$ git pull

然後解壓縮 tarball(如果是 GNU zip 則有兩種不同的方法,但這裡是 bzip2 方法),

$ tar xvjf linux-x.y.z.tar.bz2

然後從那里通過執行, ,等來建構核心make``menuconfig``deconfig``oldconfig

然後安裝新核心。他解釋說,安裝是“架構和引導載入程序相關的”,並且“請查閱安裝說明”

$$ my $$引導載入程序在哪裡複製核心映像。”然後他提供了一個可以複製映像然後執行的範例

$ make modules_install

然後這一章就不再介紹安裝核心的教程了。

這就是我迷路的地方。到目前為止,我了解所有命令(我已經使用 Fedora 幾年,用C編寫系統程式碼等),但我不了解“安裝”Linux 核心的概念我已經是Linux環境。沒有解釋這裡發生了什麼(也許他稍後會詳細介紹)或如何真正讓核心執行。我把它放在一個新的硬碟上嗎?我像虛擬機一樣執行嗎?我是否在 BIOS 中選擇了一些啟動選項?我如何實際執行它?這一步不在本章中,也不在第 3 章或第 4 章中。

make install只需將核心映像複製到 /boot 目錄即可。 make modules_install將模組複製到 /lib/modules/kernel-version/。現在大多數 linux 發行版都使用 grub 啟動,因此您需要執行update-grub以注意 /boot 中的新核心映像,並添加一個條目以將其啟動到 grub 配置文件,以便您可以選擇使用該核心啟動。通常,您還需要一個包含訪問啟動硬體和一些啟動腳本所需的模組的 initrd,並且至少在基於 Debian 的發行版上,您可以通過執行update-initramfs -k kernelversion,在執行之前生成它update-grub

引用自:https://unix.stackexchange.com/questions/281392