BootLoader的概念
Boot Loader 就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。通常,Boot Loader 是严重地依赖于硬件而实现的,因此建立一个通用的 Boot Loader 几乎是不可能的。
????? 每种不同的 CPU 体系结构都有不同的 Boot Loader。有些 Boot Loader 也支持多种体系结构的 CPU,比如 U-Boot 就同时支持 ARM 体系结构和MIPS。除了依赖于 CPU 的体系结构外,Boot Loader 实际上也依赖于具体的嵌入式板级设备的配置。 ????? 从固态存储设备上启动的 Boot Loader 大多都是 2 阶段的启动过程,也即启动过程可以分为 stage 1 (汇编部分)和 stage 2 (C语言部分)两部分。 ???? 第一阶段:A,基本的硬件初始化(屏蔽依赖于CPU体系架构的所有中断,关闭CACHE);B,为第二阶段准备RAM;C,复制第二阶段的CODE到RAM;D,设置堆栈;E,跳转到第二阶段的C入口点。 ???? 第二阶段:A,初始化本阶段的硬件设备;B,建立内存映射;C,将内核映像和根文件系统映像从FLASH读到RAM中;D,设置内核启动参数;E,调用内核。 ??????????????????????????????????? ?????
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |