搞了两年的网络设备,它都认识我了,我却不认识它,惭愧至极!今天就在这里描述一下这个老朋友。
1、bootloader是什么?
bootloader就是一段程序。
2、bootloader干什么用?
初始化硬件设备、建立内存空间映射表,建立适当的系统软硬件环境,为最终调用操作系统内核做好准备。
在系统加电或复位后,cpu通常会从某个预先设定好的地址(通常是0x00000000)取第一条指令。系统带有的固态存储设备(例如:RAM、FLASH等)被映射到预先安排的地址上,bootloader通常安装在嵌入式存储设备的最前端,因此系统加电后,cpu首先执行bootloader。
3、bootloader引导系统启动方式?
第一种方式:网络启动
bootloader通过以太网口远程下载内核映像或者文件系统,一般使用tftp协议进行下载,还可以通过dhcp动态分配ip地址,如果bootloader支持配置ip,则可以不使用dhcp。
第二种方式:磁盘启动
传统的Linux系统运行在台式机或者服务器上,这些计算机一般都使用BIOS引导,并且使用磁盘作为存储介质。如果进入BIOS设置菜单,可以探测处理器、内存、硬盘等设备,可以设置BIOS从软盘、光盘或者某块硬盘启动。也就是说,BIOS并不直接引导操作系统。那么在硬盘的主引导区,还需要一个Bootloader。这个Bootloader可以从磁盘文件系统中把操作系统引导起来。
第三种方式:flash启动
固态存储设备空间划分(地址从低到高):bootloader、bootloader参数、内核映像、根文件系统映像。