linux啟動過程

來源:互聯網
上載者:User

標籤:blog   http   使用   檔案   os   art   

linux 系統初始化可以分為兩個部分: 核心初始化和系統初始化。作業系統是使用者和電腦硬體之間的橋樑。作業系統管理整個系統的所有的硬體資源,並向使用者應用程式提供介面,在作業系統初始化的時候,系統進行硬體自檢,載入驅動並且設定軟體環境;(http://blog.csdn.net/haishengflying/article/details/7862781)

  1、嵌入式linux啟動第-步 ——載入bios

           電腦會首先載入bios資訊:bios中包括cpu的相關資訊,裝置啟動的順序資訊,硬碟資訊,記憶體資訊,時鐘資訊,記憶體資訊,等;

  2、讀取mbr

    硬碟第0磁軌第一個扇區被稱為mbr(Master Boot Record),即主引導記錄,大小為512,裡面存放了開機前資訊、分區表資訊。系統找到bios所制定的硬碟的msr後就會將其複製到實體記憶體中。被複製到實體記憶體中的內容就是boot loader ,而具體到電腦,就是lilo或者grub。

  3、boot loader

    boot loader 就是作業系統核心運行之前的一段小程式,通過這段小程式,我們可以初始化硬體裝置,建立記憶體空間的映射圖,從而將系統的軟硬體帶到一個合適的狀態,以便為最終叫用作業系統核心做好準備。系統讀取記憶體中的grub配置資訊(一般為menu.list或者 grup.list),並依照此設定檔資訊來啟動不同的作業系統

  4、載入核心

   根據grub設定的核心影像所在的路徑,系統讀取記憶體影像,並進行解壓操作。此時螢幕一般會輸出“Uncompressing Linux”的提示。當解壓縮核心完成後,螢幕輸出“OK,booting the kernel ”,系統將解壓後的核心放置在記憶體中,並調用start_kernel()函數來啟動一系列的初始化函數並初始化各種裝置,完成linux核心環境的建立。

  5、使用者層init依據inittab檔案來設定運行等級

    核心被載入後,第一個啟動並執行程式便是/sbin/init,該檔案會讀取/etc/inittab檔案,並依據此檔案初始化工作,其實/etc/inittab檔案最主要的作用就是設定linux的運行等級,其設定形式是“:id  :initdefault:",這就表明linux需要運行在等級5上,Linux的運行等級設定如下:

    0:關機

    1:單一使用者模式

    2:無網路支援的多使用者模式  

    3:有網路支援的多使用者模式

    4:保留,未使用

    5:有網路支援的x-window支援的多使用者模式

    6:重新引導系統,即重啟

    7:啟動第六步——init進程執行rc.sysinit

    設定運行等級後,linux系統執行的第一個使用者層檔案就是/etc/rc.d/rc.sysinit指令碼程式,他的工作非常多,包括設定PATH、設定網路設定(/etc/sysconfig/network)、啟動swap分區、設定/proc等等

    

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.