Linux系統的啓動過程並非你們想象中的那麼複雜,其過程能夠分爲5個階段:shell
操做系統接管硬件之後,首先讀入 /boot 目錄下的內核文件。bash
init 進程是系統全部進程的起點,你能夠把它比擬成系統全部進程的老祖宗,沒有這個進程,系統中任何進程都不會啓動。ssh
init 程序首先是須要讀取配置文件 /etc/inittab。spa
在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,登陸後進入GUI界面
rc執行完畢後,返回init。這時基本系統環境已經設置好了,各類守護進程也已經啓動了。blog
init接下來會打開6個終端,以便用戶登陸系統進程
6個終端 以respawn方式運行mingetty程序,mingetty程序能打開終端、設置模式。內存
同時它會顯示一個文本登陸界面,這個界面就是咱們常常看到的登陸界面,在這個登陸界面中會提示用戶輸入用戶名,而用戶輸入的用戶將做爲參數傳給login程序來驗證用戶的身份。get
通常來講,用戶的登陸方式有三種:
init程序的類型:
Linux容許爲不一樣的場合,分配不一樣的開機啓動程序,這就叫作"運行級別"(runlevel)。也就是說,啓動時根據"運行級別",肯定要運行哪些程序。
Linux系統有7個運行級別(runlevel):
至於在每一個運行級中將運行哪些守護進程,用戶能夠經過chkconfig或setup中的"System Services"來自行設定。
login會對用戶名進行分析:若是用戶名不是root,且存在/etc/nologin文件,login將輸出nologin文件的內容,而後退出。
這一般用來系統維護時防止非root用戶登陸。只有/etc/securetty中登記了的終端才容許root用戶登陸,若是不存在這個文件,則root能夠在任何終端上登陸。
/etc/usertty文件用於對用戶做出附加訪問限制,若是不存在這個文件,則沒有其餘限制。
關於界面切換:
若是原本在GUI界面中,按control + alt +[f1~f6]
切換到文字界面之後,按control + alt +f7(有的是alt +f7)切換回GUI界面。
若是在虛擬機中,有點不同,界面是control + alt +fF1和control + alt +F2,
在文本界面,運行startx命令,能夠進入到GUI界面,退出後,依然是文本界面
正確的關機流程爲:sync > shutdown > reboot > halt
sync 將數據由內存同步到硬盤中。
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