linux系統啟動時到底發生了什麼

2021-08-19 23:50:16 字數 2500 閱讀 5061

該過程主要功能是完成硬體的初始化,包括顯示器、鍵盤以及主儲存器(記憶體),如果這步有問題的話,你的pc是開不了機的,說明你需要好好檢查下你的硬體裝置了。

bois軟體儲存在主機板上的rom晶元上,在此之後,引導過程的其餘部分完全由作業系統控制。

一旦bois自檢完成,系統控制由bois轉變為引導引導程式。引導引導程式通常儲存在系統中的乙個硬碟上,或者引導扇區上(對於傳統的bois系統/mbr系統)。在此階段,機器不能訪問任何大型儲存設別。對於日期、時間和最重要的外設的資訊是從cmos中載入的。

對於linux中的引導引導程式,最常見的是grub(for grand unified boot loader)和isolinux(for booting from removable media)。大多數linux引導引導程式可以提供乙個使用者介面,用於選擇引導linux的其他選項,甚至可能安裝其他的作業系統。在引導linux時,引導引導程式負責載入核心映像和初始化ram(其中包含啟動系統所需)的一些關鍵檔案和裝置驅動程式)到記憶體中。

引導引導程式包括兩個不同的階段:

第一階段:

對於使用bois/mbr方法的系統,引導引導程式常駐在硬碟的第乙個扇區中,也叫主引導記錄(mbr),其中mbr的大小為512位元組。在這個階段,引導引導程式檢查分割槽表並找到乙個可引導的分割槽,一旦找到該分割槽,它就會搜尋第二個階段引導引導程式。例如:grub,並將其載入到記憶體中。

第二階段:

引導引導程式駐留在/boot下,接著出現乙個閃屏,它允許我們選擇啟動那個作業系統。在選擇作業系統後,引導引導程式將所選作業系統的核心載入到記憶體中。

引導引導程式所選的核心映像,並將控制權給它。由於核心是被壓縮過的,所以首要任務就是先進行核心解壓。在此之後,檢查和分析系統硬體並初始化核心中內建的硬體裝置驅動程式。

引導引導程式將核心和乙個初始的基於ram的檔案系統(initramfs)載入到記憶體中,這樣它就可以直接被核心使用了。

當核心載入到ram中時,它會立即初始化和配置計算機的記憶體,並配置與系統相關的所有硬體,包括處理器、輸入/輸出子系統、儲存裝置等。同時核心還載入了一些必要的使用者空間應用程式。

initramfs檔案系統映像包含程式和二進位制檔案,這些需要掛載到合適的根檔案系統,提供核心功能所需的檔案系統和裝置驅動程式為大容量儲存控制器與udev裝置負責找出它們執行需要的裝置,定位正常工作所需的驅動程式,並載入它們。在找到根檔案系統之後,檢查錯誤並掛載。

mount程式指示檔案系統準備好使用的作業系統,並將其與檔案系統的總體層次結構中的特定點關聯起來。如果成功了,就會從ram中清除initramfs,並執行根檔案系統(/sbin/init)上的init程式。

init程式處理安裝和轉向最終的實際根檔案系統。如果在訪問大規模儲存裝置之前需要特殊的硬體驅動程式,那麼它們必須在initramfs映像中。

一旦核心建部署到硬體並且掛載到根檔案系統,核心就會執行/sbin/init程式。接著進入初始化過程,然後啟動其他程序來讓系統執行。

除了啟動系統之外,init還負責保持系統的執行和徹底關閉系統。它充當了所有非核心程序的「最後的管理者」,在必要時清理它們,並在使用者登入和退出時重新啟動使用者登入服務。

在引導過程結束後,init啟動文字模式的登入提示(由乙個名為getty的程式完成),接著輸入你的使用者名稱和密碼,最終獲得乙個shell。

一般情況下,預設的shell是bash,但是還有其他的shell供你使用。shell列印乙個文字提示符,這表示shell已經準備好接受命令,在使用者輸入命令並按下【enter】之後,命令將會執行,執行結束後將顯示另乙個提示符。

通常,在linux桌面系統中,x window system作為引導過程的最後一步被載入。

系統啟動時自動啟動程式

下面主要介紹採用編輯登錄檔的方式來實現。一般系統啟動時自動啟動程式的註冊資訊都在 software microsoft windows currentversion run 裡面。系統啟動時自動啟動 自動開啟的檔案,如果是可執行應用程式,即為程式的路徑及檔名 帶字尾 是否自動啟動,true表示自動啟...

系統啟動時顯示Recovery Menu

我的系統環境 寫道ubuntu 8.04.1 gnome 2.22.3 linux 2.6.24 21 generic 突然發現在錯誤修改 boot grub menu.lst後,其實也不能算是錯誤修改主要是想開機的時候顯示具體資訊而不是splash畫面.寫道 vmlinuz 2.6.24 21 g...

linux獲取系統啟動時間

1 前言 2 sysinfo結構 sysinfo結構保持了系統啟動後的資訊,主要包括啟動到現在的時間,可用記憶體空間 共享記憶體空間 程序的數目等。man sysinfo得到結果如下所示 struct sysinfo 3 獲取系統啟動時間 通過sysinfo獲取系統啟動到現在的秒數,用當前時間減去這...