Centos 5,6的啓動流程

一般情況下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"組合鍵被同時按下時,系統將採取的行爲;

blob.png


/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腳本 --> 生成登錄界面,打印登錄提示符



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章