1. 首先,Bootloader这个词是针对嵌入式系统而言的。
2. 就像嵌入式系统和桌面电脑同属计算机系统一样,Bootloader和BIOS要完成的功能有很多相似之处。
3. 由于不同的嵌入式系统的硬件(包括CPU、外设等)差异很大,因此Bootloader几乎都是针对某个特定嵌入式系统开发的。幸运的是,有一些诸如U-Boot这样的很好的开源Bootloader可以用来定制,大大减少从头开始造轮子的痛苦。
4. Bootloader的基本功能:
(1)初始化关键硬件,如RAM控制器、IO控制器等;
(2)初始化系统内存,并准备将其控制权移交给操作系统;
(3)给外设控制器分配必要的资源,如内存和中断电路等;
(4)提供一个定位和加载操作系统的机制;
(5)加载操作系统,将控制权移交给它,并向其传递必要启动信息(内存容量、时钟频率、串口速率这类硬件配置数据)。
5. 与BIOS的区别
一旦操作系统掌握控制权时,Bootloader就不存在了,比如Linux内核将要求回收那些被Bootloader占用的系统资源。想重新加载Bootloader?那只能断电重启了。