下面簡單介紹Linux中啟動過程和登入方式,啟動有:BIOS啟動、GRUB載入系統 、系統開機檔案,登入方式有多種,包括虛擬控制台和遠程登入等方式,有需要的朋友可參考參考。
Linux系統啟動過程
1、BIOS啟動
當系統加電後,電腦會首先從CMOS(complementary Metal Oxide Semiconductor)晶片中載入BIOS,並且檢測系統硬體基本資料,如記憶體、硬碟、處理器等。然後BIOS尋找是否有系統啟動盤,如果沒有,系統會尋找主引導區MBR(Master Boot Record)並運行記錄在MBR上的程式。通常這個程式就是作業系統的Loader程式(嵌入式系統中稱為BootLoader),其主要功能是指示系統在啟動之後所要載入的系統以及載入方式。例如,在MBR上運行Linux的Loader程式(GRUB和LILO)後,就可以載入Linux核心。
BIOS稱為韌體。在電腦系統中,BIOS程式是儲存於主板晶片中的,格式化硬碟對此住資訊沒有任何影響除使用專門工具可以對其進行擦除外,其內容始終是存在的。
2、GRUB載入系統
GRUB是一種系統啟動並執行Loader程式,一般情況下,安裝了Linux作業系統後,啟動系統時的第1個程式即是GRUB。
此程式用於載入作業系統核心(如果有多個作業系統,此程式可以用於選擇啟動多個作業系統)。
在Linux作業系統下,與啟動相關的應用程式位於/boot檔案夾下。運行GRUB時讀取的應用程式為/boot/grub/grub.conf檔案,修改此檔案可以設定載入作業系統的啟動等待時間(超過此等待時間後系統將啟動預設啟動作業系統)、啟動菜單、預設啟動作業系統和作業系統核心映像檔案及位置。
# ls -l /boot/grub/grub.conf //查看此檔案位置
# cat /boot/grub/grub.conf //顯示此檔案內容
3、系統開機檔案
在系統載入Linux核心後,系統將依次運行以下幾個核心程式。系統啟動並執行第1個核心檔案為/sbin/init,此程式將建立系統第1個進程,並將此進程作為整個系統以後應用程式的父進程,然後運行/etc/rc.d/rc.sysinit初始化系統。/etc/inittab是系統啟動並執行第3個重要程式,此程式主要用來選擇系統啟動層級,不同的啟動層級運行不同的程式及命令,這些檔案在/etc/rcX.d檔案夾下讀取。執行完成以上內容後,系統即載入使用者所特有的資訊。下面詳細介紹這些檔案。
(1)/sbin/init.此檔案位於/sbin檔案夾下,使用者可以在#提示符下查詢當前系統進程,可以發現init進程號為
0.在整個系統中,此進程必須處於活動狀態,除非系統關閉。
# ls /sbin/init //查看init檔案位置
# ps -aux //查看當前系統中所有進程
(2)/etc/rc.d/rc.sysinit.建立0進程後,系統將讀取檔案/etc/rc.d/rc.sysinit進行系統初始化。
系統初始化的內容有以下幾個方面:
設定環境變數內容;
讀取/etc/sysconfig/network;
使用fsck檢測檔案系統;
將啟動資訊經過dmesy存入/var/log/dmesg中;
使用/etc/sysconfig/clock檔案來初始化clock;
檢測系統參數proc並設定PNP;
運行rc.erial對序列埠進行初始化;
安裝root、proc檔案系統以及其他檔案系統;
設定字型,啟動Swapping等操作。
(3)/etc/inittab.讀取並檢測系統基本資料後,系統將讀取/etc/inittab檔案來選擇預設的運行層級,以決定啟動哪些系統服務。Linux包括6種運行層級,不同的運行層級將預設啟動不同的硬體和系統內容,例如,要啟動網路環境,必須在層級3和層級5中進行;要修改系統錯誤,一般在單一使用者模式層級1中進行。一般情況下,系統將預設啟運行層級3或層級5.
# cat /etc/inittab
6種運行層級的義如下:
0,掛起模式,建議不要設定成這一層級;
1,單一使用者模式,一般在系統修複時使用;
2,多使用者模式,但沒有網路檔案系統支援;
3,多使用者完整模式,很多伺服器選擇這種模式;
4,沒有使用;
5,為X11模式,即圖形介面,運行案頭系統需要選擇此層級;
6,重啟模式。
(4)/etc/rcX.d.根據/etc/inittab中選擇的預設層級,系統將讀取/etc/rcX.d檔案夾下的檔案(X即為對應的層級,如1,2,3...),此檔案夾下全部為S和K首碼檔案。
4、初始化使用者檔案
(1)/etc/rc.d/rc.local是一個指令檔,在完成以上初始化後,使用者可以在該檔案夾下載入系統啟動時要啟動並執行程式。系統啟動時自動啟動的程式即可以在此檔案中添加,相當於啟動時的一個批次程式。
(2)/etc/profile檔案。讀取/etc/rc.d/rc.local後,系統將設定環境變數,這是系統最主要的shell設定檔,也是使用者登入時系統最先檢測的檔案。主要包括PATH、USER、LOGNAME、MAIL、HOSTMAME等。
(3)/home/$USERNAME/./bash_profile檔案。讀取完/etc/profile檔案後,各使用者將讀取自己特有的設定檔,
除root使用者外,所有使用者都將分別讀取/home/$USERNAME/.bash_profile檔案並設定自身的環境變數。
執行完以上檔案後,Linux作業系統就可以登入了。
Linux登入方式
Linux是一個多使用者的網路作業系統,登入方式有多種,包括虛擬控制台和遠程登入等方式。Linux啟動到圖形介面後(層級3),系統提供了多個虛擬控制台,每個控制台相互獨立,互不影響,在字元介面下,可以通過按快速鍵Alt+F1~F6進行多個虛擬控制台之間的切換,使用startx可以切換到圖形介面;如果當前是圖形介面,可以通過按快速鍵Alt+Ctrl+F1~F6切換到字元虛擬終端,按Alt+Ctrl+F7可以返回圖形介面。
遠程登入是一種非常重要的登入方式,Linux伺服器一般都採用遠程登入的方式登入系統,通常使用telnet工具