linux嵌入式系统
㈠ linux嵌入式系统是什么
一种嵌入式操作系统,烧入非易失性存储设备(如flash芯片),运行在板子上的操作系统。受限于嵌入式设备的存储容量,所占空间都很小。
当然首先要知道什么是嵌入式设备,嵌入式设备的定义一般就是指非通用PC设备。
WinCE是一种类Windows的嵌入式操作系统,不严格地说,可以看成windows的缩小版;同样,Linux嵌入式操作系统也可以看成是PC上跑的linux操作系统的缩小版。
现在很多航空航天仪器、医疗设备等都采用Linux嵌入式操作系统。强大的网络功能和代码开源易获取易裁剪是其特点。
参见我的另一个回答:
http://z..com/question/90049351.html
㈡ 嵌入式和linux的关系
嵌入式要学哪些东西?今天我详细告诉你到底要学哪些技术!
1)学习 Linux系统安装、 常用命令、应用程序安装。
2) 学习 Linux 下的 C 编程、这本书必学《UNIX 环境高级编程》、《UNIX网络编程》,Rechard Stevens 写的,C 高手大都学习过 《C 和指针》、《C 缺陷与陷阱》、《高质量C/C++编程指南》、《C 专家编程》、《The C programming Language》
3)程序员大都要学:数据结构,嵌入式程序员数据结构必学!
4)底层开发人员大都要学:微机原理、计算机体系结构,嵌入式开发人员必学!
5)单片机可以让一个从事软件开发的人了解和如何操作硬件,有必要学,因为一开始就从 ARM 入手,不太现实!
6)ARM 体系结构,其中有汇编。
7)数字电路有必要学习,不然你在做底层开发时真的会不知道怎么看原理图,起码也得懂与入门吧。
8)ARM + Linux 应用程序开发(前提是要有开发板)
到此,你勉强算是在嵌入式Linux这个行业有了初步入门了吧, 但遗憾的是这还远远不够,我们还得继续,因为这上嵌入式,我们得变成高手。
9)要做底层开发,就必须知道软硬件之间是如何衔接和配合工作的,那么电子技术应该要好好学习了,很多时候会用到模拟电路知识,这是区别好手与菜鸟的不同之处之一。
10)Linux 下的汇编要学,这样你才能真正了解你写的程序是如何在一个特定的硬件上跑的。这是区别好手与菜鸟的不同之处之二。
11)TCP/IP 协议栈要学,所有的嵌入式高手都得掌握的东西,这是区别好手与菜鸟的不同之处之三。
12)有了这些东西,拿下 Linux 驱动 已经不再话下,需要你去学习 Linux 内核源代码和Linux驱动程序设计,这是一个技术升华。
到此, 你已经算是 嵌入式Linux 的中级人物了,继续往下:
13)音频、视频的解码译码技术你得学。
14)各种 IC ,各种 bootloader 你能够参与其开发设计。
可以去21ic电子技术论坛上交流一下,那里面有很多大牛。。。
㈢ 什么是嵌入式linux系统
ash芯片),运行在板子上的操作系统。受限于嵌入式设备的存储容量,所占空间都很小。
当然首先要知道什么是嵌入式设备,嵌入式设备的定义一般就是指非通用PC设备。
WinCE是一种类Windows的嵌入式操作系统,不严格地说,可以看成windows的缩小版;同样,Linux嵌入式操作系统也可以看成是PC上跑的linux操作系统的缩小版。
现在很多航空航天仪器、医疗设备等都采用Linux嵌入式操作系统。强大的网络功能和代码开源易获取易裁剪是其特点。
参见我的另一个回答:
㈣ 嵌入式linux和linux有什么区别
Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。Linux是一个领先的操作系统,世界上运算最快的10台超级计算机运行的都是Linux操作系统。嵌入式Linux系统就是利用Linux其自身的许多特点,把它应用到嵌入式系统里。随着微处理器的产生,价格低廉、结构小巧的CPU和外设连接提供了稳定可靠的硬件架构,那么限制嵌入式系统发展的瓶颈就突出表现在了软件方面。
㈤ 嵌入式系统,linux和嵌入式linux的区别
嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。事实上,所有带有数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是是由单个程序实现整个控制逻辑。
国内普遍认同的嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。嵌入式系统的核心是由一个或几个预先编程好以用来执行少数几项任务的微处理器或者单片机组成。与通用计算机能够运行用户选择的软件不同,嵌入式系统上的软件通常是暂时不变的;所以经常称为“固件”。
linux:
Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。Linux是一个领先的操作系统,世界上运算最快的10台超级计算机运行的都是Linux操作系统。严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。它主要用于基于Intel x86系列CPU的计算机上。这个系统是由全世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。
Linux以它的高效性和灵活性着称,Linux模块化的设计结构,使得它既能在价格昂贵的工作站上运行,也能够在廉价的PC机上实现全部的Unix特性,具有多任务、多用户的能力。Linux是在GNU公共许可权限下免费获得的,是一个符合POSIX标准的操作系统。Linux操作系统软件包不仅包括完整的Linux操作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。它还包括带有多个窗口管理器的X-Windows图形用户界面,如同我们使用Windows NT一样,允许我们使用窗口、图标和菜单对系统进行操作。
嵌入式linux:
嵌入式Linux系统就是利用Linux其自身的许多特点,把它应用到嵌入式系统里。随着微处理器的产生,价格低廉、结构小巧的CPU和外设连接提供了稳定可靠的硬件架构,那么限制嵌入式系统发展的瓶颈就突出表现在了软件方面。尽管从八十年代末开始,陆续出现了一些嵌入式操作系统,比较着名的有Vxwork、pSOS、Neculeus和Windows CE。但这些专用操作系统都是商业化产品,其高昂的价格使许多低端产品的小公司望而却步;而且,源代码封闭性也大大限制了开发者的积极性。另外,结合国内实情,当前国家对自主操作系统的大力支持,也为源码开放的LINUX的推广提供的广阔的发展前景。还有,对上层应用开发者而言,嵌入式系统需要的是一套高度简练、界面友善、质量可靠、应用广泛、易开发、多任务,并且价格低廉的操作系统。在不久的将来,从冰箱到收音机都会内置处理器。因为Linux的开放性,许多人认为Linux非常适合多数Internet设备。他们认为Linux可以支持不同的设备,支持不同的配置。
Linux做嵌入式的优势,首先,Linux是开放源代码的,不存在黑箱技术,遍布全球的众多Linux爱好者又是Linux开发者的强大技术支持;其次,Linux的内核小、效率高,内核的更新速度很快;第三,Linux是免费的OS,在价格上极具竞争力。
Linux还有着嵌入式操作系统所需要的很多特色,突出的就是Linux适应于多种CPU和多种硬件平台,是一个跨平台的系统。到目前为止,它可以支持二三十种CPU。而且性能稳定,裁剪性很好,开发和使用都很容易。很多CPU包括家电业芯片,都开始做Linux的平台移植工作。移植的速度远远超过Java的开发环境。也就是说,如果今天用Linux环境开发产品,那么将来换CPU就不会遇到困扰。同时,Linux内核的结构在网络方面是非常完整的,Linux对网络中最常用的TCP/IP协议有最完备的支持。提供了包括十兆、百兆、千兆的以太网络,以及无线网络,Toker ring(令牌环网)、光纤甚至卫星的支持。所以Linux很适于做信息家电的开发。
还有使用Linux为的是来开发无线连接产品的开发者越来越多。Linux在快速增长的无线连接应用主场中有一个非常重要的优势,就是有足够快的开发速度。这是因为LInux有很多工具,并且Linux为众多程序员所熟悉。因此,我们要在嵌入式系统中使用Linux操作系统。
Linux的大小适合嵌入式操作系统──Linux固有的模块性,适应性和可配置性,使得这很容易做到。另外,Linux源码的实用性和成千上万的程序员热切其望它用于无数的嵌入式应用软件中,导致很多嵌入式Linux的出现,包括:Embedix,ETLinux,LEM,Linux Router Project,LOAF,uCLinux,muLinux,ThinLinux,FirePlug,Linux和PizzaBox Linux。
㈥ 什么叫嵌入式操作系统和linux的区别与联系。
嵌入式操作系统EOS(Embedded OperatingSystem)是一种用途广泛的系统软件,过去它主要应用于工业控制和国防系统领域。EOS负责嵌人系统的全部软、硬件资源的分配、调度工作,控制协调并发活动;它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。目前,已推出一些应用比较成功的EOS产品系列。随着Internet技术的发展、信息家电的普及应用及EOS的微型化和专业化,EOS开始从单一的弱功能向高专业化的强功能方向发展。嵌人式操作系统在系统实时高效性、硬件的相关依赖性、软件固态化以及应用的专用性等方面具有较为突出的特点。EOS是相对于一般操作系统而言的,它除具备了一般操作系统最基本的功能,如任务调度、同步机制、中断处理、文件功能等外,还有以下特点:
(1)可装卸性。开放性、可伸缩性的体系结构。
(2)强实时性。EOS实时性一般较强,可用于各种设备控制当中。
(3)统一的接口。提供各种设备驱动接日.
(4)操作方便、简单、提供友好的图形GUI,图形界面,追求易学易用.
(5)提供强大的网络功能,支持TCP门P协议及其它协议,提供TCP/UDP/IP/PPP协议支持及统一的MAC访问层接口,为各种移动计算设备预留接口.
(6)强稳定性,弱交互性。嵌入式系统一旦开始运行就不需要用户过多的干预,这就要负责系统管理的EOS臭有较强的稳定性。嵌入式操作系统的用户接日一般不提供操作命令,它通过系统调用命令向用户程序提供服务。
(7)固化代码。在嵌入系统中,嵌入式操作系统和应用软件被固化在嵌入式系统计算机的ROM中。辅助存储器在嵌入式系统中很少使用,因此,嵌入式操作系统的文件管理功能应该能够很容易地拆卸,而用各种内存文件系统.
(8)更好的硬件适应性,也就是良好的移植性.
国际上用于信息电器的嵌入式操作系统有40种左右。现在,市场上非常流行的EOS产品,包括3Corn公司下属子公司的Palm OS,全球占有份额达50%,MicroS。fi公司的Wind。ws CE不过29%。在美国市场,Palm OS更以80%的占有率远超Windows CE。开放源代码的Linux很适于做信息家电的开发.
比如:中科红旗软件技术有限公司开发的红旗嵌入式Linux和美商网虎公司开发的基于Xlinux的嵌人式操作系统“夸克"。“夸克”是目前全世界最小的Linux,它有两个很突出的特点,就是体积小和使用GCS编码。
Linux比Palm OS和Windows CE更小、更稳定,而且Linux是开放的OS,在价格上极具竞争力。如今整个市场尚未成型,嵌入式操作系统也未形成统一的国际标准,而且Linux的一系列特征又为我们开发国产的嵌入式操作系统提供了方便,因此,我们有机会在这个未成熟的市场上占有一席之地。
㈦ 如何做嵌入式Linux操作系统
做一个嵌入式Linux系统究竟要做哪些工作
做一个嵌入式Linux系统究竟需要做哪些工作?也就是本文究竟要讲述哪些内容?我先介绍一个脉络,可以做为我们后面工作的一个总的提纲:
第一步、建立交叉编译环境
没有交叉开发经验的读者,可能一时很难接受这个概念。首先,要明白两个概念:一般我们工作的机器,称为开发机、主机;我们制作好的系统将要放到某台机器,如手机或另一台PC机,这台机我们称为目标主机。
我们一般开发机上已经有一套开发工具,我们称之为原生开发套件,我们一般就是用它们 来写程序,那么,那什么又是交叉编译环境呢?其实一点也不神秘,也就是在开发机上再安装一套开发工具,这套开发工具编译出来的程序,如内核、系统工作或者我们自己的程序,是放在目标主机上运行的。
那么或许有初学者会问,直接用原生开发工具为目标主机编译程序不就完了?至少我当 初是这么想的。一般来说,我们的开发机都是X86平台,原生开发套件开发的工具,也针对 X86平台,而我们的目标主机可能是PowerPC、IXP、MIPS……所以,我们的交叉编译环境是针对某一类具体平台的。
一般来讲,交叉开发环境需要二进制工具程序、编译器、C链接库,嵌入式开发常用的这三类软件是:
Binutils
Gcc
uClibc
当然,GNU包含的工具套件不仅于此,你还要以根据实际需要,进行选择
第二步、编译内核
开发工具是针对某一类硬件平台,内核同样也是。这一步,我们需要用第一步中建立的工具,对内核进行编译,对于有内核编译经验的人来说,这是非常简单的;
第三步、建立根文件系统
也就是建立我们平常看到的bin、dev、proc……这一大堆目录,以及一些必备 的文件;另外,我们还需要为我们的目标系统安装一些常用的工具软件,如 ls、ifconfig……当然,一个办法是找到这些工具的源代码,用第一步建立的交叉编译工具来编译,但是这些软件一是数量多,二是某些体积较大,不适合嵌入式系统,这一步,我们一般都是用busybox来完成的,包括系统引导软件init;
最后,我们为系统还需要建立初始化的引导文件,如inittab……
第四步、启动系统
在这一步,我们把建立好的目标、文件、程序、内核及模块全部拷贝到目标机存储器上, 如硬盘。然后为系统安装 bootloader,对于嵌入式系统,有许多引导程序可供我们使用。不过它们许多都有硬件平台的限制。当然,如果你是工作在X86,可以直接用lilo 来引导,事实上,本文就是采用的lilo。
做到这一步,将目标存储设备挂上目标机,如果顺利,就可以启动系统了。
当然,针对某些特别的平台,不能像硬盘这样拷贝了,需要读卡器、烧录……但是基本的方法是相通的!
第五步、优化和个性化系统
通过前四步,我们已经得到了一个可以正常工作的系统。在这一步里,就是发挥你想象的时候了……
本文的工作环境
项目根目录/home/kendo/project ------>;我将它指定至PATH:$PRJROOT
子目录及说明
目录 内容
bootloader 目标板的引导加载程序,如lilo等
build-tools 建立交叉编译平台的工具源码
debug 调试工具及所有相关包
doc 项目中用到的所有文档
images 编译好的内核映像,以及根文件系统
kernel 各个版本的Linux内核源码
rootfs 制作好的根文件系统
sysapps 目标板将要用到的系统应用系统,比如thttpd,udhcpd等
tmp 存放临时文件
tools 编译好的跨平台开发工具链以及C链接库
工作的脚本
#!/usr/bin
export PROJECT=skynet
export PRJROOT=/home/${PROJECT}
export TARGET=i386-linux
export PREFIX=${PRJROOT}/tools
export TARGET_PREFIX=${PREFIX}/${TARGET}
exportPATH=${PREFIX}/bin:/bin:/sbin:/usr/bin:/usr/sbin
cd $PRJROOT
㈧ linux与嵌入式系统的关系
linux和嵌入式系统是相互于相互交叉使用的。
嵌入式系统的定义就是软硬件可裁剪,在实际项目中,对产品的功耗、存储等要求严格,所以就会涉及将完整的Linux系统进行精简瘦身,节约存储提高效率,这就是所谓的系统移植、裁剪。此工作需要对Linux内核极其熟悉。
Linux驱动开发:嵌入式产品上面的各种外设的驱动开发,不仅要懂软件、还需要熟悉Linux内核代码、了解硬件相关知识。
嵌入式应用开发:调用Linux的系统调用接口,进行基于Linux系统的应用开发,只需要有Linux C语言知识的积累即可完成。
(8)linux嵌入式系统扩展阅读
嵌入式linux的特点
1、嵌入式linux既继承了Internet上无限的开放源代码资源,又具有嵌入式操作系统的特性。
2、嵌入式Linux的特点是版权费免费;购买费用媒介成本技术支持全世界的自由软件开发者提供支持网络特性免费。
3、一些嵌入式系统设计成具有附加的功能,如存储在非易失性存储器中的程序,并且具有运行可以完成原始设计范围之外的任务的多任务操作系统的能力。