centos操作系統的啓動流程

一般情況下X86架構平臺的啓動流程:
1.POST:Power-on Self Testing,加電自檢
保證硬件的正常操作,從而能夠正確的使用各種硬件
2.BootSequence(程序的啓動順序)
決定到底從何種設備加載操作系統內核;通常可選的設備包括:光驅,硬盤,U盤,網絡接口;

按照給定的順序,依次查找各個設備,第一個被找出有引導程序(BootLoader)即爲本次啓動要用到的設備;

Bootloader:引導程序,引導加載器
GRUB:GRand Uniform BootLoader 全球統一引導加載器;
Centos 6以前的都是
GRUB 0.x:legacy GRUB
Centos 7:
GRUB 1.x:grub2

grub提供的功能:
1.爲用戶提供了一個可供選擇的菜單,菜單以列表的方式列舉了各個可以引導啓動的操作系統內核;
2.可以將用戶選定內核核心文件裝載到RAM中,並予以解壓縮,展開之後,將系統的控制權交給內核;
3.可以提供交互式的命令行接口;
4.通過私密口令來保證菜單和內核啓動屬性的安全性;

3.內核
自身初始化:
1)探測所有能被誰別到的所有的硬件設備;
2)加載硬件的驅動程序,有可能要藉助於ramdisk/ramfs加載驅動程序;
3)以只讀的方式掛載根文件系統;
4)在根文件系統中查找並運行第一個用戶空間中的應用程序:/sbin/init

4.Init
init程序:
運行級別(Run-level);爲了系統的運行和維護等目的而設置的管理機制;所有的管理類操作都必須依靠shell腳本實現;
七個運行級別:
0 - 關機
1 - 單用戶模式,無需密碼認證,維護和調試;
2 - 多用戶模式,不會啓動NFS,維護模式;
3 - 完全的多用戶模式,不包含圖形界面,只能使用CLI;
4 - 預留級別,目前無特殊使用目的;但其設置習慣上與運行級別3保持相同;
5 - 完全多用戶模式,默認激活GUI和CLI;默認使用GUI;
6 - 重啓

查詢當前運行級別:
#who - r
#runlevel
修改運行級別:
實時修改:
init [0-6]
永久修改:
修改init的配置文件:/etc/inittab
id:#:initdefault:

    /etc/inittab文件的主要作用:
        1.在整個系統初始化的過程中決定執行那些操作;
            啓動或關閉那些後臺服務;
            如何進行系統初始化;
            在驗證用戶身份無誤之後,如何爲用戶提供登錄提示界面;
            當備用電源失效或重新生效之後,如何指揮系統操作;
            定義了"Ctrl+Alt+Delete"組合鍵被同時按下時,系統將採取的行爲;

            /etc/rc.d/rc.sysinit的主要作用:
        1.設置主機名;
        2.設置啓動時的歡迎信息;
        3.激活udev和SELINX;
        4.掛載/etc/fstab/文件中定義的所有有效的文件系統;
        5.激活swap設備;
        6.檢測rootfs,並重新以讀寫的方式掛載rootfs;
        7.設置系統時間
        8.根據/etc/sysctl.conf/設置內核參數;
        9.激活lvm和軟件RAID等高級邏輯設備;
        10.加載額外的設備驅動程序;
        11.完成初始化之後的清理工作;

    /etc/rc.d/rc腳本的主要作用:
        1.根據特定的運行級別啓動或關閉對應目錄中的系統服務進程;
            K*:要停止的系統服務進程
            S*:要啓動的系統服務進程

            根據for循環遍歷的順序,數字的大小將絕定腳本被執行的先後順序;
        2.rc腳本可以接受一個運行級別的數字表示作爲參數;
        3.有rc腳本關聯的/rc.d/rc#.d中的文件其實是鏈接文件,其鏈接目標路徑爲:/etc/rc.d/init.d目錄中的各服務管理腳本;

/etc/rc.d/rc.local
    是在init程序引導用戶空間進程的過程中,所執行的最後一個腳本;因此不便於或不需要寫在系統服務相關的腳本中內容,但又期望可以開機運行的功能,可以直接寫在此腳本中;

打印登錄提示符:/sbin/mingetty $TTY
    mingetty程序會調用login程序,打開虛擬終端;除了mingetty之外,諸如getty等之類的程序也可以完成此類生成虛擬控制檯的功能;

    如果默認的運行級別爲5,則需要/etc/x11/preform腳本打卡圖形用戶界面終端;

    無論哪個程序或腳本,最後都會給用戶打印一個登錄提示符;

小結:CentOS 5、6:
1.內核啓動流程:
POST(BIOS) --> BootSequence(BIOS) --> Bootloader(GRUB) --> vmlinuz(initrd|initramfs) --> rootfs(ro) --> /sbin/init

2.用戶空間啓動流程:
    /sbin/init --> /etc/inittab(/etc/init/*.conf) --> 設置默認的運行級別 --> /etc/rc.d/rc.sysinit,完成系統初始化 --> /etc/rc.d/rc,關閉或啓動相應的運行級別下的各系統服務  --> Ctrl+Alt+Delete組合熱鍵功能  --> UPS電源失效或恢復之後的操作  --> /etc/rc.d/rc.local腳本 --> 生成登錄界面,打印登錄提示符
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章