1. 程式人生 > >Linux 的開機啟動流程分析

Linux 的開機啟動流程分析

幾個名詞
  1. CMOS

CMOS的主要功能為記錄主機板上面的重要引數, 包括系統時間、CPU 電壓與頻率、各項裝置的 I/O 地址與 IRQ 等,由於這些資料的記錄要花費電力,因此主機板上面才有電池。 BIOS 為寫入到主機板上某一塊 flash 或EEPROM 的程式,他可以在開機的時候執行,以載入 CMOS 當中的引數, 並嘗試呼叫儲存裝置中的開機程式,進一步進入作業系統當中。BIOS 程式也可以修改 CMOS中的資料,每種主機板呼叫BIOS設定程式的按鍵都不同,一般桌面計算機常見的是使用[del]按鍵進入 BIOS 設定畫面。

  1. BIOS型別:Legacy/UEFI

是系統引導的兩種方式,開機檢測程式,讀取在MBR或者GPT中的bootloader程式(grub)

  • 載入CMOS資訊
  • 開機檢測(POST):硬體初始化
  • 讀取開機管理程式(bootloader)
  1. MBR/GPT > MBR/GPT 是兩種分割槽格式
  • MBR

早期的 Linux 系統為了兼容於 Windows 的磁碟,因此使用的是支援 Windows 的 MBR(Master Boot Record, 主要開機紀錄區) 的方式來處理開機管理程式與分割槽表!而開機管理程式紀錄區與分割槽表則 通通放在磁碟的第一個扇區,這個扇區通常是 512bytes 的大小 (舊的磁碟扇區都是 512bytes 喔!), 所以說,第一個扇區 512bytes 會有這兩個資料:

  1. 主要啟動記錄區(Master Boot Record, MBR):可以安裝開機管理程式的地方,有 446 bytes
  2. 分割槽表(partition table):記錄整顆硬碟分割槽的狀態,有 64 bytes 由於分割槽表所在區塊僅有 64 bytes 容量,因此最多僅能有四組記錄區,每組記錄區記錄了該區段的啟 始與結束的磁柱號碼。
  • GPT
  1. 扇區大小為4K
  2. 沒有了主分割槽大小不超過4個的限制
  3. 對扇區直接進行分割槽操作
