Linux系統啓動流程html
從11月底報名馬哥的Linux培訓班,12月初真正開始學習,已通過去一個多月的時間了,從學習Linux的發展史開始、跟着學習命令行、文件系統掛載與管理、目錄、Bash Shell的基本特性等等,Linux真的是博大精深,今天以CentOS 5,CentOS 6的啓動過程進行一下簡單的總結。因爲才疏學淺,知識所限,有些地方分析不妥之處還請各位高手不吝賜教。linux
系統啓動過程主要通過如下幾個流程:小程序
POST》BootSequence(BIOS)》Bootloader(MBR)》Kernel(Ramdisk)》Rootfs(只讀)》INITbash
經過上述流程大概的瞭解了Linux從按下電源器開始,到用戶登陸界面的整個流程,接下來咱們再補充幾個比較重要的概念,它們是啓動過程中不可或缺的部分:網絡
啓動第三步:Boot loaderide
Boot Loader 就是在操做系統內核運行以前運行的一段小程序。經過這段小程序,咱們能夠初始化硬件設備、創建內存空間的映射圖,從而將系統的軟硬件環境帶到一個合適的狀態,以便爲最終調用操做系統內核作好一切準備。
系統讀取內存中的grub配置信息(通常爲menu.lst或grub.lst),並依照此配置信息來啓動不一樣的操做系統。學習
啓動第五步:
1)Linux的運行級別(用戶層init依據inittab文件設置運行級別)ui
功能:它是爲了系統的運行或維護等應用目的而設定的: 0-6:7個級別 0 : 關機 1 : 單用戶模式式(root,無需登陸),single,維護模式 2 : 多用戶模式,會啓動網絡功能,但不會啓動NFS:維護模式 3 : 多用戶模式,正常模式,文本界面 4 : 預留級別,功能跟級別3同樣,經過不使用 5 : 多用戶模式,正常模式,圖形界面 6 : 重啓 默認級別 3,5 切換級別 init # (#表明對應的級別號) 查看級別 [root@jimjimlv ~]# runlevel N 5 [root@jimjimlv ~]# who -r run-level 5 2016-01-15 17:07
2)不一樣運行級別的腳本程序
系統會運行rc0.d到rc6.d中的相應的腳本程序,來完成相應的初始化工做和啓動相應的服務
存儲位置
spa
[root@jimjimlv ~]# ls /etc/rc.d/ init.d rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d rc.local
3)執行/etc/rc.d/rc.sysinit: 系統初始化腳本
操作系統
(1)設置主機名 (2)設置歡迎信息 (3)激活udev和selinux (4)掛載/etc/fstab文件中定義的文件系統 (5)檢測根文件系統,並以讀寫方式從新掛載根文件系統 (6)設置系統時鐘 (7)激活swap設備 (8)根據/etc/sysctl.conf文件設置內核參數 (9)激活lvm及software raid設備 (10)加載額外設備的驅動程序 (11)清理操做
它的整個流程爲:/sbin/init --> (/etc/inittab)-->設置默認運行級別-->運行系統初始腳本,完成系統初始化-->>關閉對應下須要關閉的服務,啓動須要啓動服務-->設置登陸終端
以上總結只是描述Linux在啓動過程當中涉及的幾大模塊,每一個大模塊下還有不少的小模塊,如下附上一張不錯的Linux系統啓動流程圖:
參考文獻:
http://blog.chinaunix.net/uid-23069658-id-3142047.html
http://blog.itpub.net/8111049/viewspace-680043
http://blog.chinaunix.net/uid-26495963-id-3066282.html
http://baike.baidu.com/subview/9485/9079238.htm