CentOS6是如何啓動的

linux的啓動其實和windows的啓動過程是很類似的,不過Windows我們是無法看到啓動信息的,而Linux啓動我們會看到許多啓動信息,例如某個服務是否啓動。Linux系統的啓動過程大體上可以分爲五個部分:內核引導、運行init、系統初始化、建立終端、用戶登錄系統。

  1. 內核引導

    當計算機打開電源後,首先是BIOS開機自檢,按照BIOS中設置的啓動設備(一般是硬盤)來啓動。緊接着啓動設備上的grub程序開始引導Linux,當引導程序成功完成任務後,Linux從它們手中接管了CPU的控制權,然後CPU就開始執行Linux的核心映像代碼,開始了Linux啓動過程。也就是所謂的內核引導開始了額,在內核引導過程中其實是很複雜的,我們就當它是一個黑匣子,反正是Linux內核做了一系列工作,最後內核調用加載了init程序,至此內核引導的工作就完成了。交給了下一個主角init。

  2. 運行init

    init進程是系統所有進程的起點,你可以把它比擬成系統所有進程的老祖宗,沒有這個進程,系統中任何進程都不會啓動。init最主要的功能就是準備軟件執行的環境,包括系統的主機名、網絡設定、語言、文件系統格式及其他服務的啓動。而所有的動作都會通過init的配置文件/etc/inittab來規劃,而inittab內還有一個很重要的設定內容,就是默認的runlevel(開機運行級別)。先來看看運行級別runlevel就是通過設定級別讓Linux的使用環境不同的。我們看看這個inittab文件裏面的支持級別。

    blob.png

    inittab配置文件格式和之前老版本centos5或者更老版本有很大改動。runlevel公七個:0表示關機,1表示單用戶,2表示沒有網絡的命令行級別,4爲保留級別,5爲圖形化級別,6爲重啓,在這裏大多數服務器用的都是3級別,我自己的截圖屬於學習使用所以顯示 5.需要我們特別注意的是這裏除了可以設置235外其他級別都不能設置。該文件的前面部分,可以看到很多行都是提及到某個配置文件,而所有配置文件都在/etc/init/目錄下。

  3. 系統初始化

    系統初始化,就是執行/etc/init/下各個配置文件。inittab配置文件中有這一行“system initialization is started by  /etc/init/rcs.conf”也就是說系統初始化會先執行“/etc/init/rcs.conf”而該配置文件中又有一行“exec/etc/rc.d/rc.sysinit”所以,重心又轉移到這個rc.sysinit文件上,它會做如下工作:激活交換分區,檢查磁盤,加載硬盤模塊以及其他一些需要優先執行任務。當rc.sysinit程序執行完畢後,將返回init繼續下一步,又到了/etc/init/rc.conf,在這配置文件裏,最關鍵的一行是“exec/etc/rc.d/rc $RUNLEVEL”而$RUNLEVEL是在/etc/inittab中定義的(最後下面一行),以我的爲例$RUNLEVEL=5,所以此時會執行“/etc/rc.d/rc 5”此時實際上是把/etc/rc.d/rc5.d/下的腳本都給執行了,隨後/etc/rc.d/rc.local也會被執行,通常我們會把開機啓動執行的命令反倒這個腳本下。服務執行完,系統初始化也就完成了。接下來改建立終端了。

  4. 建立終端

    建立終端室友配置文件/etc/init/tty.conf,/etc/init/serial.conf和/etc/sysconfig/init等配置文件來完成的。在2345的運行級別中豆漿以respawn方式運行mingetty程序,mingetty程序能打開終端、設置模式。同時它會顯示個億文本登錄界面,這個界面就是我們經常看到的登錄界面,在這個登錄界面中會提示用戶輸入用戶名,而用戶輸入的用戶將作爲參數傳給login程序來驗證用戶身份。

  5. 用戶登錄系統

    對於運行級別爲5的圖形方式用戶來說,他們的登錄時通過一個圖形化的登錄界面。登錄成功後可以直接激怒kde、gnome等窗口管理器。而本文主要講的還是文本方式登錄的情況:當我們看到mingetty的登錄界面是,我們就可以輸入用戶名和密碼來登錄系統了。

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