Centos 啓動過程詳解

Centos 啓動過程

 

 

linux啓動時我們會看到許多啓動信息、

 

 

 

Linux系統的啓動過程並不是大家想象中的那麼複雜,其過程可以分爲5個階段:

第一步:內核的引導

第二步;運行 init

第三步:系統初始化

第四步:建立終端

第五步;用戶登錄系統

 

內核引導

當計算機打開電源後,首先是BIOS開機自檢,按照BIOS中設置的啓動設備(通常是硬盤)來啓動。

操作系統接管硬件以後,首先讀入 /boot 目錄下的內核文件。

 

運行init

init 進程是系統所有進程的起點,你可以把它比擬成系統所有進程的老祖宗,沒有這個進程,系統中任何進程都不會啓動。

init 程序首先是需要讀取配置文件 /etc/inittab。

 

運行級別

許多程序需要開機啓動。它們在Windows叫做"服務"(service),在Linux就叫做"守護進程"(daemon)。

init進程的一大任務,就是去運行這些開機啓動的程序。

但是,不同的場合需要啓動不同的程序,比如用作服務器時,需要啓動Apache,用作桌面就不需要。

Linux允許爲不同的場合,分配不同的開機啓動程序,這就叫做"運行級別"(runlevel)。也就是說,啓動時根據"運行級別",確定要運行哪些程序

 

7個運行級別

# 0 - 停機 ,機器關閉。(會導致無法正常啓動系統)

# 1 - 單用戶模式 (單用戶工作狀態,root權限,用於系統維護,禁止遠程登陸)

# 2 - 多用戶,但是沒有NFS  進入無網絡服務的多用戶模式

# 3 - 完全多用戶模式 ,是標準的運行級。

# 4 - 沒有用到 ,一般不用,在一些特殊情況下可以用它來做一些事情。例如在筆記本 電腦的電池用盡時,可以切換到這個模式來

# 5 - X11   ,進到X Window系統了。 登陸後進入圖形GUI模式

# 6 - 重新啓動 ,運行init 6機器就會重啓默認運行級別不能設爲6

 

runlevel 查看運行級別:

 

 

修改運行級別:vi  /etc/inittab  修改完成需要執行reboot 重啓

另外init 0爲關機,init 6爲重啓系統

 

 

 

系統初始化

在init的配置文件中有這麼一行: si::sysinit:/etc/rc.d/rc.sysinit 它調用執行了/etc/rc.d/rc.sysinit,而rc.sysinit是 一個bash shell的腳本,它主要是完成一些系統初始化的工作,rc.sysinit是每一個運行級別都要首先運行的重要腳本。

它主要完成的工作有:激活交換分區,檢查磁盤,加載硬件模塊以及其它一些需要優先執行任務

cd /etc/rc.d

ll

這一行表示以5爲參數運行/etc/rc.d/rc,/etc/rc.d/rc是一個Shell腳本,它接受5作爲參數,去執行/etc/rc.d /rc5.d/目錄下的所有的rc啓動腳本,/etc/rc.d/rc5.d/目錄中的這些啓動腳本實際上都是一些連接文件,而不是真正的rc啓動腳本, 真正的rc啓動腳本實際上都是放在/etc/rc.d/init.d/目錄下。

而這些rc啓動腳本有着類似的用法,它們一般能接受start、stop、restart、status等參數。

/etc/rc.d/rc5.d/中的rc啓動腳本通常是K或S開頭的連接文件,對於以 S 開頭的啓動腳本,將以start參數來運行。

而如果發現存在相應的腳本也存在K打頭的連接,而且已經處於運行態了(以/var/lock/subsys/下的文件作爲標誌),則將首先以stop爲參數停止這些已經啓動了的守護進程,然後再重新運行。

這樣做是爲了保證是當init改變運行級別時,所有相關的守護進程都將重啓。

至於在每個運行級中將運行哪些守護進程,用戶可以通過chkconfig或setup中的"System Services"來自行設定。

 

 

 

 

建立終端

rc執行完畢後,返回init。這時基本系統環境已經設置好了,各種守護進程也已經啓動了。

init接下來會打開6個終端,以便用戶登錄系統.

 

用戶登錄系統

 

一般來說,用戶的登錄方式有三種:

  • (1)命令行登錄
  • (2)ssh登錄
  • (3)圖形界面登錄

 

 

 

對於運行級別爲5的圖形方式用戶來說,他們的登錄是通過一個圖形化的登錄界面。登錄成功後可以直接進入 KDE、Gnome 等窗口管理器。

 

Linux 關機

在linux領域內大多用在服務器上,很少遇到關機的操作。畢竟服務器上跑一個服務是永無止境的,除非特殊情況下,不得已纔會關機。

正確的關機流程爲:sync > shutdown > reboot > halt

 

sync 將數據由內存同步到硬盤中。

shutdown 關機指令,你可以man shutdown 來看一下幫助文檔。例如你可以運行如下命令關機:

shutdown –h +10  10 分鐘關閉計算機

 

 

 

shutdown –h 23:55 系統會在今天23:55關機

 

shutdown -c 取消關機 

Shutdown -r now 系統立刻重啓等同reboot 命令

 

 

 

Shutdown -r +10  10 分鐘之後重啓系統

Halt 關閉系統 同時切斷電源

注意:

不管是重啓系統還是關閉系統,首先要運行 sync 命令,把內存中的數據寫到磁盤中

關機的命令有 shutdown –h now halt poweroff 和 init 0 , 重啓系統的命令有 shutdown –r now reboot init 6

 

更新學習資料:https://edu.csdn.net/course/detail/28103 

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