嵌入式 Linux 环境
在开始实际的移植编译工作之前,有必要先来说一下我们要搭建的完整的 Linux 运行环境是啥样的,以及包含那些部分。废话不多说,直接上图:
U-Boot 本质就是就是一个复杂点的裸机程序(镜像是 u-boot.bin),与我们通常编写的 ARM 裸机程序没有本质区别。U-Boot 是无条件启动的,从零开始启动的。
Linux Kernel 本身也是一个裸机程序(镜像是 zImage),和 U-Boot、裸机程序无本质区别。要说不同的地方,那就是内核运行起来后,在软件上分为内核层和应用层,分层后两层的权限不同,内存访问和设备操作的管理上更加精细(内核可以随便访问各种硬件,而应用程序只能被限制地访问硬件和内存地址)。