大多数嵌入式设备都是为了在一般资源受限或低尺寸的设备上执行特定任务而打造的。为此,大多数嵌入式开发人员须要清除毋须要的库和模块,并为其特定设备和用例创建自定义分发。我们先来了解一下嵌入式Linux系统有什么组件。
引导加载程序
从技术上讲,它坐落系统之外,其运行方法与首先运行BIOS的台式机或服务器系统不同。在嵌入式系统上,硬件启动负责基本初始化和执行内核的引导加载程序。在嵌入式系统上,这可以通过以下方法处理:GRUB、LILO或DasU-Boot。前者专门用于嵌入式设备。
Linux内核
包含进程和显存管理、网络堆栈、设备驱动程序,并为任何用户空间应用程序提供服务。引导加载程序将内核加载到显存中并运行它。内核找寻首先运行的“init”程序。“Init”程序负责启动其他服务,比如硬件驱动程序、文件系统驱动程序、文件系统挂载、服务和其他应用程序。内核只晓得init程序,假如找不到它,还会“内核崩溃”。
嵌入式系统上的内核与台式机等小型系统中的内核相同。主要区别在于嵌入式Linux内核专为在不同的CPU构架上运行而建立。
根文件系统
根文件系统包含C库和Linux服务/命令,以及其他必要的脚本。在嵌入式开发中,文件系统是内核和用户空间应用程序之间的插口。在初始化时,内核将每位程序加载到显存中,并希望将它们组织到文件和目录中。这是根文件系统arm11嵌入式linux系统linux应用程序,应当提早创建并挂载到“/”,之后内核能够启动“init”。
用户空间
用户空间是任何自定义应用程序或服务所在的地方。init程序还负责将这种加载到显存中。大多数嵌入式系统都是执行特定功能的单一用途应用程序,因而嵌入式系统上的应用程序常常是精简和最小化的。在目标嵌入式处理器上运行Linux须要起码8MB的RAMred hat linux下载,大多数应用程序起码须要32MB的RAM。RAM的实际要求取决于你的嵌入式应用程序的大小。不仅RAM之外,还须要起码4MB的储存显存。它可以是以下类型之一:NAND或NOR闪存、SD或MMC卡。
显卡支持包
显卡支持鞋子含驱动程序和其他软件arm11嵌入式linux系统,它们与你正在运行的特定硬件和操作系统相联接。对于Linux系统,每种电路板类型都有自己的一组BSP。在嵌入式开发个别情况下,假如你须要硬件来执行默认BSP中未包含的特定功能,你可能须要自定义这种并编撰你自己的驱动程序来支持你的特定应用程序。