嵌入式linux设计?韦东山嵌入式linux
这篇文章给大家聊聊关于嵌入式linux设计,以及韦东山嵌入式linux对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。
嵌入式和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和linux有什么不同.linux的作用是什么
1.什么是嵌入式Linux系统?
嵌入式Linux系统就是利用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
看[url]www.linuxdevices.com/links/ www.linuxdevices.com/links/ [/url]
相对,Linux的图形界面还相对较弱,但近年Linux的图形界面发展也很快,这也就不是问题。
2.什么是嵌入式Linux
嵌入式linux是将日益流行的Linux操作系统进行裁剪修改使之能在嵌入式计算机系
统上运行的一种操作系统嵌入式linux既继承了Interlnet上无限的开放源代码资源又具有嵌
入式操作系统的特性
2嵌入式Linux的特点是版权费免费;购买费用媒介成本技术支持全世界的自由软件
开发者提供支持网络特性免费而且性能优异软件移植容易代码开放有许多应用软
件支持应用产品开发周期短新产品上市迅速因为有许多公开的代码可以参考和移植
实时性能RT_Linux Hardhat Linux等嵌入式Linux支持实时性能稳定性好安全性好
3嵌入式Linux有巨大的市场前景和商业机会出现了大量的专业公司和产品如Montavista
Lineo Emi等有行业协会如Embedded Linux Consortum等得到世界著名计算机公司和OEM
板级厂商的支持例如IBM Motorola Intel等传统的嵌入式系统厂商也采用了Linux策略如
Lynxworks Windriver QNX等还有Internet上的大量嵌入式Linux爱好者的支持嵌入式Linux
支持几乎所有的嵌入式CPU和被移植到几乎所有的嵌入式OEM板
4嵌入式Linux的应用领域非常广泛主要的应用领域有信息家电PDA机顶盒Digital
Telephone Answering Machine Screen Phone数据网络Ethernet Switches Router Bridge
Hub Remote access servers ATM Frame relay远程通信医疗电子交通运输计算机外
设工业控制航空航天领域等
3.如果分别让10位工程师给出嵌入式系统的定义,将得到10个不同的答案。一般来说,大部分的嵌入式系统执行特定的任务。我们假定最简单的嵌入
式系统包括输入/输出功能,以及一些控制逻辑,该系统基于它的配置执行某些类型的功能。按照这个标准,可以认为一个包含实现控制逻辑74123计数器以
及一个状态是一个嵌入式系统。也许可以补充说,该系统必须可通过存储在固件中的软件进行编程。这个新的嵌入式系统定义包括输入/输出(I/O),以及存储
在系统固件中的控制逻辑。一个带有鼠标、键盘、网络连接并运行图形用户界面(GUI,graphical user interface)多任务操作系统
的桌面计算机显然满足这些要求,但我们能认为它是一个嵌入式系统吗?
如果桌面计算机不是一个嵌入式系统,那么手持设备呢?它们有I/O功能,可以运行存储在固件中的控制逻辑。有人说,桌面计算机和手持设备都有通用计算机设备,可以运行软件来执行许多不同的任务,与之不同的是,嵌入式系统(例如,洗碗机控制器或飞行导航系统)主要是为特定任务而设计的。这种特定的功能限定使嵌入式设备有功能上的唯一性。如果是这样,为什么一些嵌入式系统设计成具有附加的功能,如存储在非易失性存储器中的程序,并且具有运行可以完成原始设计范围之外的任务的多任务操作系统的能力呢?
在过去,区分嵌入式系统和通用计算机比现在简单的多。例如,可以很容易地区分出一个基于8051的T1分幅卡嵌入式系统和一台Sun UNIX工
作站。而现在,从功能方面很难区分一台Sun工作站和一个包含PowerPC以及32MB内存和16MB闪存的机顶盒。这样的机顶盒可以运行带GUI的多
任务操作系统,可现场升级,可以同时运行多个程序(如视频控制器、数字录像和Java虚拟机),还可以进行安全的因特网在线交易。很难判断这种机顶盒是否是一个嵌入式系统。显然,硬件性能的提升和价格的下降使通用计算机和嵌入式系统之间的界限变得很模糊,技术的进步使得我们很难定义什么是嵌入式。
想做嵌入式开发,为什么要学习linux
我最开始用Linux是被逼的。当时用的是一台旧的笔记本电脑,做一些文字处理的工作。跑Windows动不动就死机,无奈之下安装了Ubuntu。当时只是想找一个Windows的替代品。用Ubuntu的图形化界面很多,不怎么用命令行,所以总觉得比不上Windows。当然,基本的功能还是全的。我用那台旧电脑兼职翻译,赚了2000块的“巨款”。
后来深入使用Linux,是因为做论文时要用服务器。服务器是Debian系统,只能用ssh连接。我只能可怜巴巴的对着命令行敲字了。也是在这种情况下,我才真正发现Linux的好处。
首先,Shell编程很方便,特别是配合Linux下的各个工具,比如cat, sed, awk, grep。我经常会向服务器的任务管理器提交工作。工作太大,没有足够处理器时,就要排队等空隙。用shell编写一个小脚本,让它来替我安排工作的提交,就节省了我大量的时间。Shell编程甚至可以实现相当复杂的功能。Linux把每个小工具的功能都做强。想要实现复杂功能时,就利用文本流把它们连接在一起。这样,功能性和独立性就都兼顾了。(Linux文本流)
其次,Linux的稳定性很好。这也是大部分服务器使用Linux的一个重要原因。我没有用过Windows的服务器版本,不好评价。但在PC上,Linux要比Windows稳定的多。由于Linux与Windows的存储方式不同,所以Linux可以长时间的持续运转,也不需要对磁盘进行碎片整理。当然,Linux的图形化界面略弱。如果用图形化界面,会时有崩溃。(为什么Linux不需要磁盘碎片整理)
再次,Linux的源码和架构都是开放的,你可以从中学到很多操作系统原理。Linux的整个哲学体系继承自UNIX,发展的年头要比Windows长很多时间,整个设计体系已经相当稳定,并化繁为简。POSIX的标准也很普遍,Linux熟悉了之后,其它的UNIX系统也很容易上手。Windows的许多东西不透明,很复杂,又常变化,并不是一个很好的学习样例。(Linux架构)
最后,Linux下的各种工具基本上都是免费的。更方便的,使用package manager下载编译好的版本。这和Windows下到处买光碟、找可用下载连接、找注册码的繁琐过程完全不同。如果你想要使用任何的工具,一般只需要几分钟,就能借网络搞定。Linux的开源社区也很活跃,很容易找到人讨论,或者找个项目练手。
再从我个人的角度说说吧。首先,Linux是一个很强的附加技能。Windows对于用户来说很贴心,但也意味着使用门槛低,基本上大家都会。而Linux,即使是命令行的使用,也需要一定时间熟悉。在CV上写上熟悉Linux的命令行使用,熟悉Linux配置,要比写熟悉Windows使用,加分不少。
其次,服务器和云服务平台选用Linux的比较多。这意味着,在超越PC的战场上,Linux是一个必修技能。如果是从事IT开发的人,Linux基本上是绕不过去的一个槛。现在Linux在移动端发展的也不错。看Ubuntu最近的动作,是希望在移动端有所作为的。而安卓用的也是Linux内核。
最后,Linux设备投入小,而Linux知识更新换代较慢,学习的性价比很高。学完后还可以通吃Unix和Mac。