BootLoader
在嵌入式操作系统中,BootLoader是在操作系统内核运行之前运行的一种软件。它可以简单的初始化硬件设备、建立内存空间映射图,从而将目标系统的软硬件环境带到一个合适状态,以便为最终加载并引导操作系统内核准备好正确的环境。在嵌入式系统中,通常并没有像BIOS(基本输入输出系统:Basic In And Output System)那样的固件程序(注,有的嵌入式CPU也会内嵌一段短小的启动程序),因此整个系统的加载启动任务就完全由BootLoader来完成。在嵌入式系统中常用的Boot Loader为U-Boot,它是一种开源免费的支持目标系统非常多的系统引导程序。后面同大家讨论这个问题。
Linux Kernel
Linux支持的目标系统平台非常多,因此,不是所有的内核代码都对目标系统有效。选择合适的目标系统分支确定CPU架构是最主要的配置内容,这样内核就会只保留与目标系统相关的代码。其次,由于Linux内核实现了完整的操作系统功能,但对于特定的嵌入式系统来说,很多功能是不需要的,所以,在内核配置阶段还要去掉不使用的多余的功能。裁剪后的内核能够刚好适合目标系统,达到内核代码的体积最小、功能最优、运行效率最高的效果。Linux内核是C语言程序设计的,裁剪并编译后的Linux内核映像非常小。通常来讲只有几兆字节。这么小的内核,几乎一般的片上系统都可以运行。当你真正的配置并使用过Linux内核之后,你就会真正的明白它的好、正真的爱上它、用心的赞美它。
Root File System
Linux操作系统内核与根文件系统是完全独立的两个部分。Linux使用的根文件系统是以“/”作为根目录的倒树型的目录结构,这个目录结构中有很多系统定义的特有目录,如etc、home、sys、dev、proc、bin、sbin、mnt、lib等等。定制根文件系统,要求开发者根据需要创建目录文件、各种脚本文件、设备文件、库文件、指令解释执行文件等内容。根文件存放在指定的存储器内,内核启动后,会先驱动存储设备,然后在根据预先设定的方式挂载并使用根文件系统。开源的世界总会给我们不一样的惊喜,虽然根文件系统内容很多,但开发者现在可以使用BusyBox工具集,只需通过简单的菜单配置,就可以轻松的定制Linux根文件系统了。