加電—加電自檢(BIOS)—硬件檢查linux
—MBR(找到須要啓動的系統,因爲實際計算機上可能會裝有多個系統)shell
—bootloader系統初始化,裝載kenel到內存windows
—內核執行,決定哪些設備須要驅動程序初始化,掛載根文件系統,啓動第一個進程inittomcat
—啓動/etc/rc.d/sysinit服務器
(這是由init執行的第一個腳本,在Redhat中,/etc/rc.d/rc.sysinit主要作在各個運行模式中相同的初始化工做,包括:調入keymap以及系統字體,啓動swapping,設置主機名,設置NIS域名,檢查(fsck)並mount文件系統,打開quota,裝載聲卡模塊,設置系統時鐘)網絡
(rc--run command運行命令,d-精靈進程,啓動過程看不到的進程,/etc文件下是很重要的配置文件,不要亂修改)數據結構
—加載其餘模塊(內存、硬盤、光驅等)app
—run level script(/etc/rc.d/rc $RUNLEVEL # $RUNLEVEL爲缺省的運行模式,最多6層,每一個層次啓動的程序是不同的,各個層次之間沒有關係)字體
—執行/etc/rc.d/rc.local(很是重要,在安裝tomcat後須要設置自啓動時修改這個) —執行/bin/login—shell啓動spa
拓展:Linux引導過程
系統加電以後,首先進行的硬件自檢,而後是bootloader對系統的初始化,加載內核。內核被加載到內存中以後,就開始執行了。一旦內核啓動運行,對硬件的檢測就會決定須要對哪些設備驅動程序進行初始化(這裏的硬件檢測與前面的硬件自檢不一樣,這是系統內核對硬件進行檢測以決定是否須要初始化)。從這裏開始,內核就可以掛裝根文件系統(這個過程相似於Windows識別並存取C盤的過程)。內核掛裝了根文件系統,並已初始化全部的設備驅動程序和數據結構等以後,就經過啓動一個叫init的用戶級程序,完成引導進程。
拓展:啓動順序
Init進程是系統啓動以後的第一個用戶進程,因此它的pid(進程編號)始終爲1。init進程上來首先作的事是去讀取/etc/目錄下inittab文件中initdefault id值,這個值稱爲運行級別(run-level)。它決定了系統啓動以後運行於什麼級別。運行級別決定了系統啓動的絕大部分行爲和目的。這個級別從0到6,具備不一樣的功能。不一樣的運行級定義以下:
# 0 - 停機(千萬別把initdefault設置爲0,不然系統永遠沒法啓動)
# 1 - 單用戶模式
# 2 - 多用戶,沒有 NFS
# 3 - 徹底多用戶模式(標準的運行級)
# 4 – 系統保留的
# 5 - X11 (x window)
# 6 - 從新啓動 (千萬不要把initdefault 設置爲6,不然將一直在重啓 )
拓展: /etc/rc.d/與/etc/rc.d/init.d的關係
在這裏先解釋一下init.d裏面放的都是什麼東西。這個目錄存放的是一些腳本,通常是linux以rpm包安裝時設定的一些服務的啓動腳本。系統在安裝時裝了好多rpm包,這裏面就有不少對應的腳本。執行這些腳本能夠用來啓動,中止,重啓這些服務。
前面說到,/etc/rc.d/init.d這個目錄下的腳本就相似與windows中的註冊表,在系統啓動的時候執行。程序運行到這裏(init進程讀取了運行級別),相信從命名的角度你們也能猜到該運行/etc/rc.d/init.d裏面的腳本了,否則它爲何也叫init.d呢。沒錯,是該運行init.d裏的腳本了,可是並非直接運行,而是有選擇的由於系統並不須要啓動全部的服務。
那麼,系統是如何選擇哪些須要啓動哪些不要呢?這時剛纔說的運行級別就起做用了。
在決定了系統啓動的run level以後,/etc/rc.d/rc這個腳本先執行。在RH9和FC7的源碼中它都是一上來就check_runlevel()(雖然實現的代碼不同,也大同小異),知道了運行級別以後,對於每個運行級別,在rc.d下都有一個子目錄分別是rc0.d,rc1.d ….. rc6.d。每一個目錄下都是到init.d目錄的一部分腳本一些連接。每一個級別要執行哪些服務就在相對應的目錄下,好比級別5要啓動的服務就都放在rc5.d下,可是放在這個rc5.d下的都是一些連接文件,連接到init.d中相對應的文件,真正幹活的init.d裏的腳本。
拓展:rc?.d的做用
rc?.d中的?表明不一樣的運行級別了,/etc/rc.d/rc根據其參數指定的運行模式(運行級別,你在inittab文件中能夠設置)來執行相應目錄下的腳本。凡是以Kxx開頭的,都以stop爲參數來調用;凡是以Sxx開頭的,都以start爲參數來調用。調用的順序按xx從小到大來執行。例如,假設缺省的運行模式是3,/etc/rc.d/rc就會按上述方式調用/etc/rc.d/rc3.d/下的腳本。
例如進入圖形模式的運行級別是5,就是說在rc5.d中的S開頭進程都會運行,網絡多用戶文本模式的運行級別是3,就是運行全部rc3.d中S開頭的進程。
單用戶模式就是rc1.d,若是是rc0.d就是關機,其中沒有S開頭的,都是K開頭的進程名字,表明殺掉進程。
注:其他操做(1)exit(2)logout(註銷)(3)reboot(重啓)(4)shutdown(有參數,能夠經過shutdown --help/shutdown --??/man shutdown—man【manual-手冊的意思】會詳細介紹指令,退出用q),即關機的意思,而後能夠關閉虛擬機的電源。
(5)通常敲init0也會關機。
注:NFS 網絡文件系統,有NFS時能夠聯網。
etc目錄做用:
/etc目錄用來存放系統中的配置文件,基本上全部的配置文件均可以在這裏找到。這些文件通常都以XXX.conf的形式命名。經過編輯這些文件, 就能夠對系統進行更改和管理。如/etc/xinetd.conf是xinetd服務的配置文件,/etc/resolv.conf是用來指定本機的 DNS服務器地址等。
咱們安裝好了一個新的軟件。其配置文件可能存放在/etc目錄下,也多是在其餘的目錄,如軟件主程序所在的目錄。有時爲了便於管理,能夠在/etc目錄下創建到新軟件配置文件的符號連接,這樣不管軟件如何安裝,咱們均可以在/etc目錄下找到其配置文件。
例如:DNS服務的named進程配置文件named.conf通常存放在/var/named目錄下,則能夠經過如下命令創建上述符號連接:
# ln –s /var/named/named.conf /etc/named.conf
之後再修改DNS服務的配置,只要編輯 /etc/named.conf就能夠了。
rc0.d是一個目錄,不是一個文件,以下:
——對於linux任意一個指令敲5次esc,會出現全部的指令。
——指令加上--help或者指令加上--?便可給出指令的相應提示信息或者用 man shutdown——這就能夠告訴咱們shutdown的相關操做
exist退出terminal終端,shutdown關機,logout註銷。