歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> Linux啟動過程簡介

Linux啟動過程簡介

日期:2017/2/27 9:36:57   编辑:更多Linux

許多人對Linux的啟動過程感到很神秘,因為所有的啟動信息都在屏幕上一閃而過。其實,   Linux的啟動過程並不象啟動信息所顯示的那樣復雜,它主要分成兩個階段:   1.啟動內核。在這個階段,內核裝入內存並在初始化每個設備驅動器時打印信息。   2.執行程序init。裝入內核並初始化設備後,運行init程序。init程序處理所有程序的啟動,   包括重要系統精靈程序和其它指定在啟動時裝入的軟件。   下面以Red Hat為例簡單介紹一下Linux的啟動過程。   一、啟動內核   首先介紹啟動內核部分。電腦啟動時,BIOS裝載MBR,然後從當前活動分區啟動,LILO獲得引   導過程的控制權後,會顯示LILO提示符。此時如果用戶不進行任何操作,LILO將在等待制定   時間後自動引導默認的操作系統,而如果在此期間按下TAB鍵,則可以看到一個可引導的操作   系統列表,選擇相應的操作系統名稱就能進入相應的操作系統。   當用戶選擇啟動LINUX操作系統時,LILO就會根據事先設置好的信息從ROOT文件系統所在的分   區讀取LINUX映象,然後裝入內核映象並將控制權交給LINUX內核。LINUX內核獲得控制權後,   以如下步驟繼續引導系統:   1. LINUX內核一般是壓縮保存的,因此,它首先要進行自身的解壓縮。內核映象前面的一些   代碼完成解壓縮。   2. 如果系統中安裝有可支持特殊文本模式的、且LINUX可識別的SVGA卡,LINUX會提示用戶   選擇適當的文本顯示模式。但如果在內核的編譯過程中預先設置了文本模式,則不會提示選   擇顯示模式。該顯示模式可通過LILO或RDEV工具程序設置。   3. 內核接下來檢測其他的硬件設備,例如硬盤、軟盤和網卡等,並對相應的設備驅動程序   進行配置。這時,顯示器上出現內核運行輸出的一些硬件信息。   4. 接下來,內核裝載ROOT文件系統。ROOT文件系統的位置可在編譯內核時指定,也可通過   LILO或RDEV指定。文件系統的類型可自動檢測。如果由於某些原因裝載失敗,則內核啟動   失敗,最終會終止系統。     二、執行init程序   其次介紹init程序,利用init程序可以方便地定制啟動其間裝入哪些程序。init的任務是   啟動新進程和退出時重新啟動其它進程。例如,在大多數Linux系統中,啟動時最初裝入   六個虛擬的控制台進程,退出控制台窗口時,進程死亡,然後init啟動新的虛擬登錄控制台,   因而總是提供六個虛擬登陸控控制台進程。   控制init程序操作的規則存放在文件/etc/inittab中。Red Hat Linux缺省的inittab文   件如下:   #   #inittab This file describes how the INIT process should set up the system in a certain   #run-level.   #   #   #Default runlevel.The runlevels used by RHS are:   #0-halt(Do NOT set initdefault to this)   #1-Single user mode   #2-Multiuser,without NFS(the same as 3,if you do not have networking)   #3-Full multiuser mode   #4-unused   #5-X11   #6-reboot(Do NOT set initdefault to this)   #   id:3:initdefault:     #system initialization   si::sysinit:/etc/rc.d/rc.sysinit   10:0:wait:/etc/rc.d/rc 0   11:1:wait:/etc/rc.d/rc 1   12:2:wait:/etc/rc.d/rc 2   13:3:wait:/etc/rc.d/rc 3   14:4:wait:/etc/rc.d/rc 4   15:5:wait:/etc/rc.d/rc 5   16:6:wait:/etc/rc.d/rc 6   #Things to run in every runlevel   ud:once:/sbin/update     #Trap CTRL-ALT-DELETE   ca::ctrlaltdel:/sbin/shutdown -t3 -r now     #When our UPS tells us power has failed,assume we have a few minutes of   power left.Schedule a   #shutdown for 2 minutes from now.   #This does,of course,assume you have powered installed and your UPS    connected and working   #correctly.   pf::powerfail:/sbin/shutdown -f -h +2 "Power Restored;Shutdown Cancelled"     #Run gettys in standard runlevels   1:12345:respawn:/sbin/minggetty tty1   2:2345:respawn:/sbin/minggetty tty2   3:2345:respawn:/sbin/minggetty tty3   4:2345:respawn:/sbin/minggetty tty4   5:2345:respawn:/sbin/minggetty tty5   6:2345:respawn:/sbin/minggetty tty6   #Run xdm in runlevel 5     x:5:respawn:/usr/bin/X11/xdm -nodaemon   Linux有個運行級系統,運行級是表示系統當前狀態和init應運行哪個進程並保持在這種   系統狀態中運行的數字。在inittab文件中,第一個項目指定啟動時裝入的缺省運行級。   上例中是個多用戶控制台方式,運行級為3。然後,inittab文件中每個項目指定第二個   字段的項目用哪種運行級(每個字段用冒號分開)。因此,對運行級3,下列行是相關的:   13:3:wait:/etc/rc.d/rc 3   1:12345:respawn:/sbin/minggetty tty1   2:2345:respawn:/sbin/minggetty tty2   3:2345:respawn:/sbin/minggetty tty3   4:2345:respawn:/sbin/minggetty tty4   5:2345:respawn:/sbin/minggetty tty5   6:2345:respawn:/sbin/minggetty tty6   最後六行建立Linux提供的六個虛擬控制台。第一行運行啟動腳本/etc/rc.d/ rc 3;   這將運行目錄/etc/  rc.d/rc3.d中包含的所有腳本,這些腳本表示系統初始化時要啟動的程序。一般來說,  這些腳本不需要編輯或改變,是系統缺省的。   






Copyright © Linux教程網 All Rights Reserved