linux啟動時我們會看到許多啟動資訊。
init程式的型別:當計算機開啟電源後,首先是bios開機自檢,按照bios中設定的啟動裝置(通常是硬碟)來啟動。
作業系統接管硬體以後,首先讀入 /boot 目錄下的核心檔案。
init 程序是系統所有程序的起點,你可以把它比擬成系統所有程序的老祖宗,沒有這個程序,系統中任何程序都不會啟動。
init 程式首先是需要讀取配置檔案 /etc/inittab。
許多程式需要開機啟動。它們在windows叫做"服務"(service),在linux就叫做"守護程序"(daemon)。
init程序的一大任務,就是去執行這些開機啟動的程式。
但是,不同的場合需要啟動不同的程式,比如用作伺服器時,需要啟動apache,用作桌面就不需要。
linux允許為不同的場合,分配不同的開機啟動程式,這就叫做"執行級別"(runlevel)。也就是說,啟動時根據"執行級別",確定要執行哪些程式。
linux系統有7個執行級別(runlevel):
在init的配置檔案中有這麼一行: si::sysinit:/etc/rc.d/rc.sysinit 它呼叫執行了/etc/rc.d/rc.sysinit,而rc.sysinit是乙個bash shell的指令碼,它主要是完成一些系統初始化的工作,rc.sysinit是每乙個執行級別都要首先執行的重要指令碼。
它主要完成的工作有:啟用交換分割槽,檢查磁碟,載入硬體模組以及其它一些需要優先執行任務。
l5:5:wait:/etc/rc.d/rc 5這一行表示以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個終端,以便使用者登入系統。在inittab中的以下6行就是定義了6個終端:
1:2345:respawn:/sbin/mingetty tty1從上面可以看出在2、3、4、5的執行級別中都將以respawn方式執行mingetty程式,mingetty程式能開啟終端、設定模式。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
同時它會顯示乙個文字登入介面,這個介面就是我們經常看到的登入介面,在這個登入介面中會提示使用者輸入使用者名稱,而使用者輸入的使用者將作為引數傳給login程式來驗證使用者的身份。
一般來說,使用者的登入方式有三種:
對於執行級別為5的圖形方式使用者來說,他們的登入是通過乙個圖形化的登入介面。登入成功後可以直接進入 kde、gnome 等視窗管理器。
linux 的賬號驗證程式是 login,login 會接收 mingetty 傳來的使用者名稱作為使用者名稱引數。
然後 login 會對使用者名稱進行分析:如果使用者名稱不是 root,且存在 /etc/nologin 檔案,login 將輸出 nologin 檔案的內容,然後退出。
這通常用來系統維護時防止非root使用者登入。只有/etc/securetty中登記了的終端才允許 root 使用者登入,如果不存在這個檔案,則 root 使用者可以在任何終端上登入。
/etc/usertty檔案用於對使用者作出附加訪問限制,如果不存在這個檔案,則沒有其他限制。
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領域內大多用在伺服器上,很少遇到關機的操作。畢竟伺服器上跑乙個服務是永無止境的,除非特殊情況下,不得已才會關機。
正確的關機流程為:sync > shutdown > reboot > halt
關機指令為:shutdown ,你可以man shutdown 來看一下幫助文件。
例如你可以執行如下命令關機:
sync 將資料由記憶體同步到硬碟中。shutdown 關機指令,你可以man shutdown 來看一下幫助文件。例如你可以執行如下命令關機:shutdown –h 10『thisserver will shutdown after 10mins』這個命令告訴大家,計算機將在10分鐘後關機,並且會顯示在登陸使用者的當前螢幕中。shutdown –h now 立馬關機shutdown –h 20:25系統會在今天20:25關機shutdown –h +10十分鐘後關機shutdown –r now 系統立馬重啟shutdown –r +10系統十分鐘後重啟reboot 就是重啟,等同於shutdown –r now最後總結一下,不管是重啟系統還是關閉系統,首先要執行sync命令,把記憶體中的資料寫到磁碟中。halt 關閉系統,等同於shutdown –h now 和poweroff
關機的命令有shutdown –h now halt poweroff和init 0, 重啟系統的命令有shutdown –r now reboot init 6。
Linux 系統啟動過程(二)
linux啟動時會看到許多啟動資訊。linux啟動過程分為5個階段 核心的引導 執行init 系統初始化 建立終端 使用者登入資訊 當計算機開啟電源後,首先是bios basic input output system 開機自檢,按照bios中設定的啟動裝置 通常是硬碟 來啟動。作業系統接管硬體後,...
rhel系統啟動過程 Linux 系統啟動過程
按下系統的電源開關,過一會就可以看到linux的登入介面了。你是否曾經想過,從按下電源開關到登入介面出現,這後面到底發生了什麼?linux 系統在啟動過程中,首先是韌體 pc 上大多是 cmos bios 的物理檢測,諸如檢測系統的顯示卡 cpu 和硬碟等,可從系統按下電源後看到此檢測資訊 檢測無問...
rhel系統啟動過程 Linux系統啟動過程簡介
1 bios加電自檢 計算機啟動後,首先會進行韌體bios的自檢,即所謂的post,然後把保持在mbr主引導記錄中的主引導引導程式到記憶體中 2 載入主引導引導程式 mbr 主引導引導程式通過分割槽表查詢活動分割槽,然後將活動分割槽的次引導引導程式從裝置讀入記憶體並執行 3 載入次引導引導程式 gr...