扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:tangzhu 来源:赛迪网技术社区 2007年11月2日
关键字: Linux
全面系统移植Linux
现在,Linux系统已广泛地应用于科技和商业领域。在中高端领域,Linux系统除了支持包括文件、电邮、网络服务器在内的企业架构外,还支持诸如防火墙、VPN服务器、路由器和网关等业务单元架构;在低端领域,Linux通常用于嵌入式系统中,例如进程控制系统、PDA、家用网关和机顶盒等。
在系统启动和管理方面,Linux系统在企业中的应用与桌面应用十分类似,它们使用同样的启动机制。这一点在下文中将予以介绍。
由于嵌入式系统需要迅速启动,因此它所启动的进程数量有限,操作的资源也有限。用于嵌入式系统的存储设备和小型硬件限制了系统的存储空间。有限的存储空间决定了嵌入式系统必须采用专门的文件系统和硬件解决方案,例如磨损持平技术(Wear-Leveling)。该系统并不适用于普通系统,只可在一些以特定存储设备为目标的文件系统中实施。这些存储设备的写入次数是特定的,因为磨损持平技术的目标就是确保所有的目标存储器的写入次数大体相同。
嵌入式系统核心构件
所有Linux套件都包含同样的核心构件:一个内核和一个根文件系统。后者包含着系统使用的软件和库,以及所有用来为用户提供支持架构和用户使用的应用软件。在标准的开发系统中,根文件系统中的许多应用软件都是编译软件和用于应用软件开发的相关软件(习惯上被称为工具链)。
嵌入式Linux系统通常也包括同样的核心构件,只是它们有一些特殊之处。由于嵌入式系统的开发通常是在桌面系统环境下完成的,并且它的目标是特定的嵌入式开发主板。诸如TimeSys Linux之类的嵌入式Linux套件为嵌入式主板提供了特殊的内核、根文件系统和多套工具链。其中一套工具链集成在文件系统的内部,另一套则安装在桌面系统的文件系统中。后者被称为交叉编译程序,可以产生可以在嵌入式主板上执行的二进制命令。TimeSys Linux还包括第三套工具链,可以在Windows系统中运行,并产生运行于嵌入式主板的二进制命令。
宿主系统和目标系统对于大多数嵌入式系统开发是十分重要的概念。交叉编译程序经常用于嵌入式系统开发的原因是嵌入式主板一般没有对应用软件进行编译和优化所需要的资源。同样,它们也没有足够的空间进行全面开发或纠错。常用的解决方案是使用诸如NFS (网络文件系统)之类的技术,获取实际上存储于桌面开发系统的文件系统。因为桌面系统可以提供交叉编译程序和用于开发的存储空间,该系统环境被称为宿主系统。由于嵌入式系统开发主板是应用程序最终的存储和运行场所,因此它又被称为目标系统。
总之,宿主系统用来建立最终用于嵌入式系统的文件系统。对于大多数嵌入式系统来说,它包括一些压缩的、存储于内存中的文件系统,通常被称为初始RAM磁盘,以及其它存储于闪存中的压缩文件系统镜像。这些可以加载到内存中,也可直接调用。
与嵌入式Linux套件相关的各类工具链和文件系统组件增加了嵌入式系统移植的复杂程度。例如,为了给嵌入式主板编译2.6内核,必须先升级用户使用的交叉编译程序。但是,在此之前用户也许还要先升级用来开发交叉编译程序的桌面系统编译程序。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者