中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux系統啟動流程

發布時間:2020-07-05 04:40:12 來源:網絡 閱讀:549 作者:何小帥 欄目:系統運維

CentOS6系統啟動流程

??操作系統(OS)也是一個程序,如果在硬件通電后讓這個特殊的程序運行起來,以及這個特殊的程序在啟動過程中做了什么,如下圖:
Linux系統啟動流程

??從圖中可知,系統啟動(不僅僅是Linux系統)大致可分為幾個主要過程:硬件初始化-->找到并加載操作系統的內核-->內核初始化-->操作系統運行環境初始化-->登錄初始化-->登錄成功后的用戶初始化(包含圖形界面初始化或shell的初始化)-->最終用戶成功進入
操作系統并開始使用操作系統。

下面以CentOS6系統進入命令行為例簡單描述一下上面的幾個主要過程。

1.按下電源通電。主板通電后,CPU開始工作,它執行固定地址處的一段非常小的硬編碼程序:BIOS,于是BIOS掌握了CPU控制權。

2.BIOS程序會進行硬件的上電自檢(Power-On Self-Test,POST)以確認有哪些硬件以及這些硬件是否故障。對于我們要探索的操作系統啟動流程來說,最重要的是會根據檢測到磁盤順序(除了磁盤,也可以是其它硬件設備,比如U盤、光盤、網卡等),按順序找到這些磁盤上正確的MBR,于是MBR開始掌握CPU控制權。

3.MBR是引導系統內核啟動的第一段代碼,它的位置固定處于磁盤的第一個扇區位置處(如果不固定,就不知道怎么找到MBR)。引導內核啟動的代碼段稱為Boot Loader,除MBR外,還需要通過其它引導系統的代碼段來一步步引導啟動內核,所以要引導一個內核的啟動,需要跳轉并執行多段BootLoader。根據使用的啟動管理工具(如LILIO、GRUB、GRUB2等)不同,這一段段的引導代碼段稱呼和存放位置都不一樣,但第一個引導內核啟動的代碼段一定稱為MBR,也一定處于磁盤的第一個扇區位置,所以MBR才稱為主引導記錄(Master Boot Record)。

4.當找到內核映像后,將內核映像裝載到內存中并解壓(如果被壓縮的話),內核開始掌握CPU控制權并運行起來,期間內核會做很多工作,包括內核的初始化、掛載真正的根目錄并從臨時根目錄切換到真正的根目錄、啟動一些重要的進程,例如idle、進程調度器、init進程等。然后開始執行用戶空間的第一個進程:init進程,于是init進程掌握了CPU的控制權,也從此開始進入用戶空間。

5.init進程開始運行后就表示操作系統真正已經啟動成功了,但它仍然需要做系統級別的初始化,比如設置主機名、設置硬件參數、加載硬件驅動、掛載/etc/fstab中的一些文件系統等等。系統級別的運行環境一切初始化完成后,于是提供用戶登錄的界面,即init啟動getty類的進程。

6.getty類的進程啟動后,將打開一個終端,并提示用戶輸入用戶名,然后啟動一個login進程讓用戶輸入密碼并驗證密碼,密碼驗證通過后再審核用戶是否有權登錄,如果允許登錄,將根據/etc/passwd中的配置啟動該用戶對應的shell進程,例如bash進程。

7.shell進程啟動后讀取該shell對應的配置文件,并按照登錄式、交互式的shell運行模式進行初始化,初始化完成后將進入登錄式、交互式的shell,也就是命令行下。

8.至此,用戶可以通過shell命令行來使用操作系統。

CentOS7系統啟動流程

CentOS7的啟動與CentOS6啟動不同之處有兩大點:
1)內核引導階段,CentOS7默認使用grub2引導,而CentOS6默認使用傳統的grub引導。
2)系統環境初始化和后面的過程。內核初始化完成后,啟動PID=1的過程,而CentOS7中這個進程是systemd,它和CentOS6中的init進程的初始化方式大不相同。

systemd特性:
1)系統初始化時實現服務并行啟動;
2)按需啟動守護進程;
3)自動化的服務依賴關系管理;
4)同時采用socket式與D-Bus總線式激活服務;
5)系統狀態快照。

以下簡述CentOS7的啟動流程,詳細內容參考:man bootup幫助手冊。
1)UEFI或BIOS初始化,運行POST開機自檢;
2)選擇啟動設備;
3)引導內核,做部分內核初始化工作,加載initramfs;
4)啟動systemd進程,systemd進程此時工作在initramfs環境下;
5)systemd執行initrd.target所有單元,包括掛載/etc/fstab、從ramdisk的虛根文件系統切換到真正的根文件系統;
6)systemd執行默認target配置,其配置文件為/etc/systemd/system/default.target;
7)systemd執行sysinit.target初始化系統及basic.target準備操作系統;
8)systemd啟動multi-user.target下的本機與服務器服務;
9)systemd執行multi-user.target下的/etc/rc.d/rc.local;
10)systemd執行multi-user.target下的getty.target讓用戶登錄;
11)啟動shell進程并初始化,最終進入命令行;

??上面的過程中最需要關注的便是大大提前了systemd的工作:在內核初始化階段就參與了剩下的工作。等到systemd完成了根文件系統的切換后,將正式進入操作系統的初始化過程,這時將進入步驟6),即根據默認target配置文件default.targe選擇默認的“運行級別”。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

加查县| 洛宁县| 泰宁县| 浦县| 乾安县| 三河市| 临潭县| 武隆县| 福清市| 乡城县| 锡林浩特市| 开封市| 泾阳县| 南皮县| 信丰县| 南岸区| 阿坝| 蓬莱市| 炉霍县| 保亭| 广河县| 白水县| 隆子县| 北海市| 滨州市| 平和县| 阿鲁科尔沁旗| 延津县| 明光市| 栾城县| 会东县| 章丘市| 铁岭县| 临潭县| 永泰县| 城固县| 柘荣县| 普兰县| 和顺县| 金门县| 清水县|