打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Embedded Linux 技术与概念解析

引言

Embedded Linux技术基于开放源码的资源,并且已经是当今最重要的嵌入式应用技术之一。Embedded Linux是烧录在目标装置上的系统,1个Embedded Linux系统包含Linux kernel与 root filesystem 2大部分,Embedded Linux系统到底包含哪些组成要素构成,本文将由概念的层面进行解析。

本文

由于目前的目标装置,都必须嵌入极为复杂的功能,所以嵌入式操作系统(Embedded system)成为嵌入式系统不可或缺的要素。由于嵌入式系统是功能导向的系统,因此必须设计、选择或购买正确(或适合)的目标装置,才能开始实作并嵌入嵌入式系统。因此,嵌入式系统技术是以功能、与目标装置为分类的1种技术。

例如,与PDA相关的目标装置(即硬件)、与MP3播放器相关的目标装置、与3G手机相关的目标装置...等等;使用这些目标装置所开发的特定功能系统,便是PDA的嵌入式系统、MP3音乐播放的嵌入式系统、3G手机的嵌入式系统。

Embedded Linux其实并不是1个操作系统,而是代表应用Linux系统于Embedded system的名词。Embedded Linux的技术核心主轴是在研究如何将Linux系统嵌入至嵌入式目标装置里。

Embedded Linux是基于Linux系统的特殊应用,当然也要符合众多标准才行。LSB与FHS标准是重要的2大标准,跟随标准不但可以提供系统间的兼容性,也可以提供我们1个Linux系统的建构依据。

GNU/Linux的2个标准

由FSG (Free Standards Group) 所主持的 LSB (Linux Standard Base) 项目即是在制定 GNU/Linux 标准。根据LSB标准所发展的GNU/Linux系统,才能提供应用程序最小的可执行环境,并且可在依循LSB标准的Linux distributions上执行无误。例如,我们可以在符合LSB标准的Red Hat Linux上发展应用程序,只要自行发展的Embedded Linux系统符合LSB标准所订定的规范,应用程序就可以顺利移植到Embedded Linux上执行。

LSB标准提供我们发展Embedded Linux的依据,虽然Embedded Linux系统是最小化的Linux,但因为Embedded Linux是嵌入式系统的软件平台,所以我们不能任意精简Linux系统,在精简的过程中仍要保留最基本的操作系统环境,而LSB的标准正是在制定这些基本的需求。

FHS全名为Filesystem Hierarchy Standard,是定义档案与目录标准的文件,FHS的标准,定义了目录与档案的摆放位置,而UNIX-like的系统则是根据这个标准,管理整个档案结构。因此,不管是系统厂商、Linux/UNIX distribution发展者、应用程序作者、套件管理者、系统维护人员都应该要依照FHS的标准来管理UNIX系统的目录与档案。

Embedded Linux的特色是大量使用自由软件、与开放源码软件(FOSS- Free Open Source Softwar)资源,任何你想要的软件,几乎都能在网络上找到自由软件已经成为Embedded Linux技术的重要支柱。自由软件资源包山包海,举凡应用程序、系统工具、网络工具、链接库、图形接口、小型浏览器、程序发展工具...等等都能找得到。

Busybox

Busybox是重要的Embedded Linux工具箱,这个工具箱提供基本的UNIX指令、系统程序(daemon)与开机程序(init process)。Busybox用来建造1个基本、最小化且可开机的Linux系统,由于Busybox里的指令与工具都经过最小化处理,因此已经是目前主要应用在Embedded Linux实作上的开放源码项目了。

Embedded Linux的组成

图 Embedded Linux整体架构

Embedded Linux平台除了Linux kernel外,还包含共享链接库(shared library)。shared libraries是Linux kernel的重要支持,并且也是Linux架构里独立的1层。在应用程序方面,许多现存的开放源码项目都可以直接移植到ARM9平台。但这里所指的移植是对原始码进行跨平台编译(cross compile),并不是BSP(board support package)的移植。

跨平台编译

因为开放源码开发工具的特性,在应用程序级别的移植工具上,可以有1套比较系统化的方法,也有相关的工具与环境可以使用,目前最热门的跨平台编译环境为OpenEmbedded。开放源码软件采用GNU Autoconf与GNU Automake来撰写编译法则(Makefile),因此实务上,要将应用程序移植到ARM9平台,大部分案例只需要做跨平台编译即可。要了解如何将原始码移植到ARM9平台,需要学会GNU Autoconf以及GNU Automake的使用。

GNU Autoconf

Autoconf是m4宏的扩充套件,可以用来自动设定软件套件的原始码。Autoconf会产生1个协助程序编译的设定文稿执行档(configuration script),以方便编译原始码前进行系统检查与设定,使用GNU Autoconf时,必须安装GNU m4套件。

GNU Automake

Automake是自动产生Makefile.in的工具,需配合Autoconf使用,以产生可以让GNU Make自动编译原始码的”Makefile”档案。

GNU Make

GNU Make会根据“Makefile”来自动编译程序,而编译完成的程序为执行文件。GNU Make的重要特点,是没有特定程序语言限制,甚至可以应用在非程序语言编译的环境中,例如:系统维护工作与套件安装,因此GNU Make可以说是系统自动化的好工具。

GNU Make根据“Makefile”档案里所定义的规则,执行Unix命令,简单的Makefile规格,可以利用编辑器手动撰写,但较复杂且与针对不同平台的设定,则建议采用GNU Autoconf/GNU Automake来产生“Makefile”。当我们能够产生使用cross toolchain的Makefile时,就可以将套件编译成ARM9的执行档。

ARM 平台的选择与支持

嵌入式装置的硬件选择当然没有所谓的标准,但若是谈论到嵌入式Linux的应用,在平台的选择上就会有一些考虑。最重要的考虑因素,当然就是处理器对于操作系统的支持,如此一来,没有MMU(内存管理单元)的ARM7平台,就不在主要的选择范围内。以下列出几个目前普遍使用的ARM9应用程序处理器(application processor):

1 2 3

关键词:

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Linux下Makefile的automake生成全攻略
面向实时嵌入式系统的图形用户界面支持系统—MiniGUI 编译、安装和配置
Linux编译安装中configure、make和make install各自的作用
Buildroot的用法和文档
Buildroot用户指南
轻轻松松产生 Makefile
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服