1. 程式人生 > >linux學習-Linux系統啟動過程

linux學習-Linux系統啟動過程

linux 關機 mage 模式 服務 關機 win sin class windows系統

linux系統啟動過程

Linux系統的啟動過程並不是大家想象中的那麽復雜,其過程可以分為5個階段:

  • 內核的引導。
  • 運行init。
  • 系統初始化。
  • 建立終端 。
  • 用戶登錄系統。

內核引導

電源開機後,首先是BIOS內檢,按照BIOS中設置的啟動設備(通常是硬盤)來啟動。

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

運行init

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

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

運行級別

許多程序需要開機啟動的,在windows系統下叫做‘服務’(server),在Linux下叫‘守護進程’(daemon)。

init進程的一大任務,就是去運行開機啟動的程序,為其分配需要的系統資源。這種依據不同場合,所需分配不同的開機啟動程序的動作,叫做“運行級別”(runlevel)。

啟動時,根據運行級別,運行不同的程序。

Linux系統有7類運行級別

運行級別0:系統停機狀態,系統默認運行級別不能設為0,否則不能正常啟動
運行級別1:單用戶工作狀態,root權限,用於系統維護,禁止遠程登陸
運行級別2:多用戶狀態(沒有NFS)
運行級別3:完全的多用戶狀態(有NFS),登陸後進入控制臺命令行模式
運行級別4:系統未使用,保留
運行級別5:X11控制臺,登陸後進入圖形GUI模式
運行級別6:系統正常關閉並重啟,默認運行級別不能設為6,否則不能正常啟動

系統初始化

在init的配置文件中有這麽一行: si::sysinit:/etc/rc.d/rc.sysinit 它調用執行了/etc/rc.d/rc.sysinit,而rc.sysinit是一個bash shell的腳本,它主要是完成一些系統初始化的工作,rc.sysinit是每一個運行級別都要首先運行的重要腳本。 它主要完成的工作有:激活交換分區,檢查磁盤,加載硬件模塊以及其它一些需要優先執行任務。

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

建立終端

rc執行完畢後,返回init。這時系統開機啟動的環境都已配置好了。

nit接下來會打開6個終端,以便用戶登錄系統。在inittab中的以下6行就是定義了6個終端:

1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6

用戶登錄系統

一般而言,用戶登錄有三種方式:

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

圖形界面和命令行模式切換

Linux預設提供了六個命令窗口終端機讓我們來登錄。

默認我們登錄的就是第一個窗口,也就是tty1,這個六個窗口分別為tty1,tty2 … tty6,你可以按下Ctrl + Alt + F1 ~ F6 來切換它們。

如果你安裝了圖形界面,默認情況下是進入圖形界面的,此時你就可以按Ctrl + Alt + F1 ~ F6來進入其中一個命令窗口界面。

當你進入命令窗口界面後再返回圖形界面只要按下Ctrl + Alt + F7 就回來了。

如果你用的vmware 虛擬機,命令窗口切換的快捷鍵為 Alt + Space + F1~F6. 如果你在圖形界面下請按Alt + Shift + Ctrl + F1~F6 切換至命令窗口。

技術分享圖片

Linux 關機

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

正確的關機流程為:sysnc > shutdown > reboot > halt

關機指令為:shutdown ,你可以man shutdown 來看一下幫助文檔。(在Linux領域,man一下會收獲很多)

例如你可以運行如下命令關機:

sync 將數據由內存同步到硬盤中。
 
shutdown 關機指令,你可以man shutdown 來看一下幫助文檔。例如你可以運行如下命令關機:
 
shutdown –h 10 ‘This server will shutdown after 10 mins’ 這個命令告訴大家,計算機將在10分鐘後關機,並且會顯示在登陸用戶的當前屏幕中。
 
Shutdown –h now 立馬關機
 
Shutdown –h 20:25 系統會在今天20:25關機
 
Shutdown –h +10 十分鐘後關機
 
Shutdown –r now 系統立馬重啟
 
Shutdown –r +10 系統十分鐘後重啟
 
reboot 就是重啟,等同於 shutdown –r now
 
halt 關閉系統,等同於shutdown –h now 和 poweroff

最後總結一下,不管是重啟系統還是關閉系統,首先要運行sync命令,把內存中的數據寫到磁盤中。

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

參考:https://code.ziqiangxuetang.com/linux/linux-system-boot.html

linux學習-Linux系統啟動過程