啟動過程
  1. BIOS
  • 載入CMOS內設定值去的主機的各項硬體配置
  • 開機自我測試(POST):硬體檢測並初始化,指定開機裝置
  • BootLoader程式啟動:在磁碟中的第一個扇區即在MBR,識別作業系統的檔案格式並載入核心到主儲存器中執行(BootLoader的功能如下)
  • BootLoader的功能(核心載入,硬體檢測,驅動載入)
  • 提供選單:使用者可以選擇不同的開機專案,這也是多重引導的重要功能!
  • 載入核心檔案:直接指向可開機的程式區段來開始作業系統;
  • 轉交其他 loader:將開機管理功能轉交給其他 loader 負責
  1. systemd 程式
  • /etc/systemd/system/ 包括下面5項,和之前的SystemV相容

    相關推薦

    Linux開機啟動流程分析

    幾個名詞 CMOS CMOS的主要功能為記錄主機板上面的重要引數, 包括系統時間、CPU 電壓與頻率、各項裝置的 I/O 地

    Linux開機啟動過程分析

    物理內存 登錄 page thread 陷阱門 execute 啟動過程 font 定義 Linux開機啟動過程分析 開機過程指的是從打開計算機電源直到LINUX顯示用戶登錄畫面的全過程。分析LINUX開機過程也是深入了解LINUX核心工作原理的一個很好的途徑。 啟動第一

    開機啟動流程分析

    boot 啟動流程 本節索引 在對系統啟動流程進行分析的時候,我想你一定是對系統有了一定的了解。系統的啟動目前來講大都為串行接力的方式來啟動。而所謂的並行方式的啟動方式也是某一個階段的並行。所以我按照系統啟動的順序來把文章連綴起來。 * BIOS階段 * BootLoader階段

    Linux核心啟動流程分析(一)

    1. 依據arch/arm/kernel/vmlinux.lds 生成linux核心原始碼根目錄下的vmlinux,這個vmlinux屬於未壓縮,帶除錯資訊、符號表的最初的核心,大小約23MB;  命令:arm-linux-gnu-ld -o vmlinux -T a

    linux-2.6.22.6內核啟動流程分析之配置

    linux 分享圖片 src image 比較 文件包含 子目錄 2.6 config 配置過程最終結果是生成.config文件,我們想要對配置的目的有很清楚的了解,必須先對.config文件進行分析。通過cd命令切換到linux-2.6.22.6內核目錄,輸入vi .co

    android開機啟動流程簡單分析

    android啟動 當載入程式啟動Linux核心後,會載入各種驅動和資料結構,當有了驅動以後,開始啟動Android系統同時會載入使用者級別的第一個程序init(system\core\init\init.cpp)程式碼如下: int main(int ar

    ARM Linux啟動流程分析——start_kernel前啟動階段(彙編部分)

    本文整理了ARM Linxu啟動流程的第二階段——start_kernel前啟動階段(彙編部分),核心版本為3.12.35。我以手上的樹莓派b(ARM11)為平臺示例來分析Linux核心在自解壓後到跳轉執行start_kernel之前所做的主要初始化工作:包括引數有效性驗證

    Linux系統啟動流程

    linux系統啟動流程Linux系統啟動流程Linux系統啟動流程圖1、加電自檢 上電自檢POST,主要負責檢測系統外圍關鍵設備(如:CPU、內存、顯卡、I/O、鍵盤鼠標等)是否正常, 自檢完成後從BIOS中設置的系統啟動順序來搜索用於啟動系統的驅動器2、grub引導(1)grub引導第一階段(stag

    Linux 開機啟動程序的順序

    kernel 順序 run 開始 開機 bin 加載 iso linux 1.加載BISO的硬件信息,並取得第一個開機代號 2.讀取第一個開機裝置的mbr的boot loader的信息 3.加載kernel操作系統核心信息,開始解壓縮,並驅動所有硬件裝置 4.kernel執

    Android5 Zygote 與 SystemServer 啟動流程分析

    進一步 null 正常的 rtb 這樣的 ket constant vml resp Android5 Zygote 與 SystemServer 啟動流程分析 Android5 Zygote 與 SystemServer 啟動流程分析 前言 zy

    linux系統啟動流程(CentOS5/6/7為例)

    centos 系統一個操作系統要完整啟動起來需要哪些步驟呢?今天以CentOS為例探索一下linux的啟動流程;一、Linux系統的組成--kernel+rootfs(根文件系統)kernel: 內核,進行進程管理、內存管理、網絡管理、驅動程序、文件系統、安全功能等等rootfs: 根文件系統1.內核設計流派

    LINUX啟動流程

    啟動 分享 src 引導 一個 技術分享 bio 化工 swap分區 (上圖片轉自一位高手所做) 啟動第一步--加載BIOS當你打開計算機電源,計算機會首先加載BIOS信息,BIOS信息是如此的重要,以至於計算機必須在最開始就找到它。這是因為BIOS中包含了CPU

    linux 系統啟動過程分析

    系統root 密碼丟失故障 linux啟動順序主板BIOS加電自檢 檢查硬件--> 讀取硬盤引導扇區(MBR)--> 啟動引導程序(grub)--> 選擇系統--> 加載系統內核(kernel shell)--> 啟動系統讀取相應的默認設置(環境變量,運行級別)--

    2017-9-11-Linux開機啟動腳本

    ges margin pla png linux發行版 com mar image height 還是先開門見山的說,Linux需要添加開機啟動程序有兩種方法:1、修改/etc/rc.d/rc.local腳本。2、在/etc/rc.d/init.d目錄下添加一個shell

    CentOS 5.X 開機啟動流程

    centos 啟動流程CentOS 5.X 開機啟動流程

    Linux啟動流程

    啟動流程前言:當我們了解了系統的啟動過程,那麽系統啟動出問題時,我們就能知道什麽地方出錯了,就能哪裏出錯修哪裏,不需要重裝系統。CentOS6和CentOS7啟動流程類似,不過CentOS6和7在啟動後期不一樣,CentOS6後期是init,CentOS7是systemd,那麽細節之處呢,跟著我一塊看看吧!l

    kexec 內核快速啟動流程分析

    -- 令行 並且 內存 tab 執行過程 family use -a 一、命令行 1. kexec -l $kpwd --append="$arg" 其中$kpwd =目標內核的路徑   $arg =傳給內核的參數,與/proc/cmdline一致時表示重啟現有內核

    linux開機啟動過程、PATH、過濾一級目錄、cd的參數、ls -lrt、命令切割日誌

    linux 開機啟動過程 cd ls 第二波命令正向我方來襲 :開機啟動過程、PATH、過濾一級目錄、cd的參數、ls -lrt、命令切割日誌 1.1 linux開機啟動過程1.1.1 開機自檢(BIOS)-- MBR引導 -- GRUB菜單 -- 加載內核(kernel)-- 運

    Linux開機啟動文件rc.local無法執行怎麽辦?

    關系 cal 刪除 ring 但是 怎麽辦 post 重啟 img rc.local是Linux系統中的一個重要的開機啟動文件,每次開機都要執行這個文件。但是有一些用戶的Linux系統無法執行這個文件,並導致了一系列的問題。遇到這個問題我們應該怎麽辦呢?   在L

    Linux開機啟動過程

    ref com top 加載 otto image process run pro 1.BIOS開機自檢2.讀取MBR:主引導記錄(Master Boot Record)3.GRUB:(Grand Unified BootLoader)多系統啟動程序4.Kernel:加載內