uboot 和 kernel 两个项目支持的架构都差不多,使用的 build 系统也一样,当然目录和组织结构都类似。uboot 只是初始化硬件,引导 kernel 的,所以 uboot 会初始化 cpu ,内存, 存储器 flash/ sd/ emmc,串口,屏幕,甚至更多的外设。uboot 是可以i单独使用的。也可以运行程序的。uboot 本身就是一个完整的系统,并且参考 kernel 引入了设备树和驱动的概念。
他虽然是个小系统,但是主要功能还是 引导 系统用的,所以他的初始化硬件部分很完善,系统层面很弱很弱。
kernel 就是 linux 内核,是完整的系统,uboot 引导 kernel 后,kernel 完全自己运行,不依赖不需要 uboot 任何代码和功能
boot用来启动内核,启动后就没boot什么事了,启动过程中会调用函数、操作flash、sdram等。
内核里边驱动就有和boot类似功能的代码。