您当前的位置:首页 > 计算机 > 精彩资源

Bootloader和BIOS、Grub、uboot概念

时间:03-23来源:作者:点击数:

近日写材料遇到了如上的几个名词,现对其概念进行总结如下:

1、Bootloader和BIOS

桌面电脑加电后BIOS会获取处理器控制权,是一个复杂的系统配置软件,它拥有硬件架构的底层信息。在典型的嵌入式系统中(虽说是在嵌入式操作系统中的概念,但规定没这么严格,向ntloader、bootmgr一般也称作BootLoader),引导加载程序(bootloader)完成与BIOS相同的功能,具有如下特点:

1)嵌入式系统中在操作系统内核运行前运行的程序;

2)可以分为单阶段的BootLoader和多阶段的BootLoader,一般从从固态存储设备上启动的Bootloader大多都是 2 阶段的启动过程,如uboot是2阶段的,grub就是单阶段的;

一般而言,这两个阶段完成的功能可以如下分类,但这不是绝对的:

(1)Bootloader第一阶段的功能。

    • 硬件设备初始化。
    • 为加载Bootloader的第二阶段代码准备RAM空间。
    • 拷贝Bootloader的第二阶段代码到 RAM 空间中。
    • 设置好栈。
    • 跳转到第二阶段代码的C入口点。

在第一阶段进行的硬件初始化一般包括:关闭WATCHDOG、关中断、设置CPU的速度和时钟频率、RAM初始化等。这些并不都是必需的,比如S3C2410/S3C2440的开发板所使用的U-Boot中,就将CPU的速度和时钟频率的设置放在第二阶段。

甚至,将第二阶段的代码复制到RAM空间中也不是必需的,对于NOR Flash等存储设备,完全可以在上面直接执行代码,只不过这相比在RAM中执行效率大为降低。

(2)Bootloader第二阶段的功能。

    • 初始化本阶段要使用到的硬件设备。
    • 检测系统内存映射(memory map)。
    • 将内核映像和根文件系统映像从Flash上读到RAM空间中。
    • 为内核设置启动参数。
    • 调用内核。

2、Grub

GNU GRUB(GRand Unified Bootloader简称“GRUB”)是一个来自GNU项目的多操作系统启动程序。GRUB是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。GRUB可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数。可用来用来引导不同系统,如windows,linux,通常用于linux,毕竟是GNU的嘛。

Windows也有类似的工具NTLOADER;比如我们在机器中安装了Windows 98后,我们再安装一个Windows XP ,在机器启动的会有一个菜单让我们选择进入是进入Windows 98 还是进入Windows XP。NTLOADER就是一个多系统启动引导管理器,NTLOADER 同样也能引导Linux,只是极为麻烦罢了。

bootmgr:启动管理器。Bootmgr是Boot Manager的缩写,是在Windows Vista、Windows 7、windows 8/8.1和windows 10中使用的新的启动管理器,以代替Windows NT系列操作系统(Windows XP、Windows 2003)中的启动管理器——NTLDR。

3、uboot

U-Boot,全称为Universal BootLoader,即通用Bootloader,是遵循GPL条款的开放源代码项目。其前身是由德国DENX软件工程中心的WolfgangDenk基于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;
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门