新聞中心
Linux操作系統(tǒng)在開(kāi)機(jī)時(shí),需要啟動(dòng)內(nèi)核,以便讓系統(tǒng)能夠正常運(yùn)行。內(nèi)核是操作系統(tǒng)的核心組件,它負(fù)責(zé)管理操作系統(tǒng)的資源,控制系統(tǒng)的運(yùn)行,處理外部設(shè)備的數(shù)據(jù)等。本文將介紹Linux開(kāi)機(jī)啟動(dòng)過(guò)程中如何啟動(dòng)內(nèi)核。

站在用戶(hù)的角度思考問(wèn)題,與客戶(hù)深入溝通,找到中山網(wǎng)站設(shè)計(jì)與中山網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶(hù)體驗(yàn)好的作品,建站類(lèi)型包括:網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、主機(jī)域名、雅安服務(wù)器托管、企業(yè)郵箱。業(yè)務(wù)覆蓋中山地區(qū)。
1. BIOS加載
在電腦開(kāi)機(jī)時(shí),計(jì)算機(jī)會(huì)首先加載Basic Input/Output System(BIOS),BIOS是一種固化在主板固件中用于在開(kāi)機(jī)時(shí)初始化硬件和啟動(dòng)操作系統(tǒng)的程序。首先BIOS會(huì)進(jìn)行硬件自檢,然后掃描并加載硬盤(pán)上的引導(dǎo)扇區(qū)。
2. 引導(dǎo)扇區(qū)的加載
引導(dǎo)扇區(qū)是硬盤(pán)上的一個(gè)區(qū)域,它負(fù)責(zé)加載操作系統(tǒng)的引導(dǎo)程序。在Linux系統(tǒng)中,引導(dǎo)程序位于/boot/grub/目錄下的grub.cfg文件中。該文件包含了操作系統(tǒng)的啟動(dòng)選項(xiàng)和引導(dǎo)順序。
當(dāng)BIOS加載了引導(dǎo)扇區(qū)后,它會(huì)掃描引導(dǎo)扇區(qū)的內(nèi)容,并將控制權(quán)交給引導(dǎo)程序。引導(dǎo)程序的主要作用是加載內(nèi)核,并將操作系統(tǒng)的控制權(quán)轉(zhuǎn)交給內(nèi)核。
3. 內(nèi)核加載
引導(dǎo)程序?qū)⒓虞d內(nèi)核的過(guò)程分為兩個(gè)階段:之一個(gè)階段和第二個(gè)階段。
之一個(gè)階段:引導(dǎo)程序會(huì)從硬盤(pán)中找到內(nèi)核文件,并將內(nèi)核文件加載到內(nèi)存中。內(nèi)存地址通常是0x100000(1MB),然后跳轉(zhuǎn)到此地址,進(jìn)入第二個(gè)階段。
第二個(gè)階段:內(nèi)核已經(jīng)在內(nèi)存中運(yùn)行,操作系統(tǒng)從此時(shí)開(kāi)始啟動(dòng)。內(nèi)核啟動(dòng)時(shí)會(huì)執(zhí)行一些初始化操作:
1. 內(nèi)核會(huì)檢測(cè)系統(tǒng)的硬件設(shè)備,如處理器、內(nèi)存、硬盤(pán)、輸入設(shè)備等。
2. 內(nèi)核會(huì)初始化CPU,并分配CPU時(shí)間片,就像操作系統(tǒng)分配CPU時(shí)間片一樣,以便讓各個(gè)進(jìn)程可以輪流執(zhí)行。
3. 內(nèi)核還會(huì)加載一些模塊,如驅(qū)動(dòng)程序等,以便系統(tǒng)能夠識(shí)別硬件設(shè)備并進(jìn)行相應(yīng)的操作。
4. 內(nèi)核會(huì)加載root文件系統(tǒng),這是Linux操作系統(tǒng)中的核心文件系統(tǒng)。root文件系統(tǒng)包含了所有操作系統(tǒng)的文件和目錄。
5. 內(nèi)核會(huì)運(yùn)行init程序,init程序是Linux操作系統(tǒng)中的之一個(gè)進(jìn)程,它會(huì)初始化操作系統(tǒng),并啟動(dòng)其他服務(wù)進(jìn)程。
在Linux操作系統(tǒng)中,內(nèi)核是最重要的組件之一,它是操作系統(tǒng)的核心,并負(fù)責(zé)管理硬件資源和控制系統(tǒng)的運(yùn)行。在Linux開(kāi)機(jī)啟動(dòng)過(guò)程中,首先BIOS會(huì)加載引導(dǎo)扇區(qū),然后引導(dǎo)程序會(huì)加載內(nèi)核,并將控制權(quán)交給內(nèi)核。內(nèi)核會(huì)執(zhí)行一些初始化操作,包括檢測(cè)硬件、初始化CPU、加載驅(qū)動(dòng)程序和root文件系統(tǒng)等。內(nèi)核會(huì)運(yùn)行init進(jìn)程,初始化操作系統(tǒng),并啟動(dòng)其他服務(wù)進(jìn)程。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián)為您提供網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù)!
如何使linux開(kāi)機(jī)時(shí)選擇要進(jìn)入的內(nèi)核版本
開(kāi)機(jī)一直按E鍵即可進(jìn)入內(nèi)核選擇界面。
找了蠻久解決方案的一個(gè)問(wèn)題……
編輯 /etc/default/grub (比如命令:sudo gedit /etc/default/grub)
找到 hidden_timeout 數(shù)字改為10,保存
終端執(zhí)行命令:sudo update-grub
sudo reboot重啟 ,正常的話(huà) 會(huì)有一個(gè)
倒計(jì)時(shí)
那個(gè)時(shí)候按住shift 然后在菜單欄里選就ok了
啟動(dòng)Linux操作系統(tǒng)后,按‘e’鍵進(jìn)入Grub引導(dǎo)界面,選擇指定內(nèi)核進(jìn)行引導(dǎo)。
在開(kāi)機(jī)后的引導(dǎo)菜單里面用鍵盤(pán)上的上下方向鍵選擇,回車(chē)就可以了
修改grub.cfg
如何使用bochs啟動(dòng)linux2.6.0版本內(nèi)核
當(dāng)然不能真正啟動(dòng)就panic了,但是單步調(diào)試和理解內(nèi)核在x86平臺(tái)啟動(dòng)已經(jīng)夠了灶罩逗。
bochs下運(yùn)隱賣(mài)行l(wèi)inux3.0內(nèi)核(已驗(yàn)證)
1. 構(gòu)造調(diào)試環(huán)境
由于bochs內(nèi)建調(diào)試功能, 且支持gdb, 用它調(diào)試內(nèi)核會(huì)很方便.
(文章中大部分命令的運(yùn)行需要root權(quán)限,以sudo方式運(yùn)行)
1.1 構(gòu)建磁盤(pán)鏡像
Shell代碼
dd if=/dev/zero of=hd0.img
count=$((63*16*100))
用這個(gè)命令可以構(gòu)建一個(gè)50MB左右的磁盤(pán)鏡像, 輸出結(jié)果如下:
100800+0 records in
100800+0 records out
bytes (52 MB) copied, 0.s, 70.3
MB/s
注意count必須為63*16的倍數(shù), 否則bochs識(shí)別硬盤(pán)會(huì)有問(wèn)題.
1.2 掛載磁盤(pán)鏡像
Shell代碼
losetup /dev/loop0 hd0.img
這個(gè)命令可以將文件綁定到一個(gè)loop設(shè)備. 如果/dev/loop0不存悶首在, 可以嘗試 modprobe
loop.
然后進(jìn)行設(shè)備初始化:
Shell代碼
cfdisk -s63 -h16/dev/loop0
只創(chuàng)建一個(gè)主分區(qū)就可以. 寫(xiě)入后, 用命令fdisk檢查結(jié)果:
Shell代碼
fdisk -lu /dev/loop0
Disk /dev/loop0: 51 MB,bytes
16 heads, 63 sectors/track, 100 cylinders, total
sectors
Units = sectors of 1 * 512 = 512 bytes
Disk identifier: 0x
Device Boot Start End Blocks Id System
/dev/loop0p368+ 83 Linux
將分區(qū)1掛載到/dev/loop1.
Shell代碼
losetup /dev/loop1 hd0.img -o
$((63*512))
格式化/dev/loop1為ext3格式.
Shell代碼
mkfs.ext3 /dev/loop1
在mnt下創(chuàng)建img目錄, 做以后維護(hù)用.
Shell代碼
mkdir -p /mnt/img
將loop1掛載到/mnt/img
Shell代碼
mount /dev/loop1 /mnt/img/
安裝引導(dǎo)程序. 因?yàn)槲铱駸醿A向于模塊化架構(gòu), 所以選擇GRUB2.
本文以grub-1.97~beta3為示例,
讀者可自行安裝其他的引導(dǎo)系統(tǒng)如lilo.
Shell代碼
mkdir /mnt/img/boot
cp -r /usr/lib/grub/i386-pc/
/mnt/img/boot/grub
生成一個(gè)core.img, biosdisk負(fù)責(zé)讀取磁盤(pán), part_msdos負(fù)責(zé)處理MBR,
ext2負(fù)責(zé)讀取ext3分區(qū).
Shell代碼
cd /mnt/img/boot/grub/
grub-mkimage -O i386-pc -o core.img biosdisk part_msdos
ext2
Shell代碼
ls -lh core.img
-rw-r–r–1 root root 25K Sep2114:28
core.img
只有區(qū)區(qū)的25K.. 里面甚至還包含一個(gè)小的應(yīng)急shell, 不過(guò)作用不大.
安裝grub2到(hd0), 根目錄在(hd0,1)
Shell代碼
echo”(hd0) /dev/loop0″ >
./device.map
grub-setup -m ./device.map -d /mnt/img/boot/grub/ -r
‘(hd0,1)’ ‘(hd0)’
檢查一下安裝成果:
Shell代碼
hexdump -C /dev/loop0 | less
如果你能看到:
Shell代碼
d e8 2e00 cd18 eb
fe65|}…….GRUB .Ge|
f 6d6973 6b|om.Hard
Disk.Rea|
就說(shuō)明安裝成功.
清理一下.
Shell代碼
cd
umount /mnt/img
losetup -d /dev/loop1
losetup -d /dev/loop0
1.3 啟動(dòng)測(cè)試.
給上面的hd0.img配一個(gè)bochsrc文件, 可以拿bochs示例dlxlinux的配置文件來(lái)改,
只需將硬盤(pán)換為:
Shell代碼
ata0-master: type=disk, path=”hd0.img”, cylinders=100,
heads=16, spt=63
然后啟動(dòng)Bochs, 順利的話(huà), 你能看到傳說(shuō)中的grub2 shell.
2. 從啟動(dòng)到保護(hù)模式.
為我們的bochs虛擬機(jī)編譯一個(gè)內(nèi)核. 不必太復(fù)雜,
目前我們只關(guān)心啟動(dòng)部分.
2.1 安裝內(nèi)核
退出bochs, 掛載hd0.img:
Shell代碼
mount hd0.img /mnt/img/ -o
loop,offset=$((63*512))
拷貝bzImage.
Shell代碼
cp /usr/src/linux/arch/i386/boot/bzImage
/mnt/img/boot/vmlinuz-3.0.00
這兩個(gè)步驟可以放到內(nèi)核的Makefile中, 以后每次編譯完成后,
自動(dòng)更新到hd0.img里.
然后將下列配置寫(xiě)到/mnt/img/boot/grub/grub.cfg
Shell代碼
# Timeout for menu
set timeout=10
# Set default boot entry as Entry0
set default=0
# Entry0- Load Linux kernel
menuentry”Linux-3.0.00″{
set root=(hd0,1)
linux
/boot/vmlinuz-3.0.00root=/dev/hda1
關(guān)于linux怎么啟動(dòng)內(nèi)核的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
創(chuàng)新互聯(lián)-老牌IDC、云計(jì)算及IT信息化服務(wù)領(lǐng)域的服務(wù)供應(yīng)商,業(yè)務(wù)涵蓋IDC(互聯(lián)網(wǎng)數(shù)據(jù)中心)服務(wù)、云計(jì)算服務(wù)、IT信息化、AI算力租賃平臺(tái)(智算云),軟件開(kāi)發(fā),網(wǎng)站建設(shè),咨詢(xún)熱線(xiàn):028-86922220
當(dāng)前標(biāo)題:Linux開(kāi)機(jī)啟動(dòng),如何啟動(dòng)內(nèi)核?(linux怎么啟動(dòng)內(nèi)核)
瀏覽地址:http://www.5511xx.com/article/cdjiidc.html


咨詢(xún)
建站咨詢(xún)
