位置:51电子网 » 技术资料 » 嵌入式系统

Embedded Linux 技术与概念解析

发布时间:2008/8/19 0:00:00 访问次数:425

由于目前的目标装置,都必须嵌入极为复杂的功能,所以嵌入式操作系统(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

由于目前的目标装置,都必须嵌入极为复杂的功能,所以嵌入式操作系统(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

相关IC型号

热门点击

 

推荐技术资料

DFRobot—玩的就是
    如果说新车间的特点是“灵动”,FQPF12N60C那么... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!