九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
linux?系統(tǒng)啟動相關(guān)知識

linux 系統(tǒng)啟動相關(guān)知識

(2009-07-07 21:55:09)
標(biāo)簽:

linux

啟動

grub

it

分類: linux相關(guān)知識

引導(dǎo)扇區(qū)是每個分區(qū)(Partition)的第一扇區(qū),而主引導(dǎo)扇區(qū)是硬盤的第一扇區(qū)。它由三個部分組成,主引導(dǎo)記錄MBR、硬盤分區(qū)表DPT和硬盤有效標(biāo)志。在總共512字節(jié)的主引導(dǎo)扇區(qū)里MBR占446個字節(jié)(偏移0--偏移1BDH),DPT占64個字節(jié)(偏移1BEH--偏移1FDH),最后兩個字節(jié)“55AA”(偏移1FEH--偏移1FFH)是硬盤有效標(biāo)志

 

   系統(tǒng)啟動階段依賴于引導(dǎo) Linux 系統(tǒng)上的硬件。在嵌入式平臺中,當(dāng)系統(tǒng)加電或重置時,會使用一個啟動環(huán)境。這方面的例子包括 U-Boot、RedBoot 和 Lucent 的 MicroMonitor。嵌入式平臺通常都是與引導(dǎo)監(jiān)視器搭配銷售的。這些程序位于目標(biāo)硬件上的閃存中的某一段特殊區(qū)域,它們提供了將 Linux 內(nèi)核映像下載到閃存并繼續(xù)執(zhí)行的方法。除了可以存儲并引導(dǎo) Linux 映像之外,這些引導(dǎo)監(jiān)視器還執(zhí)行一定級別的系統(tǒng)測試和硬件初始化過程。在嵌入式平臺中,這些引導(dǎo)監(jiān)視器通常會涉及第一階段和第二階段的引導(dǎo)加載程序。


提取 MBR 的信息

要查看 MBR 的內(nèi)容,請使用下面的命令:

# dd if=/dev/hda of=mbr.bin bs=512 count=1 # od -xa mbr.bin
這個 dd 命令需要以 root 用戶的身份運行,它從 /dev/hda(第一個 IDE 盤) 上讀取前 512 個字節(jié)的內(nèi)容,并將其寫入 mbr.bin 文件中。od 命令會以十六進制和 ASCII 碼格式打印這個二進制文件的內(nèi)容。

   在 PC 中,引導(dǎo) Linux 是從 BIOS 中的地址 0xFFFF0 處開始的。BIOS 的第一個步驟是加電自檢(POST)。POST 的工作是對硬件進行檢測。BIOS 的第二個步驟是進行本地設(shè)備的枚舉和初始化。 中國給定 BIOS 功能的不同用法之后,BIOS 由兩部分組成:POST 代碼和運行時服務(wù)。當(dāng) POST 完成之后,它被從內(nèi)存中清理了出來,但是 BIOS 運行時服務(wù)依然保留在內(nèi)存中,目標(biāo)操作系統(tǒng)可以使用這些服務(wù)。

 

   要引導(dǎo)一個操作系統(tǒng),BIOS 運行時會按照 CMOS 的設(shè)置定義的順序來搜索處于活動狀態(tài)并且可以引導(dǎo)的設(shè)備。引導(dǎo)設(shè)備可以是軟盤、CD-ROM、硬盤上的某個分區(qū)、網(wǎng)絡(luò)上的某個設(shè)備,甚至是 USB 閃存。

 

   通常,Linux 都是從硬盤上引導(dǎo)的,其中主引導(dǎo)記錄(MBR)中包含主引導(dǎo)加載程序。MBR 是一個 512 字節(jié)大小的扇區(qū),位于磁盤上的第一個扇區(qū)中(0 道 0 柱面 1 扇區(qū))。當(dāng) MBR 被加載到 RAM 中之后,BIOS 就會將控制權(quán)交給 MBR。


