Linux開機啟動(bootstrap)

來源:互聯網
上載者:User

作者:Vamei 出處:http://www.cnblogs.com/vamei 歡迎轉載,也請保留這段聲明。謝謝!

 

電腦開機是一個神秘的過程。我們只是按了開機鍵,就看到螢幕上的進度條或者一行行的輸出,直到我們到達登入介面。然而,電腦開機又是個異常脆弱的過程,我們滿心期望的登入介面可能並不會出現,而是一個命令列或者錯誤資訊。瞭解電腦開機過程有助於我們修複開機可能出現的問題。

 

1) 最初始階段:

當我們開啟電腦電源,電腦會自動從主板的BIOS(Basic Input/Output System)讀取其中所儲存的程式。這一程式通常知道一些直接連接在主板上的硬體(硬碟,網路介面,鍵盤,串口,並口)。現在大部分的BIOS允許你從磁碟片、光碟片或者硬碟中選擇一個來啟動電腦。

下一步,電腦將從你所選擇的存放裝置中讀取起始的512 bytes(比如光碟片一開是的512 bytes,如果我們從光碟片啟動的話)。這512 bytes叫做主引導記錄MBR (master boot record)。MBR會告訴電腦從該裝置的某一個分區(partition)來裝載引導載入程式(boot loader)。Boot loader儲存有作業系統(OS)的相關資訊,比如作業系統名稱,作業系統核心 (kernel)所在位置等。常用的boot loader有GRUB和LILO。

隨後,boot loader會協助我們載入kernel。kernel實際上是一個用來操作電腦的程式,它是電腦作業系統的核心,主要的任務是管理電腦的硬體資源,充當軟體和硬體的介面。作業系統上的任何操作都要通過kernel傳達給硬體。Windows和Linux各自有自己kernel。狹義的作業系統就是指kernel,廣義的作業系統包括kernel以及kernel之上的各種應用。

(Linus Torvalds與其說是Linux之父,不如說是Linux kernel之父。他依然負責Linux kernel的開發和維護。至於Ubuntu, Red Hat, 它們都是基於相同的kernel之上,囊括了不同的應用和介面構成的一個更加完整的作業系統版本。)

實際上,我們可以在多個分區安裝boot loader,每個boot loader對應不同的作業系統,在讀取MBR的時候選擇我們想要啟動的boot loader。這就是多作業系統的原理。

小結:BIOS -> MBR -> boot loader -> kernel

 

2) kernel

如果我們載入的是Linux kernel,Linux kernel開始工作。kernel會首先預留自己運行所需的記憶體空間,然後通過驅動程式(driver)檢測電腦硬體。這樣,作業系統就可以知道自己有哪些硬體可用。隨後,kernel會啟動一個init進程。它是Linux系統中的1號進程(Linux系統沒有0號進程)。到此,kernel就完成了在電腦啟動階段的工作,交接給init來管理。

 

小結: kernel -> init process

 

3) init process

(根據boot loader的選項,Linux此時可以進入單一使用者模式(single user mode)。在此模式下,初始指令碼還沒有開始執行,我們可以檢測並修複電腦可能存在的錯誤)

隨後,init會運行一系列的初始指令碼(startup scripts),這些指令碼是Linux中常見的shell scripts。這些指令碼執行如下功能:

設定電腦名稱,時區,檢測檔案系統,掛載硬碟,清空臨時檔案,設定網路……

當這些初始指令碼,作業系統已經完全準備好了,只是,還沒有人可以登入!!!init會給出登入(login)對話方塊,或者是圖形化的登入介面。

 

輸入使用者名稱(比如說vamei)和密碼,DONE!

在此後的過程中,你將以使用者(user)vamei的身份操作電腦。此外,根據你建立使用者時的設定,Linux還會將你歸到某個組(group)中,比如可以是stupid組,或者是vamei組。

所以你將是使用者vamei, 同時是vamei組的組員。(注意,組vamei和使用者vamei只是重名而已,就好想你可以叫Dell, 同時還是Dell公司的老闆一樣。你完全也可以是使用者vamei,同時為stupid組的組員)

 

總結:

BIOS -> MBR -> boot loader -> kernel -> init process -> login

使用者,組。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.