大厂校招:星宸科技嵌入式面试及参考答案(5万字长文)
bootloader 具体做了些什么
Bootloader 是在操作系统内核运行之前运行的一段小程序。它主要负责以下几个重要任务:
- 硬件初始化
- Bootloader 首先会对硬件设备进行初始化,包括处理器、内存、中断控制器等关键部件。例如,设置处理器的工作模式、初始化内存控制器以确保内存可以正确地被访问。
- 对于一些特定的硬件设备,如串口、以太网控制器等,也可能进行初步的配置,以便在后续的启动过程中可以进行调试输出或网络通信。
- 加载内核
- Bootloader 的核心任务之一是将操作系统内核从存储设备(如硬盘、闪存等)加载到内存中。它需要确定内核的存储位置、读取内核映像文件,并将其放置到内存中的特定位置。
- 在加载内核的过程中,还可能需要进行一些校验操作,以确保内核映像的完整性和正确性。例如,计算内核映像的校验和,并与预先存储的校验值进行比较。
- 传递启动参数
- Bootloader 可以将一些启动参数传递给操作系统内核。这些参数可以包括内存布局、设备配置信息、启动模式等。
- 通过传递启动参数,内核可以在启动过程中根据这些信息进行相应的配置和初始化,从而更好地适应不同的硬件环境和启动需求。
- 启动内核
- 当内核