linux 系統啟動流程探討

linux系統啟動流程:

linux系統啟動流程,按層次分的話,可以分為內核空間的啟動與用戶空間的啟動。

下面先說說內核空間的啟動流程。

一個linux要跑起來,在最簡陋的情況下,必須有:kernel , lib ,application

kernel功能:加載驅動程序,內存管理,進程管理,文件系統,網絡管理,安全管理,glibc

庫: 是一個函數的集合,每個庫文件是一個依賴于其他應用程序才能運行起來的代碼片段。

庫頭文件:一個庫中有多少函數,不同函數之差接受的參數,類型不同,這些特點需要有一個文件來對其進行描述,這種對庫中的函數的描述性文件就稱為庫文件。

application:就是平時我們用的二進制程序了

要了解linux的啟動流程,就要先了解下面的幾個概念。

內核的設計流派:
單內核:緊密,效率高,牽一發而動全身。一個小的故障全局崩潰。

微內核:離散設計,效率相對低,子系統故障不會影響全局。

linux為單內核。

雖是單內核,但卻充分吸引微內核設計思想,將能選擇的功能,統統做成功能模塊。即使是內核,自己也被做成模塊。一般為.ko結尾的文件。ko即kernel object。 用戶空間的功能模塊稱為share object,以.so結尾

支持模塊的在線裝卸。
內核組成部分:
1:核心文件:/boot/vmlinuz-version-release
2: 模塊文件: /lib/modules/version-release

ramdisk: 基于內存的磁盤。將硬盤中的mbr載入內存,得到文件系統驅動程序,加載grub。進入grub菜單。

內核空間系統啟動流程解析:

post –> bios –> bootloader(引導從哪塊硬盤加載) –> mbr –> 加載stage2中的grub —> kernel –> init

post: poweron self test  加電自檢。自檢的過程由主板上的rom芯片自己定義。rom芯片就是傳說中的cmos。

bios : base input output system. 也是裝在rom中的一個簡單的程序,主要作用就是按用戶設置的引導順序,從指定的設備加載寫有bootloader的設備。

mbr:加載指定的設備后,根據mbr內容中的stage1的指向,得知stage2的位置,并且加載stage1_5到內存中,得到stage2所在硬件設備的驅動程序,加載驅動后能讀到stage2的內容,即grub。

grub: grand uniform bootloader 。統一加載器。grub會提供一個菜單,給用戶選擇要啟動的操作系統的kernel。

kernel: kernel加載到內存中后,自解壓,自初始化,探測各硬件后裝載硬件的驅動程序,以只讀方式掛載根文件系統,并啟動init進程。

至此,內核空間的啟動完成了。剩下的就是用戶空間的啟動了。
請看下回分解

原創文章,作者:old_radish,如若轉載,請注明出處:http://www.www58058.com/73203

(0)
old_radishold_radish
上一篇 2017-04-11
下一篇 2017-04-12

相關推薦

  • M25初嘗試部署RAID磁盤陣列組

    在學習了linux系統管理硬盤設備的基礎后,現在嘗試部署RAID10硬盤組技術,在部署前我們先了解一下什么叫“RAID”磁盤冗余陣列(Redundant Array of Independent Disks)。 RAID技術就是把多塊硬盤設備組合成一個容量更大、更安全的硬盤組,可以把數據切割成多個區段后分別存在各個不同物理硬盤設備上,然后利用分散讀寫需求賴提…

    2017-07-12
  • mysql備份還原

    一、前言 數據對于一個公司來說有多重要這點不說大家也知道,數據還在,服務崩潰還可重建。為什么要備份?很簡單,天災人禍。比如硬件故障,軟件故障,自然災害,黑客攻擊或自身誤操作等因素。這時候備份,恢復數據就顯得至關重要了。 二、基礎概念 由于備份與恢復需要用到一些必要的知識,故在此先講解下 2.1二進制日志 myql日志有多種,其中二進制日志文件對數據恢復有很大…

    Linux干貨 2015-11-30
  • Linux boot分區意外格式化或清除之后…

    boot分區在沒有備份的情況下意外被清空,包括啟動引導信息也沒了。這時若Linux還在運行,那你是幸運的, 修復的方法: 1. cat  /etc/*release      #趕快先確定當前系統的具體版本。有ISO鏡像趕快掛載上來.   &nbsp…

    Linux干貨 2016-03-22
  • shell編寫的linux命令練習工具

    linux常用命令加選項,有成百上個,僅僅靠背誦忘記得太快,所以寫了此腳本,便于對linux命令的練習,希望能幫助到大家。 運行腳本效果如下: 上邊兩圖一個是運行腳本時的截圖,另一個為題庫的格式(@做分隔符,所以如果題目中有@一定要替換掉) 下面附上源碼 #!/bin/bash#版本號:1.0 #作者:Mr.L #WX:504498722FILE=/root…

    2017-03-19
  • linux 基礎(8)—— 變量

    變量:命名的內存空間 1.作用:①數據存儲格式                         ②參與的運算                 &nbs…

    2017-08-05
  • 初涉Linux基本要點概括(1)續

       6. Linux發行版都基本遵循文件系統層級標準(Filesystem Hierarchy Standard)。                 續   …

    Linux干貨 2016-10-13
欧美性久久久久