Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 为什么是;MLO“;启动步骤中需要什么?_Linux - Fatal编程技术网

Linux 为什么是;MLO“;启动步骤中需要什么?

Linux 为什么是;MLO“;启动步骤中需要什么?,linux,Linux,我在研究潘多拉车上的靴子踏板。据介绍,它们有多个引导步骤(引导rom>X-loader或SPL>U-boot>Linux内核)。事实上,我不明白他们为何没有效率地采取这些步骤。我不能直接加载u-boot而不是使用名为“MLO”的文件吗?“MLO”实际上是做什么的?是否有任何重要原因使他们不得不使用“MLO”而不是直接加载u-boot?来自eLinux.org: 第一阶段引导加载程序在通电后直接在板上运行。我 不知道此引导加载程序的名称(来自TI官方wiki,它是 称为启动Rom)。此引导加载程

我在研究潘多拉车上的靴子踏板。据介绍,它们有多个引导步骤(引导rom>X-loader或SPL>U-boot>Linux内核)。事实上,我不明白他们为何没有效率地采取这些步骤。我不能直接加载u-boot而不是使用名为“MLO”的文件吗?“MLO”实际上是做什么的?是否有任何重要原因使他们不得不使用“MLO”而不是直接加载u-boot?

来自eLinux.org:

第一阶段引导加载程序在通电后直接在板上运行。我 不知道此引导加载程序的名称(来自TI官方wiki,它是 称为启动Rom)。此引导加载程序初始化最小数量的CPU 然后访问SD卡的第一个分区 (必须是FAT格式),并加载一个名为“MLO”的文件 执行它。“MLO”是第二阶段引导加载程序

第二阶段引导加载程序显然可以是 X-loader或SPL。这个引导加载程序显然也只是读取第一个 分区,并加载一个名为“u-boot.bin”的文件 执行它。“u-boot.bin”是第三阶段引导加载程序

第三阶段引导加载程序是U-boot,它是一种流行的引导加载程序 适用于许多不同的嵌入式电路板和产品。此引导加载程序具有 许多不同的功能,包括交互式外壳、变量、, 能够访问SD卡并显示其内容等。发生了什么 下一步取决于熊猫板的U-boot版本, 以及它是如何配置的。在一个非常简单的配置中,U-Boot将 在第一个分区的根目录中查找文件“uImage” SD卡(同样,必须格式化为FAT分区),以及 执行那个。这是Linux内核。U-Boot传递内核a 命令行参数。这取决于内核的配置方式 可以从U-Boot接受命令行,也可以使用已编译的命令行 当它建成的时候

这是一个“熊猫板的事情”,对于Linux来说不一定是这样

然而,大多数系统都有类似于上述的“多级”引导。例如,启动运行Windows的PC时,您会看到:

  • BIOS启动
  • 引导扇区从磁盘或USB加载;或者从网络中读取引导记录
  • windows内核启动(您在“启动屏幕”之前/期间看到的内容)
  • 最后,“Windows”本身启动了
  • 因此,这既不是“低效的”,也不是不寻常的

    附言: 此链接还很好地描述了引导加载顺序:

    缴费灵:
    “MLO”代表“Mmc加载器”

    当主板出现时,内存管理单元(MMU)仍需要设置,CPU才能开始使用SDRAM。SoC有56KB的SRAM,可在该点使用,但它太小,u-boot无法从中运行。额外的步骤是,从SRAM运行的代码将加载并启动u-boot。

    对于硬盘,步骤2实际上可能是两个阶段:步骤2a。加载主引导扇区(磁盘的第一个扇区,可能包含以下扇区);那里的代码分析磁盘分区结构(可能有多个物理磁盘,如果可用)以选择要从中引导的分区;步骤2b。加载该分区的引导扇区,然后在分区中查找OS内核文件,并继续执行步骤3。