日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Bootloader和BIOS、uboot和grub和bootmgr的区别

發布時間:2024/1/1 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Bootloader和BIOS、uboot和grub和bootmgr的区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1 Bootloader和BIOS

1.1 BIOS


??BIOS(Basic Input Output System):基本輸入輸出系統。它是一組固化到計算機內主板上一個ROM芯片上的程序 ,保存著計算機最重要的基本輸入輸出的程序、開機后自檢程序和系統自啟動程序,它可從CMOS中讀寫系統設置的具體信息。?
??BIOS連接軟件與硬件的一座“橋梁”,是計算機的開啟時運行的第一個程序,主要功能是為計算機提供最底層的、最直接的硬件設置和控制。BIOS的三個主要功能:

  • 自檢及初始化程序,分為三個部分
  • 加電自檢(POST):功能是檢查計算機硬件是否良好,自檢中如發現有錯誤,將按兩種情況處理:對于嚴重故障(致命性故障)則停機,此時由于各種初始化操作還沒完成,不能給出任何提示或信號;對于非嚴重故障則給出提示或聲音報警信號,等待用戶處理。

  • 初始化:創建中斷向量、設置寄存器、對一些外部設備進行初始化和檢測等,其中很重要的一部分是BIOS設置,主要是對硬件設置的一些參數,當計算機啟動時會讀取這些參數,并和實際硬件設置進行比較,如果不符合,會影響系統的啟動。

  • 加載引導程序:功能是引導Dos或其他操作系統,此時會在硬盤讀取引導記錄,然后把計算機的控制權轉交給引導記錄,由引導記錄(IPL與SPL)把操作系統裝入電腦,在電腦啟動成功后,BIOS的這部分任務就完成了。也就是說BIOS本身不能引導OS內核。

    • 程序服務處理;BIOS直接與計算機的I/O設備(Input/Output,即輸入/輸出設備)打交道,通過特定的數據端口發出命令,傳送或者接受各種外部設備的數據,實現軟件程序對硬件的直接操作。
    • 硬件中斷處理;開機時BIOS會告訴CPU各硬件設備的中斷號,當用戶發出使用某個設備的指令后,CPU就根據中斷號使用相對應的硬件完成工作,再根據中斷號跳回原來的工作。

    ? ? ?BIOS分為:Legacy BIOS 和 UEFI BIOS

    1.2 Bootloader


    通俗說Bootloader就是用來加載操作系統的。在PC上是在BIOS之后運行。

    在典型的嵌入式系統中引導加載程序(bootloader)具有如下特點:

    • 嵌入式系統中在操作系統內核運行前運行的程序
    • 可以分為單階段的BootLoader多階段的BootLoader,一般從從固態存儲設備上啟動的Bootloader大多都是 2 階段的啟動過程,如uboot是2階段的grub就是單階段的


    一般而言,這兩個階段完成的功能可以如下分類,但這不是絕對的:

    Bootloader第一階段的功能:?

    • 硬件設備初始化。
    • 為加載Bootloader的第二階段代碼準備RAM空間。
    • 拷貝Bootloader的第二階段代碼到 RAM 空間中。
    • 設置好棧。
    • 跳轉到第二階段代碼的C入口點。
    • 在第一階段進行的硬件初始化一般包括:關閉WATCHDOG、關中斷、設置CPU的速度和時鐘頻率、RAM初始化等。這些并不都是必需的,比如S3C2410/S3C2440的開發板所使用的U-Boot中,就將CPU的速度和時鐘頻率的設置放在第二階段。甚至,將第二階段的代碼復制到RAM空間中也不是必需的,對于NORFlash等存儲設備,完全可以在上面直接執行代碼,只不過這相比在RAM中執行效率大為降低。

    Bootloader第二階段的功能:?

    • 初始化本階段要使用到的硬件設備
    • 檢測系統內存映射(memory map)。
    • 將內核映像和根文件系統映像從Flash上讀到RAM空間中。
    • 為內核設置啟動參數。
    • 調用內核。


    1.3 關系

    ????????BIOS和Bootloader沒啥大區別:就是兩個底層程序片段。 為啥不耦合在一起?看場景吧,在PC系統上BIOS和Bootloader分開了感覺還是PC端外設導致的,開機后需要先做做設備的檢測。然后PC端系統版本多,適配也麻煩,就分兩個功能出去了。 在嵌入式系統里,基本集成到一段,叫Bootloader了:檢測硬件然后啟動系統的一個小小的系統代碼段就是Bootloader。在安卓系統一般也只說Bootloader了

    2 不同平臺的引導加載程序

    Linux的開放源碼引導程序及其支持的體系結構見下表:

    BootLoader

    描述

    x86

    ARM

    PowerPC

    LILO

    Linux磁盤引導程序

    GRUB

    GNU的LILO替代程序

    Loadlin

    從DOS引導Linux

    ROLO

    從ROM引導Linux而不需要BIOS

    Etherboot

    通過以太網卡啟動Linux系統的固件

    LinuxBIOS

    完全替代BUIS的Linux引導程序

    BLOB

    LART等硬件平臺的引導程序

    U-boot

    通用引導程序

    RedBoot

    基于eCos的引導程序

    windows引導程序及其支持的體系結構見下表:

    BootLoader

    描述

    x86

    ARM

    PowerPC

    NTLOADER

    Linux磁盤引導程序

    NA

    NA

    Bootmgr

    啟動管理器

    NA

    NA

    2.1 PC平臺Grubbootmgr


    ??GNU GRUB(GRand Unified Bootloader簡稱“GRUB”)是一個來自GNU項目的多操作系統啟動程序。GRUB是多啟動規范的實現,它允許用戶可以在計算機內同時擁有多個操作系統,并在計算機啟動時選擇希望運行的操作系統。GRUB可用于選擇操作系統分區上的不同內核,也可用于向這些內核傳遞啟動參數。可用來用來引導不同系統,如windows,linux,通常用于linux,畢竟是GNU的嘛。?


    ??Windows也有類似的工具NTLOADERBootmgr;比如我們在機器中安裝了Windows 98后,我們再安裝一個Windows XP ,在機器啟動的會有一個菜單讓我們選擇進入是進入Windows 98 還是進入Windows XP。NTLOADER就是一個多系統啟動引導管理器,NTLOADER 同樣也能引導Linux,只是極為麻煩罷了。BootmgrBoot Manager的縮寫,是在Windows Vista、Windows 7、windows 8/8.1和windows 10中使用的新的啟動管理器,以代替Windows NT系列操作系統(Windows XP、Windows 2003)中的啟動管理器——NTLOADER。

    2.2 嵌入式平臺u-boot


    ??U-Boot,全稱為Universal Boot Loader,即通用Bootloader,是遵循GPL條款的開放源代碼項目。其前身是由德國DENX軟件工程中心的Wolfgang Denk基于8xxROM的源碼創建的PPCBOOT工程。后來整理代碼結構使得非常容易增加其他類型的開發板、其他架構的CPU(原來只支持 PowerPC);增加更多的功能,比如啟動Linux、下載S-Record格式的文件、通過網絡啟動、通過PCMCIA/CompactFLash /ATA disk/SCSI等方式啟動。增加ARM架構CPU及其他更多CPU的支持后,改名為U-Boot。

    • 支持多種嵌入式操作系統內核,如Linux、NetBSD、VxWorks、QNX、RTEMS、ARTOS、LynxOS;
    • 支持多個處理器系列,如PowerPC、ARM、x86、MIPS、XScale;

    ---------------------?
    作者:藍月心語?
    來源:CSDN?
    原文:https://blog.csdn.net/liao20081228/article/details/81297143?
    版權聲明:本文為博主原創文章,轉載請附上博文鏈接!

    總結

    以上是生活随笔為你收集整理的Bootloader和BIOS、uboot和grub和bootmgr的区别的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。