虽然Linux并未发行过嵌入式版本的内核,但这并不是指在嵌入式系统中无法使用Linux内核,只是意味着建立嵌入式系统不需要特别的内核。通常可以使用官方发行的Linux内核来建立自己的系统。
有时,可能会想要使用由第三方发行的、修改过的内核。这类内核为了特殊的硬件配置或支持特定的应用,经过特别的裁减。例如,各种嵌入式发行套件提供的内核,通常会包含一些主内核源码树中找不到的优化程序代码,以及用来支持某些调试工具(如内核调试器)的补丁。然而,嵌入式系统中使用的内核与工作站或服务器上使用的内核主要不同还是在于用来建立内核的配置。
所以,嵌入式Linux系统只是代表它是一个基于Linux内核的嵌入式系统,这并不意味着内核使用了任何特定的链接库或用户工具。
一个嵌入式Linux发行套件可能包括:
● 用来开发嵌入式Linux系统的平台
● 各种为了在嵌入式系统中使用而裁减过的应用程序
开发平台包括了各种用来协助开发嵌入式系统的开发工具。这可能包括特殊的源码浏览器、交叉编译器、调试器、项目管理软件、引导映象生成器,等等。开发平台会被安装在开发主机上。
由于嵌入式系统一般需要迅速启动,因此,它所启动的进程数量有限,操作的资源也有限。用于嵌入式系统的存储设备和小型硬件限制了系统的存储空间。嵌入式Linux发行套件中的应用程序都是经过裁减的。这可能包括可以在目标板系统上使用的特殊链接库、可执行文件以及配置文件、也可能会为目标系统提供一种方法来简化根文件系统的产生。
Linux系统对硬件平台的要求:
● 至少32位的CPU(www.xing528.com)
现在有Embedded Linux Kernel Subset(嵌入式Linux内核子集,ELKS)计划,其目标就是在16位处理器上运行Linux。但是,内核上及用户空间上已开发完成的大量应用程序都以32位为主。
● CPU必须具有存储管理单元(Memory Management Unit,MMU)
一种经过特别修改的Linux版本(称为ucLinux),可以在一些未配备MMU的CPU上执行。然而,在此类处理器上,Linux应用程序的开发与标准Linux应用程序开发截然不同,需要分开讨论。
*ucLinux计划的代码已经被整合进2.5版本以后的内核:
● 满足操作系统运行要求的RAM
● I/O能力
● 内核必须能通过某种形式(永久性存储装置或网络存储装置)来加载或存取根文件系统
所有Linux套件都包含同样的核心构件:一个内核和一个根文件系统。后者包含着系统使用的软件和库,以及所有用来为用户提供支持架构和用户使用的应用软件。在标准的开发系统中,根文件系统中的许多应用软件都是编译软件和用于应用软件开发的相关软件(习惯上被称为工具链)。
嵌入式Linux系统通常也包括同样的核心构件,只是它们有一些特殊之处。由于嵌入式系统的开发通常是在桌面系统环境下完成的,并且它们的目标是特定的嵌入式开发主板。有一些嵌入式Linux套件为嵌入式主板提供了特殊的内核、根文件系统和多套工具链。其中,一套工具链集成在文件系统的内部,另一套则安装在桌面系统的文件系统中。后者被称为交叉编译程序,可以在桌面系统上生成能够在嵌入式主板上执行的二进制代码。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。