在进行 Linux 驱动开发之前肯定需要先将Linux 系统移植到开发板上去。如果学习过UCOS/FreeRTOS 应该知道,UCOS/FreeRTOS 移植就是在官方的 SDK 包里面找一个和自己所使用的芯片一样的工程编译一下,然后下载到开发板就可以了。
问: 那么 Linux 的移植是不是也是这样的呢?下载 Linux 源码,然后找个和我们所使用的芯片一样的工程编译一下就可以了呢???
答:很明显不是的!!!因为 Linux 的移植要复杂的多,在移植 Linux之前我们需要先移植一个 bootloader 代码,这个 bootloader 代码用于启动 Linux 内核,bootloader有很多,常用的就是 U-Boot。移植好 U-Boot 以后再移植 Linux 内核,移植完 Linux 内核以后Linux 还不能正常启动,还需要再移植一个根文件系统(rootfs),根文件系统里面包含了一些最常用的命令和文件。所以 U-Boot、Linux kernel 和 rootfs 这三者一起构成了一个完整的 Linux 系统,一个可以正常使用、功能完善的 Linux 系统。

