linux啟動時可以看到很多啟動資訊。
linux系統的啟動過程並沒有想象中那麼複雜,可以分為五個階段:
核心引導
計算機通電以後,首先bios會進行開機自檢,按照bios中設定的啟動裝置(通常是硬碟)來啟動。作業系統接管硬體以後,首先讀入/boot目錄下的核心檔案。
執行init
init程式是系統所有程序的起點,它可以被看作系統所有程序的老祖,沒有這個程序,系統中的程序都不會啟動。init程式首先需要讀取配置檔案/etc/inittab
執行級別
許多程式需要開機啟動。它們在windows叫做」服務」(service),在linux就叫做」守護程序」(daemon)。
init程序的一大任務,就是去執行這些開機啟動的程式。
但是,不同的場合需要啟動不同的程式,比如用作伺服器時,需要啟動apache,用作桌面就不需要。
linux允許為不同的場合,分配不同的開機啟動程式,這就叫做」執行級別」(runlevel)。也就是說,啟動時根據」執行級別」,確定要執行哪些程式。
linux系統有7個執行級別(runlevel):
建立終端
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程式來驗證使用者的身份。
使用者登入系統
一般來說,使用者的登入方式有三種:
(1)命令列登入
(2)ssh登入
(3)圖形介面登入
對於執行級別為5的圖形方式使用者來說,他們的登入是通過乙個圖形化的登入介面。登入成功後可以直接進入kde、gnome等視窗管理器。
而本文主要講的還是文字方式登入的情況:當我們看到mingetty的登入介面時,我們就可以輸入使用者名稱和密碼來登入系統了。
linux的賬號驗證程式是login,login會接收mingetty傳來的使用者名稱作為使用者名稱引數。
然後login會對使用者名稱進行分析:如果使用者名稱不是root,且存在/etc/nologin檔案,login將輸出nologin檔案的內容,然後退出。
這通常用來系統維護時防止非root使用者登入。只有/etc/securetty中登記了的終端才允許root使用者登入,如果不存在這個檔案,則root可以在任何終端上登入。
/etc/usertty檔案用於對使用者作出附加訪問限制,如果不存在這個檔案,則沒有其他限制。
Linux系統的啟動過程
linux的啟動過程 這裡先給乙個簡單的概述,後面再是詳述 a.位於rom的bios首先加電自檢,然後裝載mbr內容到ram,將控制權交給ram中的bootloader 比如grub b.bootloader進行自身的多階段引導,裝載一些檔案系統的驅動等,最後將核心裝載入ram c.核心首先執行,然...
Linux系統的啟動過程
linux系統的啟動過程大體上可分為五部分 核心的引導 執行init 系統初始化 建立終端 使用者登入系統。當計算機開啟電源後,首先是bios開機自檢,按照bios中設定的啟動裝置 通常是硬碟 來啟動。緊接著由啟動裝置上的grub程式開始引導linux,當引導程式成功完成引導任務後,linux從它們...
Linux系統的啟動過程
linux系統的啟動過程 bios自檢 grub引導程式 載入核心 執行init 啟動shell login登陸系統 系統啟動各個階段的詳細介紹 計算機在接通電源之後首先由bios進行post自檢,然後依據bios內設定的引導順序從硬碟 軟盤或cdrom中讀入引導塊。linux系統是人bios中的位...