<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

嵌入式Linux學習-BIOS和Boot loader詳解筆記

冬至子 ? 來源:白浪工作室 ? 作者:小白浪 ? 2023-10-27 14:20 ? 次閱讀

1.BIOS****和引導裝入程序

為桌面計算機擁電后,一種叫作BIOS的軟件系統會立即接管對系統處理器的控制.

[BIOS是Basic Input/Output Software (基本輸入輸出軟件)的縮寫,但直際上. BIOS在計算機系統中發揮的作用已經遠遠超過了最初設計該軟件時的目標,而且越來越復雜。

通常. BIOS系統都是保存在閃存(Flash)里面的。

BIOS是一組復雜的系統配置軟件例程,它記錄了計算機硬件體系結構的底層細節信息。

在系統加電時候,BIOS會立即接管對系統處理器的控制,它最主要任務就是初始化系統硬件,特別是內存子系統,然后將操作系統從硬盤emmcFlash中讀出并加載。

初始化系統的幾個重要任務如下:

(1)初始化關鍵硬件組件,例如SDRAM控制器,I/O控制器等

(2)初始化系統內存,并準備將系統系統控制權移交給相應的操作系統。

(3)分配系統資源,例如內存以及外設控制器的中斷電路。

(4)提供相應的機制,用于定位和加載操作系統映像。

(5)加載操作系統,并將系統控制權移交給操作系統,將必要的啟動信息,例如系統全部內存塊的數量、尺寸,串行通信端口的速度以及其它底層硬件配置數據傳遞給操作系統。

BIOS的首要任務就是啟動內存子系統。內存初始化之后,就可以作為一種資源進行使用,很多BIOS完成內存初始化后第一個動作就是將自身復制到DRAM中,以便獲得更快的執行速度。

一、BIOS

1.功能:進行自我檢測與讀取bootloader

2.大致工作流程

①系統啟動之后,加載BIOS,并通過BIOS去加載CMOS的信息,并且借由CMOS內的設置值取得主機的各項硬件配置,例如CPU接口設備的溝通頻率、啟動設備的查找順序、硬盤的大小與類型、系統時間、各周邊總線是否啟動PnP、各接口設備的I/O地址。以及與CPU溝通的IRQ中斷等的信息

②取得上面這些信息后,BIOS開始自我檢測。然后開始執行硬件檢測的初始化,并設置PnP設備,之后再定義出可啟動的設備順序,接下來就會開始進行啟動設備的數據讀取了

③BIOS會指定啟動的設備好讓我們可以讀取此盤中的操作系統內核文件,由于不用的操作系統它的文件系統格式不同,

此時就需要一個啟動引導程序(boot loader)來處理內核文件加載問題,boot loader就在啟動設備的第一個扇區,也就是MBR。

二、bootloader

1.概念與特點

Boot loader是一段硬件引導程序,主要是為了內核的運行做準備的,其運行在操作系統內核之前。主要作用是:初始化硬件設備,建立一個內存空間。

將系統的硬件環境和軟件環境調整到一個合適的狀態,也即是為調用內核準備好環境。而且不同的目標版也需要不同的Boot loader支持。

嵌入式系統中:

固態存儲設備的典型空間分配結構:

[Boot loader]—[Bootparameters]—[Kernel]—[Root filesystem]

圖片

Boot loader具有兩種操作模式,即啟動模式和下載模式。

下載模式:是指通過串口或者網絡,從主機上下載文件(比如:內核鏡像和根文件系統鏡像等),這些下載的文件保存在目標機的RAM中,通過Boot loader,這些文件會由RAM中寫道FLASH中。

啟動模式:即Boot loader從目標機上的某個固態存儲設備將操作系統加載到RAM中運行。

Boot loader有兩個運行過程,成為stage1和stage2。

stage1的主要步驟是:硬件初始化、為stage2準備RAM空間、將stage2復制到RAM空間、設置堆棧、跳到stage2的C入口點。

stage2的主要步驟是:初始化stage2要使用的硬件設備、檢查系統存儲、從FLASH中讀取內核鏡像和根文件系統鏡像到RAM中、設置內核參數、調用內核。

對于電腦等大型嵌入式系統:

boot loader可以存在MBR中,也可以存在文件系統的boot srctor中??傊?,boot loader最后的功能都是用來加載內核文件

2.MBR與boot loader的關系

在安裝Windows的時候,Windows系統會默認在MBR內會安裝一份boot loader,并且在自己文件系統的boot sector內也會安裝有boot loader。

在安裝Linux的時候,你可以選擇將boot loader安裝在MBR,也可以選擇不安裝在MBR中

3.啟動扇區:boot sector

每一個文件系統中都含有一個bootsector,并且這個啟動扇區內也包含有boot loader。因此MBR中提供有選項功能,你可以選擇啟動哪一個文件系統的boot sector內的boot loader來加載不同的操作系統

4.內核文件加載結構圖

過程詳解

圖片

MBR內提供了選項功能,你可以選擇不同的選項來加載文件系統例如:

你可以選擇加載Windows系統的boot sector內的啟動引導程序,來最終進入Windows系統。

也可以選擇Linux系統的bootsrctor內的啟動引導程序,來最終進入Linux系統

三、內核加載

boot loader讀取內核文件后,接下來Linux就會將內核加壓縮到內存中,并且利用內核的功能,開始測試與驅動個各周邊的設備,抱愧存儲設備、CPU、網卡、聲卡等

此時Linux內核會以自己的功能重新檢測一次硬件,而不一定會使用BIOS檢測到的硬件信息。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • CMOS
    +關注

    關注

    58

    文章

    5279

    瀏覽量

    233649
  • 嵌入式
    +關注

    關注

    5002

    文章

    18414

    瀏覽量

    291550
  • BIOS
    +關注

    關注

    5

    文章

    456

    瀏覽量

    45104
  • Boot
    +關注

    關注

    0

    文章

    143

    瀏覽量

    35369
  • SDRAM控制器
    +關注

    關注

    0

    文章

    28

    瀏覽量

    8086
收藏 人收藏

    評論

    相關推薦

    嵌入式系統 Boot Loader技術內幕

    一個嵌入式 Linux 系統從軟件的角度看通??梢苑譃樗膫€層次: 1. 引導加載程序.包括固化在固件(firmware)中的 boot 代碼(可選),和 Boot
    的頭像 發表于 03-05 09:26 ?2870次閱讀

    嵌入式開發入門之旅

    環境搭建、嵌入式Linux內核編譯、基于ARM硬件平臺的嵌入式Linux系統引導和固化、Boot Loa
    發表于 07-09 16:57

    嵌入式開發入門之旅

    ARM處理器開發基礎、嵌入式Linux開發入門、嵌入式Linux交叉開發環境搭建、嵌入式Linux
    發表于 07-10 15:59

    學習嵌入式LINUX筆記和體會

    學習嵌入式LINUX筆記和體會一個典型的桌面Linux系統包括3個主要的軟件層---linux
    發表于 06-23 18:37

    學習嵌入式Linux筆記和體會

    應用和內核捆綁在一起,甚至可以把應用寫為內核的一個線程,在內核中運行,雖然這樣在移植上帶來了困難,但考慮嵌入式系統對尺寸要求小的特點,是完全可行的。不過我們使用三層軟件結構的模式來學習嵌入式l
    發表于 05-19 14:44

    嵌入式學習路線 嵌入式學習路線詳解

    ,創客學院嵌入式開發講師整理了最全最短的嵌入式學習路線途徑,希望可以對讀者們有所幫助?! ?b class='flag-5'>嵌入式學習路線
    發表于 03-17 18:05

    嵌入式系統 Boot Loader技術內幕

    一個嵌入式 Linux 系統從軟件的角度看通??梢苑譃樗膫€層次:1. 引導加載程序。包括固化在固件(firmware)中的 boot 代碼(可選),和 Boot
    發表于 08-13 22:15

    嵌入式linux學習筆記

    Long long ago,還在上大學的時候,寫了一個關于嵌入式linux學習筆記,加上網上整合的資料,組成了一個PDF,和大家一起學習。
    發表于 06-09 06:28

    學習嵌入式linux筆記

    本人是嵌入式軟件專業,除了學習STM32單片機之外,我還自學了u-boot的移植,文件系統的制作,以及Linux內核的移植,在學習
    發表于 11-04 06:58

    嵌入式Linux學習筆記

    嵌入式 Linux 學習筆記
    發表于 11-04 08:29

    Linux嵌入式學習——點個燈

    燈MakefileMakefile基礎Makefile函數與實例本文是基于韋東山視頻的學習筆記硬件部分(Linux嵌入式學習——點個燈(一)
    發表于 11-05 07:46

    嵌入式Linux學習筆記

    嵌入式 Linux 學習筆記
    發表于 12-16 07:43

    基于嵌入式系統的Boot Loader設計概述

    Boot Loader和固化在固件(firmware)中的Boot代碼(可選)共同組成一個嵌入式系統的引導加載程序。它的作用和功能就像固化到計算機內主板上的一個ROM芯片程序
    發表于 10-16 17:13 ?1180次閱讀
    基于<b class='flag-5'>嵌入式</b>系統的<b class='flag-5'>Boot</b> <b class='flag-5'>Loader</b>設計概述

    嵌入式系統里的Boot Loader技術詳解

    嵌入式系統當中你可能經常聽到 boot loader(引導加載器)這一詞,boot loader是指什么呢?
    的頭像 發表于 09-27 18:08 ?4037次閱讀

    嵌入式Linux-BIOS-Uboot-Boot loader 學習筆記

    ========******=========******========******=========******==========書籍名稱《嵌入式Linux基礎教程》,人民郵電出版社出版
    發表于 11-01 17:06 ?7次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>Linux-BIOS-Uboot-Boot</b> <b class='flag-5'>loader</b> <b class='flag-5'>學習</b><b class='flag-5'>筆記</b>
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>