站長資訊網
        最全最豐富的資訊網站

        Linux 系統啟動過程及原理解析

        【概述】

        Linux 啟動時會看到許多啟動信息,但 Linux系統的啟動過程并沒有想象中的復雜,其過程大致可分為7個階段:

        內核的引導運行 init系統初始化建立終端?用戶登錄系統圖形模式與文字模式的切換方式
        關機

        【內核引導】

        當計算機打開電源啟動后,首先進行的是BIOS開機自檢,即:按照BIOS中設置的啟動設備(通常是硬盤)來啟動。

        操作系統接管硬件以后,首先讀入 /boot 目錄下的內核文件,這個過程即為內核引導過程。

        Linux 系統啟動過程及原理解析

        【運行init】

        1.init文件類型

        SysV: init, CentOS 5之前, 配置文件: /etc/inittab

        Upstart: init,CentOS 6, 配置文件: /etc/inittab, /etc/init/*.conf

        Systemd: systemd, CentOS 7,配置文件: /usr/lib/systemd/system、 /etc/systemd/system

        注:init 進程是系統所有進程的起點,沒有這個進程,系統中任何進程都不會啟動,init 程序首先讀取的配置文件是 /etc/inittab

        Linux 系統啟動過程及原理解析

        2.運行級別

        許多程序需要開機啟動,這些程序在 Windows 中叫做"服務"(service),在 Linux 中叫做"守護進程"(daemon),init 進程的一大任務,就是去運行這些開機啟動的程序。

        不同的場合需要啟動不同的程序(比如用作服務器時,需要啟動 Apache,用作桌面則不需要),Linux 允許為不同的場合,分配不同的開機啟動程序,這就叫做"運行級別"(runlevel),即:啟動時根據"運行級別",確定要運行的程序。

        Linux 系統啟動過程及原理解析

        Linux 系統有7個運行級別(runlevel):

        運行級別0:系統停機狀態,系統默認運行級別不能設為0,否則不能正常啟動運行級別1:單用戶工作狀態,root權限,用于系統維護,禁止遠程登陸運行級別2:多用戶狀態(沒有NFS)運行級別3:完全的多用戶狀態(有NFS),登陸后進入控制臺命令行模式運行級別4:系統未使用,保留運行級別5:X11控制臺,登陸后進入圖形GUI模式運行級別6:系統正常關閉并重啟,默認運行級別不能設為6,否則不能正常啟動

        【系統初始化】

        在 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"來自行設定。

        Linux 系統啟動過程及原理解析

        【建立終端】

        rc 執行完畢后,返回 init,此時基本系統環境已經設置好了,各種守護進程也已啟動了,init 接下來會打開6個終端,以便用戶登錄系統。

        在 inittab 中的以下6行就是定義了6個終端:

          1:2345:respawn:/sbin/mingetty tty1  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

        從上面可以看出在2、3、4、5的運行級別中都將以 respawn 方式運行 mingetty 程序。

        mingetty 程序能打開終端、設置模式,同時它會顯示一個文本登錄界面,這個界面就是我們經常看到的登錄界面,在界面中會提示用戶輸入用戶名,而用戶輸入的用戶將作為參數傳給 login 程序來驗證用戶的身份。

        【用戶登錄系統】

        一般來說,用戶的登錄方式有三種:

        命令行登錄SSH(Secure Shell)登錄圖形界面登錄

        Linux 系統啟動過程及原理解析

        對于運行級別為5的圖形方式用戶來說,登錄是通過一個圖形化的登錄界面,登錄成功后可以直接進入 KDE、Gnome 等窗口管理器。

        對于以文本方式登錄的情況:當我們看到 mingetty 的登錄界面時,就可以輸入用戶名和密碼來登錄系統。Linux 的賬號驗證程序是 login,login 會接收 mingetty 傳來的用戶名作為用戶名參數,然后 login 會對用戶名進行分析,如果用戶名不是 root,且存在 /etc/nologin 文件,login 將輸出 nologin 文件的內容,然后退出。

        以文本方式登錄通常用于系統維護時防止 非root用戶 登錄,只有在 /etc/securetty 中登記了的終端才允許 root用戶 登錄,如果不存在這個文件,則 root用戶 可以在任何終端上登錄。

        【圖形模式與文字模式的切換方式】

        Linux預設提供了六個命令窗口終端機用于登錄。

        這個六個窗口分別為 tty1,tty2 … tty6,可以按下 Ctrl + Alt + F1 ~ F6 來切換,默認登錄的就是第一個窗口,也就是 tty1。

        如果安裝了圖形界面,默認情況下是直接進入圖形界面,此時可以按 Ctrl + Alt + F1 ~ F6 來進入其中一個命令窗口界面,當進入命令窗口界面后再返回圖形界面只要按下 Ctrl + Alt + F7 就可以返回。

        如果你用的 VMware虛擬機,命令窗口切換的快捷鍵為 Alt + Space + F1~F6,如果在圖形界面下按 Alt + Shift + Ctrl + F1~F6 來切換至命令窗口。

        Linux 系統啟動過程及原理解析

        【關機】

        Linux 大多用在服務器上,很少遇到關機的操作,因為在服務器上跑一個服務是永無止境的,除非特殊情況下不得已才關機。

        正確的關機流程為:sync > shutdown > reboot > halt

        關機指令為:shutdown (具體的可以用 man shutdown 來看幫助文檔)

        例如可以運行如下命令關機:

          sync 將數據由內存同步到硬盤中。  shutdown –h 10 ‘This server will shutdown after 10 mins’ 這個命令告訴大家,計算機將在10分鐘后關機,并且會顯示在登陸用戶的當前屏幕中。  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

        注:

        無論是重啟系統還是關閉系統,首先都要運行 sync 命令,將內存中的數據寫到磁盤中。常用的關機命令有 shutdown –h now halt poweroffinit 0?常用的重啟命令有 shutdown –r now reboot init 6

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 亚洲精品成人片在线观看| 久久九九精品99国产精品| 一本一道久久a久久精品综合| 国产精品成人在线| 亚洲午夜精品一级在线播放放 | 国产精品久久99| 亚洲精品国产成人片| 精品久久久久中文字| 99久久夜色精品国产网站| 久久国产精品-久久精品| 国产精品白浆在线观看免费| 亚洲日韩国产AV无码无码精品 | 精品国偷自产在线| 亚洲av永久无码精品古装片| 久久精品国产第一区二区| 91久久精品无码一区二区毛片| 99精品久久精品| 国产精品毛片一区二区三区 | 国产精品成人久久久久三级午夜电影 | 国产精品污视频| 3D动漫精品啪啪一区二区下载| 久久精品人人做人人爽97| 亚洲精品乱码久久久久久自慰| 亚洲国产精品日韩| 青娱乐国产精品视频| 欧美日韩国产精品| 免费短视频软件精品一区二区| 国产在线精品一区二区高清不卡| 99热精品久久只有精品| 99re66在线观看精品免费| 亚洲国产精品第一区二区| 色偷偷888欧美精品久久久| 精品国产免费一区二区三区香蕉 | 久久久久人妻精品一区三寸蜜桃 | 亚洲av永久无码精品网站| 中文字幕无码久久精品青草| 欲帝精品福利视频导航| 亚洲热线99精品视频| 久久亚洲私人国产精品vA| 久久精品国产第一区二区三区| 精品少妇人妻av无码久久|