Linux引導流程:
1、按下電源的第一個啟動步驟:啟動固件firmware→ POST加電自檢
檢查硬件的加載情況,如,鍵盤,內存等。
跟操作系統無關。因此,當你新添加了一塊硬盤,第一步就是應該首先進入到固件模式,檢測固件是否已經識別出這塊網卡!
同步軟硬件時鐘:【理論上這兩個時間應該是一致的】
hwclock顯示硬件時鐘
hwclock-h:其中詳細的說明了同步時鐘的選項
改變時間:
使用man查看hwclock,或者date就會給出詳細的說明信息
當第一個步驟順利進行完成後:
2、讀取MBR[masterboot record,主引導記錄]:在Linux中為:GRUB
【MBR位於位於磁盤的0柱面,0磁頭,1扇區如圖:】
進入這一步驟的目的是讀取
MBR中的數據:
1、Bootloader:自舉程序,自啟動程序
2、Partitiontable:磁盤分區表
3、MagicNumber:結束標志字
最重要的作用:載入內核!
grub.conf分析:
kernel/vmlinuxz-2.6.18-194.e15 ro root....用來指定內核的位置
2:主板本號
6:次版本號,如果此處為奇數為測試版,偶數為正式版
18:末版本號
關於內核:
是一個可執行文件,是一個文件,並不是一堆文件
z-代表是一個壓縮文件,因此在啟動的時候,他會不停的解壓縮這個文件
3、載入內核:在此期間只有兩個作用:
1、驅動硬件
2、啟動進程init:init啟動後讀取配置文件inittab,執行缺省運行級別,從而繼續引導過程。在UNIX系統中,init時第一個可以存在的進程,它的PID恆為1【通常, PID是隨機分配的,但是init特殊,可以通過命令:ps-el查看。】
附:PPID:父進程
父子進程關系:父進程結束,子進程必須終止
Linux系統中init名義上可以說是所有進程的父進程
init的PID恆為1,但它也必須向一個更高級的功能負責:PID為0的內核調度器(Kernelscheduler)
內核調度器負責:分配系統時間,進程間切換
4、init讀取配置文件/etc/inittab
分析Linux的運行級別,如圖:
分析:
0-halt:關機
1-單用戶模式,只有root可以登錄,沒有圖形界面
【修復模式,類似與Windows的安全模式】
2-多用戶模式,但是也沒有圖形界面,1與2是Linux服務器運用最多的模式
3-與2類似,添加了NFS
4-沒有使用的,可以由用戶自定義
5-系統缺省運行級別:x11說明是圖形環境,圖形化的多用戶環境
6-重啟
運行級別切換: