Linux下有三個特殊進程:shell
init進程一開始是內核態,而後在運行了一個用戶態的init程序以後,轉成用戶態,以後只能在用戶態工做。用戶想要進入內核態只能經過調用API。
init進程要把本身轉換成用戶態,就須要運行一個用戶態的應用程序(init程序),須要運行這個程序就須要找到這個程序,須要找到這個程序就須要掛載根文件系統,由於全部的應用程序都在文件系統中。
因此,須要先掛載根文件系統,並找到用戶態下的init程序。centos
Linux中的全部進程都是由init進程建立並運行的。首先Linux內核啓動,而後在用戶空間中啓動init進程,再啓動其餘進程。在系統啓動完成後,init進程將變成守護進程監視系統的其餘進程。
init啓動了login進程(用戶登陸進程),命令行進程(提供命令行環境),shell進程(提供命令解釋和執行)
其中,shell進程是用戶登陸後運行的第一個程序。網絡
運行級別:socket
0 關機 1 單用戶 2 多用戶,會啓動網絡功能,但不會啓動NFS,是維護模式 3 多用戶 4 不使用,預留 5 圖形化界面 6 重啓 emergency 急救模式
直接使用init+運行級別centos7
在centos7中,init進程是systemed進程;在centos6中是upstart進程;在centos5中是init進程,在unbuntu中是init進程。命令行
Centos7啓動過程:
1.打開電源
2.POST加電自檢。初始化硬件設備,檢查系統主要外圍設備。啓動固化在主板上的ROM芯片上的BIOS程序,BIOS程序會檢測內存,CPU,IO設備等是否能正常運行。只要一通電,CPU就會自動加載BIOS程序,檢測完成以後進行硬件的初始化。
3.根據BIOS啓動的順序依次掃描各個引導設備,讀取MBR(主引導扇區,是硬盤的第一個扇區)中的主引導程序bootloader並加載到內存執行。
4.執行MBR中的BootLoader(centos7是GRUB2),加載其配置文件,提供一個菜單給用戶,選擇要啓動的系統或者內核版本。
5.加載內核,內核獲得系統控制權後,進行初始化。探測可識別的硬件設備,加載硬件驅動程序,以只讀方式掛載文件系統,運行用戶空間的第一個程序systemed。
6.加載systemed的配置文件,根據配置文件設置默認運行級別。
7.運行系統初始化腳本/etc/rc.d/rc.sysinit,完成系統初始化。
8.啓動終端,打印登陸提示符。code
unit文件:
systemed能夠管理全部的系統資源,不一樣的資源統稱爲unit文件。
unit文件一共有12種文件類型:blog