第一階段引導(dǎo)加載程序
   MBR 中的主引導(dǎo)加載程序是一個 512 字節(jié)大小的映像,其中包含程序代碼和一個小分區(qū)表(參見圖 2)。前 446 個字節(jié)是主引導(dǎo)加載程序,其中包含可執(zhí)行代碼和錯誤消息文本。接下來的 64 個字節(jié)是分區(qū)表,其中包含 4 個分區(qū)的記錄(每個記錄的大小是 16 個字節(jié))。MBR 以兩個特殊數(shù)字的字節(jié)(0xAA55)結(jié)束。這個數(shù)字會用來進行 MBR 的有效性檢查。

 

   主引導(dǎo)加載程序的工作是查找并加載次引導(dǎo)加載程序(第二階段)。它是通過在分區(qū)表中查找一個活動分區(qū)來實現(xiàn)這種功能的。當(dāng)找到一個活動分區(qū)時,它會掃描分區(qū)表中的其他分區(qū),以確保它們都不是活動的。當(dāng)這個過程驗證完成之后,就將活動分區(qū)的引導(dǎo)記錄從這個設(shè)備中讀入 RAM 中并執(zhí)行它。

 

 

第二階段引導(dǎo)加載程序
   次引導(dǎo)加載程序(第二階段引導(dǎo)加載程序)可以更形象地稱為內(nèi)核加載程序。這個階段的任務(wù)是加載 Linux 內(nèi)核和可選的初始 RAM 磁盤。

 

GRUB 階段引導(dǎo)加載程序

   /boot/grub 目錄中包含了 stage1、stage1.5 和 stage2 引導(dǎo)加載程序,以及很多其他加載程序(例如,CR-ROM 使用的是 iso9660_stage_1_5)。

   在 x86 PC 環(huán)境中,第一階段和第二階段的引導(dǎo)加載程序一起稱為 Linux Loader(LILO)或 GRand Unified Bootloader(GRUB)。由于 LILO 有一些缺點,而 GRUB 克服了這些缺點,因此下面讓我們就來看一下 GRUB。

 

   關(guān)于 GRUB,很好的一件事情是它包含了有關(guān) Linux 文件系統(tǒng)的知識。GRUB 不像 LILO 一樣使用裸扇區(qū),而是可以從 ext2 或 ext3 文件系統(tǒng)中加載 Linux 內(nèi)核。它是通過將兩階段的引導(dǎo)加載程序轉(zhuǎn)換成三階段的引導(dǎo)加載程序來實現(xiàn)這項功能的。階段 1 (MBR)引導(dǎo)了一個階段 1.5 的引導(dǎo)加載程序,它可以理解包含 Linux 內(nèi)核映像的特殊文件系統(tǒng)。這方面的例子包括 reiserfs_stage1_5(要從 Reiser 日志文件系統(tǒng)上進行加載)或 e2fs_stage1_5(要從 ext2 或 ext3 文件系統(tǒng)上進行加載)。當(dāng)階段 1.5 的引導(dǎo)加載程序被加載并運行時,階段 2 的引導(dǎo)加載程序就可以進行加載了。


   當(dāng)階段 2 加載之后,GRUB 就可以在請求時顯示可用內(nèi)核列表(在 /etc/grub.conf 中進行定義,同時還有幾個軟符號鏈接 /etc/grub/menu.lst 和 /etc/grub.conf)。我們可以選擇內(nèi)核甚至修改附加內(nèi)核參數(shù)。另外,我們也可以使用一個命令行的 shell 對引導(dǎo)過程進行高級手工控制。

   將第二階段的引導(dǎo)加載程序加載到內(nèi)存中之后,就可以對文件系統(tǒng)進行查詢了,并將默認(rèn)的內(nèi)核映像和 initrd 映像加載到內(nèi)存中。當(dāng)這些映像文件準(zhǔn)備好之后,階段 2 的引導(dǎo)加載程序就可以調(diào)用內(nèi)核映像了。


硬件讀取引導(dǎo)扇區(qū)
加載LILO或者grub
加載內(nèi)核
掛裝根文件系統(tǒng)
啟動/sbin/init ,一切進程的“祖父”
讀取/etc/inittab文件
讀取rc.sysinit文件
讀取/etc/fstab文件
運行rcX.d下的文件(文件都是init.d下的符號鏈接)
其中有一個xinetd 的超級進程,調(diào)用/etc/xinetd.conf 配置文件,從配置文件中知道讀/etc/xinetd.d 文件,結(jié)束后調(diào)用Miggetty
讀取/etc/rc.d/rc.local文件

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Linux 2.6 內(nèi)核引導(dǎo)過程分析
mbr和bios
linux系統(tǒng)啟動過程詳解
MBR和UEFI啟動引導(dǎo)及多系統(tǒng)引導(dǎo)程序xorboot
UC頭條:Linux系統(tǒng)原理&特性你知道嗎? 初學(xué)者如何修煉
Centos7系統(tǒng)啟動流程
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服