当前位置:首页 » 操作系统 » uclinux源码

uclinux源码

发布时间: 2022-09-27 04:20:00

⑴ UNIX 1.0 源代码谁有啊,不胜感激,有的话发[email protected]

你好,嵌入式linux系统的设计与应用

摘要:随着嵌入式Linux系统的迅速发展,嵌入式Linux已发展成为嵌入式操作系统的一个重要分支。本文介绍了嵌入式Linux的设计和几种流行的嵌入式Linux系统。

关键词:嵌入式Linux

一、引言

嵌入式系统(Embedded Systems)是根据应用的要求,将操作系统和功能软件集成于计算机硬件系统之中,从而实现软件与硬件一体化的计算机系统。嵌入式系统出现于60年代晚期,它最初被用于控制机电电话交换机,如今已被广泛的应用于工业制造、过程控制、通讯、仪器、仪表、汽车、船舶、航空、航天、军事装备、消费类产品等众多领域。嵌入式系统在数量上远远超过了各种通用计算机系统:计算机系统核心CPU,每年在全球范围内的产量大概在二十亿颗左右,其中超过80%应用于各类专用性很强的嵌入式系统。

一般的说,凡是带有微处理器的专用软硬件系统都可以称为嵌入式系统。和通用的计算平台相比,嵌入式系统往往具有功能单一、体积小、功耗低、可靠性高、剪裁性好、软硬件集成度高、计算能力相对较低等特点。多年来,嵌入式设备中没有操作系统,其主要原因有二:首先,诸如洗衣机、微波炉、电冰箱这样的设备仅仅需要一道简单的控制程序,以管理数量有限的按钮和指示灯,没有使用操作系统的必要;其次,它往往只具有有限的硬件资源,不足以支持一个操作系统。

然而,随着硬件的发展,嵌入式系统变得越来越复杂,最初的控制程序中逐步的加入了许多功能,而这些功能中有很多可以由操作系统提供。于是,在70年代末期出现了嵌入式操作系统(Embedded Operating Systems),它的出现大大简化了应用程序设计,并可以有效的保障软件质量和缩短开发周期。简单的ES一般并不使用操作系统,只包含一些控制流程,但是随着嵌入式操作系统在复杂性上的增长,简单的流程控制就不能满足系统的要求,这是就必须考虑使用操作系统做系统软件。因此,嵌入式操作系统就应运而生。

随着EOS的广泛应用,业界已推出一些应用比较成功的EOS产品。归纳起来EOS应该具有以下几个特点:小巧、实时性、可装卸、固化代码、弱交互性、强稳定性和统一的接口。目前使用最多的EOS产品包括有:Vxwork、QNX、PalmOS、WindowsCE、pSOS、Hopen OS(国内凯思集团公司自主研制开发)等。其中,Vxwork使用最为广泛、市场占有率最高,其突出特点是实时性强(采用优先级抢占和轮转调度等机制),除此之外,其可靠性和可剪裁性也相当不错。QNX是一种伸缩性极佳的系统,其核心加上实时POSIX环境和一个完整的窗口系统还不到一兆。相比之下,Microsoft WinCE的核心体积庞大,实时性能也差强人意,但由于Windows系列友好的用户界面和为程序员所熟悉的API,并捆绑IE、Office等应用程序,正逐渐获得更大的市场份额。而与这些商业化的操作系统相比,Linux已经越来越受到人们的注意。

二、嵌入式Linux概述

Linux是一个成熟而稳定的网络操作系统。将Linux植入嵌入式设备具有众多的优点。首先,Linux的源代码是开放的,任何人都可以获取并修改,用之开发自己的产品。其次,Lirmx是可以定制的,其系统内核最小只有约134kB。一个带有中文系统和图形用户界面的核心程序也可以做到不足1MB,并且同样稳定。另外,它和多数Unix系统兼容,应用程序的开发和移植相当容易。同时,由于具有良好的可移植性,人们已成功使Linux运行于数百种硬件平台之上。

然而,Linux并非专门为实时性应用而设计,因此如果想在对实时性要求较高的嵌入式系统中运行Linux,就必须为之添加实时软件模块。这些模块运行的内核空间正是操作系统实现进程调度、中断处理和程序执行的部分,因此错误的代码可能会破坏操作系统,进而影响整个系统的可靠性和稳定性。Linux的众多优点还是使它在嵌入式领域获得了广泛的应用,并出现了数量可观的嵌入式Linux系统。其中有代表性的包括:uClinux、ETLinux、ThinLinux、LOAF等。ETLinux通常用于在小型工业计算机,尤其是PC/104模块。ThinLinux面向专用的照相机服务器、X-10控制器、MP3播放器和其它类似的嵌入式应用。LOAF是Linux On A Floppy的缩略语,它运行在386平台上。

三、Linux作为嵌入式操作系统的优势

Linux作为嵌入式操作系统的优势主要有以下几点:

1、 可应用于多种硬件平台。Linux已经被移植到多种硬件平台,这对于经费,时间受限制的研究与开发项目是很有吸引力的。原型可以在标准平台上开发后移植到具体的硬件上,加快了软件与硬件的开发过程。Linux采用一个统一的框架对硬件进行管理,从一个硬件平台到另一个硬件平台的改动与上层应用无关。Linux可以随意地配置,不需要任何的许可证或商家的合作关系,源代码可以免费得到。这使得采用Linux作为操作系统不会遇到任何关于版权的纠纷。毫无疑问,这会节省大量的开发费用。本身内置网络支持,而目前嵌入式系统对网络支持要求越来越高。Linux的高度模块化使添加部件非常容易。

2、 Linux是一个和Unix相似、以内核为基础的、具有完全的内存访问控制,支持大量硬件(包括X86,Alpha、ARM和Motorola等现有的大部分芯片)等特性的一种通用操作系统。其程序源码全部公开,任何人可以修改并在GUN通用公共许可证(GNU General Public License)下发行。这样,开发人员可以对操作系统进行定制,适应其特殊需要。

3、 Linux带有Unix用户熟悉的完善的开发工具,几乎所有的Unix系统的应用软件都已移植到了Linux上。Linux还提供了强大的网络功能,有多种可选择窗口管理器(X Windows)。其强大的语言编译器GCC,C++等也可以很容易得到,不但成熟完善,而且使用方便。

四、嵌入式Linux的建立

完整的嵌入式Linux解决方案应包括嵌入式Linux操作系统内核、运行环境、图形化界面和应用软件等。由于嵌入式设备的特殊要求,嵌入式Linux解决方案中的内核、环境、GUI等都与标准Linux有很大不同,其主要挑战是如何在狭小的FLASH、ROM和内存中实现高质量的任务实时调度、图形化显示、网络通信等功能。

1、 精简内核

Linux内核有自己的结构体系,其中进程管理、内存管理和文件系统是其最基本的3个子系统。图1简单表示了它的框架。用户进程可直接通过系统调用或者函数库来访问内核资源。正因为Linux内核具有这样的结构,因此修改内核时必须注意各个子系统之间的协调。

嵌入式Linux内核一般由标准Linux内核裁剪而来。用户可根据需求配置系统,剔除不需的服务功能、文件系统和设备驱动。经过裁剪、压缩后的系统内核一般只有300k左右,十分适合嵌入式设备。同标准Linux不同的是嵌入式Linux必须要实现从FLASH或ROM的启动。标准Linux启动代码实现了系统初始化和从软盘、硬盘O盘区引导内核。嵌入式Linux一般保存在FLASH或ROM中,标准LILO无法引导。在支持直接从FLASH设备引导的系统中,如华恒公司的uClinux,引导程序主要完成对硬件系统的初始化工作和操作系统的解压、移位工作。在不支持直接从FLASH引导的系统中,FLASH设备只能作为非引导磁盘使用。此时,可采用先从硬盘或软盘加载一个小操作系统,如嵌入式DOS,然后再执行"Loadlin"加载程序从FLASH引导嵌入式Linux。

对标准Linux的修改主要是虚拟内存和调度程序部分的改动。因为标准Linux系统使用虚拟内存管理的目的是为了能同时运行多个进程,但是这样每个待运行的进程所能分配的CPU时间片就受限制,资源的使用效率就低。这样对于实时性要求较高的嵌入式系统来说,实时任务往往要求CPU具有很高的突发处理能力,即在有些时候需要极高的处理效率,因此需要屏蔽内核的虚拟内存管理机制。对于无硬盘设备的嵌入式系统,不必采用虚存管理。强实时需求的嵌入式应用可以通过修改任务调度模块实现,主要是在内核和设备驱动程序中加入了许多切换点。在该点处,系统检测是否存在未处理的紧急中断,有则剥夺内核的运行,及时处理中断。实现实时性服务的一个较好的方法是在标准的Linux内核上增加一个实时内核,标准Linux内核作为一个任务运行于实时内核上,强实时性任务也直接运行在实时内核上,如RT-Linux等。

文件系统是嵌入式Linux操作系统必不可少的。但标准Linux支持大量的文件系统,因此除了满足系统的正常运行需要而保留一种外,其它的全部可以删除,利用原有的设置选项可以移除。一般嵌入式设备文件系统主要使用RamDisk技术和网络文件系统技术。RamDisk可驻留于Flash,运行时加载到内存中。

2、 精简运行环境

Linux通常的运行环境指用户运行任何应用的基础设施,主要包括函数库和基本命令集等。标准Linux系统同时向用户提供了静态和动态函数库。静态函数库在生成应用时直接链接到用户应用中。动态库在应用运行时才链接。由于嵌入式系统应用一般都是在开发平台上预先生成的,因此嵌入式系统只需向应用提供动态函数库。Linux应用运行所需的函数库主要有C库、数学库、线程库、加密库、网络通信库等。其中最基本的是c语言的运行库glib。这个库主要完成基本的输入输出,内存访问,文件处理。一个标准的glib库大约要1200kB存储空间,考虑到嵌入式Linux内核往往很小,这种运行库实在太大,我们做了一些精简的工作,方法有两种:(1)、使用静态连接的方法,完全不使用运行库动态连接;(2)、对这个库的函数进行精简。

在一个桌面系统上,使用动态连接可以带来许多好处。使用动态连接库,可以让应用程序跟函数库的更新、升级分离,便于维护,可以让同时运行的多个程序共享一段代码。但是,在嵌入式系统中,很少有多个程序并行的可能,程序的维护,尤其是库函数的维护更新是不常见的。这时,使用静态连接的优势就极为明显。因为静态连接可以只将库中用到的部分连接进程序。在应用程序较少(小于5)的情况下,静态连接可以达到较好的结果。为了便于将来扩充的需要,我们也采用第二种方法,针对我们的需要,对库函数的内容进行精简,只保留一些基本功能,还有一种方法是采用其它的C语言运行库。但是这些库对兼容性影响很大。

基本命令集同样是运行用户应用的基础,主要包括初始化进程init,终端获取getty、Shell和基本命令等。嵌入式系统的启动过程可能与标准Linux不同,例如跳过登录过程直接启动GUI等。这就要求修改init,getty等。标准Linux命令集同样由于体积问题无法直接应用于嵌入式环境。目前,小命令集的解决方法主要有集成方法和汇编方法两种。集成方法采用集成公共部分减少命令集整体体积,用C实现,有较好的平台移植性;汇编方法则采用汇编编程减少每个命令的体积.这样可使体积很小但其平台移植性较差。

3、 嵌入式Linux下的GUI

GUI在嵌入式系统或者实时系统中的地位越来越重要,比如PDA、DVD播放机、WAP手机等,都需要一个完整.漂亮的图形用户界面。这些系统对GUI的基本要求包括:(1)、轻型、占用资源少;(2)、高性能;(3)、高可靠性;(4)、可配置。这些也成为评价嵌入式系统的重要指标。目前,嵌入式Linux上的GUI主要有winCE、Micro Window、紧缩的X Window、MiniGUI(国内做得较好的自由软件之一)。标准Linux的Xfree86由于体积庞大,运行环境要求高,无法运行于嵌入式环境。嵌入式GUI主要通过削减功能,降低性能来实现体积小和占用资源少。目前嵌入式Linux上的GUI环境主要有两类:X类和win32类。X类GUI分为服务方和客户方两方。服务器方提供鼠标、键盘处理和显示功能,客户方是用户应用,服务方和客户方通过socket接口和X协议通信。采用该方式十分有利于远程网络图形化服务,客户方和服务方可通过网络实现X协议和图形显示。典型的X类GUI有Micro Window、紧缩的X Window等。win32类的GUI不存在客户方和服务方,每个任务都自成一体,任何任务间的切换、事件分发由专门的管理任务负责。如wiCE、MiniGUI就是类似于win32类的GUI。

五、当前流行的几种嵌入式Linux系统

除了智能数字终端领域以外,Linux在移动计算平台、智能工业控制、金融业终端系统,甚至军事领域都有着广泛的应用前景。这些Linux被统称为"嵌入式Linux"。

1、RT-Linux

这是由美国墨西哥理工学院开发的嵌入式Linux操作系统。到目前为止,RT-Linux已经成功地应用于航天飞机的空间数据采集、科学仪器测控和电影特技图像处理等广泛领域。RT-Linux开发者并没有针对实时操作系统的特性而重写Linux的内核,因为这样做的工作量非常大,而且要保证兼容性也非常困难。为此,RT-Linux提出了精巧的内核,并把标准的Linux核心作为实时核心的一个进程,同用户的实时进程一起调度。这样对Linux内核的改动非常小,并且充分利用了Linux下现有的丰富的软件资源。

2、uClinux

uCLinux是Lineo公司的主打产品,同时也是开放源码的嵌入式Linux的典范之作。uCLinux主要是针对目标处理器没有存储管理单元MMU(Memory Management Unit) 的嵌入式系统而设计的。它已经被成功地移植到了很多平台上。由于没有MMU,其多任务的实现需要一定技巧。uCLinux是一种优秀的嵌入式Linux版本,是micro-Conrol-Linux的缩写。它秉承了标准Linux的优良特性,经过各方面的小型化改造,形成了一个高度优化的、代码紧凑的嵌入式Linux。虽然它的体积很小,却仍然保留了Linux的大多数的优点:稳定、良好的移植性、优秀的网络功能、对各种文件系统完备的支持和标准丰富的API。它专为嵌入式系统做了许多小型化的工作,目前已支持多款CPU。其编译后目标文件可控制在几百KB数量级,并已经被成功地移植到很多平台上。

3、Embedix

Embedix是由嵌入式Linux行业主要厂商之一Luneo推出的,是根据嵌入式应用系统的特点重新设计的Linux发行版本。Embedix提供了超过25种的Linux系统服务,包括Web服务器等。系统需要最小8MB内存,3MB ROM或快速闪存。Embedix基于Linux 2.2内核,并已经成功地移植到了Intel x86和PowerPC处理器系列上。像其它的Linux版本一样,Embedix可以免费获得。Luneo还发布了另一个重要的软件产品,它可以让在Windows CE上运行的程序能够在Embedix上运行。Luneo还将计划推出Embedix的开发调试工具包、基于图形界面的浏览器等。可以说,Embedix是一种完整的嵌入式Linux解决方案。

4、Xlinux

XLinux是由美国网虎公司推出,主要开发者是陈盈豪。他在加盟网虎几个月后便开发出了基于XLinux的、号称是世界上最小的嵌入式Linux系统,内核只有143KB,而且还在不断减小。XLinux核心采用了"超字符集"专利技术,让Linux核心不仅可能与标准字符集相容,还含盖了1 2个国家和地区的字符集。因此,XLinux在推广Linux的国际应用方面有独特的优势。

5、PoketLinux

由Agenda公司采用、作为其新产品"VR3PDA"的嵌入式Linux操作系统。它可以提供跨操作系统构造统一的、标准化的和开放的信息通信基础结构,在此结构上实现端到端方案的完整平台。PoketLinux资源框架开放,使普通的软件结构可以为所有用户提供一致的服务。PoketLinux平台使用户的视线从设备、平台和网络上移开,由此引发了信息技术新时代的产生。在PoketLinux中,称之为用户化信息交换(CIE),也就是提供和访问为每个用户需求而定制的"主题"信息的能力,而不管正在使用的设备是什么。

6、MidoriLinux

由Transmeta公司推出的MidoriLinux操作系统代码开放,在GUN普通公共许可(GPL)下发布,可以在http://midori.transmeta.com上立即获得。该公司有个名为"MidoriLinux计划"。"MidoriLinux"这个名字来源于日本的"绿色"---Midori,用来反映其Linux操作系统的环保外观。

7、红旗嵌入式Linux

由北京中科院红旗软件公司推出的嵌入式Linux是国内做得较好的一款嵌入式操作系统。目前,中科院计算所自行开发的开放源码的嵌入式操作系统---Easy Embedded OS(EEOS)也已经开始进入实用阶段了。该款嵌入式操作系统重点支持p-Java。系统目标一方面是小型化,另一方面能重用Linux的驱动和其它模块。由于有中科院计算所的强大科研力量做后盾,EEOS有望发展成为功能完善、稳定、可靠的国产嵌入式操作系统平台。

六、结束语

由于Linux是一个内核源代码开放、具备一整套工具链、有强大的网络支持及成本低廉的操作系统,因此嵌入式Linux自诞生起就秉承了这众多独特优势,这使它正在并越来越多地受到人们的关注。据Even Data数据显示,期望使用嵌入式Linux的用户从2001年的11%增到2002年27%,而同期Vxwork只是从16%到18%,Win CE从9%到14%。另外,在嵌入式Linux的各种应用市场中,通信(语音和数据)名列第一,2000年的销售额是1300万美元,而2005年预计将达到1.26亿美元,可以预见,嵌入式Linux将在未来的通信用嵌入式操作系统中占据强有力的地位

Linux是目前十分火爆的操作系统。它是由芬兰赫尔辛基大学的一个大学生Linus B. Torvolds在1991年首次编写的。标志性图标是一个可爱的小企鹅。

Linux是一种类Unix系统,Linus当时编写它的目的是为了替代一种名叫Minix的操作系统。Minix是由一个名叫Andrew Tannebaum的计算机教授编写的,当时由于Unix是一个商业软件,其源代码是不能拿来进行教学的,Andrew教授就自己编写了一个系统用于教学。最

初的Minix用一张软盘就能装下,麻雀虽小、五脏俱全,Minix具有一般操作系统的特征,它同时兼容Unix系统。

Linux是一个免费的操作系统,用户可以免费获得其源代码,并能够随意修改。它是在共用许可证GPL(General Public License)保护下的自由软件,也有好几种版本,如Red Hat Linux、Slackware,以及国内的Xteam Linux等。

Linux具有许多Unix系统的功能和特点,能够兼容Unix,但无需支付Unix高额的费用。比如一个Unix程序员在单位可以在Unix系统上进行工作,回到家里在Linux系统上也能完成同样的工作,而不必重新购买Unix。要知道Unix的价格比常见的Windows要高出若干倍,和Linux的低廉更是相距甚远。

Linux的应用也十分广泛。Sony最新的PS2游戏机就采用了Linux作为系统软件,使PS2摇身一变,成为了一台Linux工作站。着名的电影《泰坦尼克号》的数字技术合成工作就是利用100多台Linux服务器来完成的。

2001年8月17日,Linux发布了最新的Linux 2.4.9版,它也已经十岁了。

Linux的优点

Linux的流行是因为它具有许多诱人之处。

1、完全免费

Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变。这让Linux吸收了无数程序员的精华,不断壮大。

2、完全兼容POSIX 1.0标准

这使得可以在Linux下通过相应的模拟器运行常见的DOS、Windows的程序。这为用户从Windows转到Linux奠定了基础。许多用户在考虑使用Linux时,就想到以前在Windows下常见的程序是否能正常运行,这一点就消除了他们的疑虑。

3、多用户、多任务

Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。

4、良好的界面

Linux同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行操作。它同时也提供了类似Windows图形界面的X-Windows系统,用户可以使用鼠标对其进行操作。在X-Windows环境中就和在Windows中相似,可以说是一个Linux版的Windows。

5、丰富的网络功能

互联网是在Unix的基础上繁荣起来的,Linux的网络功能当然不会逊色。它的网络功能和其内核紧密相连,在这方面Linux要优于其他操作系统。在Linux中,用户可以轻松实现网页浏览、文件传输、远程登陆等网络工作。并且可以作为服务器提供WWW、FTP、E-Mail等服务。

6、可靠的安全、稳定性能

Linux采取了许多安全技术措施,其中有对读、写进行权限控制、审计跟踪、核心授权等技术,这些都为安全提供了保障。Linux由于需要应用到网络服务器,这对稳定性也有比较高的要求,实际上Linux在这方面也十分出色。

7、支持多种平台

Linux可以运行在多种硬件平台上,如具有x86、680x0、SPARC、Alpha等处理器的平台。此外Linux还是一种嵌入式操作系统,可以运行在掌上电脑、机顶盒或游戏机上。2001年1月份发布的Linux 2.4版内核已经能够完全支持Intel 64位芯片架构。同时Linux也支持多处理器技术。多个处理器同时工作,使系统性能大大提高。

Linux的不足

由于在现在的个人电脑操作系统行业中,微软的Windows系统仍然占有大部分的份额,绝大多数的软件公司都支持Windows。这使得Windows上的应用软件应有尽有,而其他的操作系统就要少一些。许多用户在换操作系统的时候都会考虑以前的软件能否继续使用,换了操作系统后是否会不方便。虽然Linux具有DOS、Windows模拟器,可以运行一些Windows程序,但Windows系统极其复杂,模拟器所模拟的运行环境不可能完全与真实的Windows环境一模一样,这就使得一些软件无法正常运行。

许多硬件设备面对Linux的驱动程序也不足,不少硬件厂商是在推出Windows版本的驱动程序后才编写Linux版的。但一些大硬件厂商在这方面做得还不错,他们的Linux版驱动程序一般都推出得比较及时。

软件支持的不足是Linux最大的缺憾,但随着Linux的发展,越来越多的软件厂商会支持Linux,它应用的范围也越来越广。这只小企鹅的前景是十分光明的。

回答者: 280258962 - 助理 三级 12-15 09:44

Linux系统介绍

--------------------------------------------------------------------------------

简单地说,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具有Unix的优点:稳定、可靠、安全,有强大的网络功能。在相关软件的支持下,可实现WWW、FTP、DNS、DHCP、E-mail等服务,还可作为路由器使用,利用ipchains/iptables可构建NAT及功能全面的防火墙。

Linux有很多发行版本,较流行的有:RedHat Linux、Debian Linux、RedFlag Linux等。

RedHat Linux,支持Intel,Alpha和SPARC平台,具有丰富的软件包。可以说,RedHat Linux是Linux世界中非常容易使用的版本,它**作简单,配置快捷,独有的RPM模块功能使得软件的安装非常方便。

Debian Linux基于标准LINUX内核,包含了数百软件包,如GNU软件,TeX,X Windows系统等。每一个软件包均为独立的模块单元,不依赖于任何特定的系统版本,每个人都能创建自己的软件包。Debian Linux是一套非商业化的由众多志愿者共同努力而成的LINUX.

RedFlag Linux(红旗Linux)是Linux的一个发展产品,由中科红旗软件技术有限公司开发研制的以 Intel和Alpha芯片为CPU构成的服务器平台上第一个国产的**作系统版本。它标志着我国在发展国产**作系统的道路上迈出了坚实的一步。 相对于Windows**作系统及Unix**作系统来讲,Linux凭借其开放性及低成本,已 经在服务器**作系统市场获得了巨大发展。但由于其**作界面复杂,一时难以让普通 PC用户接受。GNOME是GNU组织中专门开发桌面环境的项目。GNOME作为开放源代码的 软件开发成果,基于兼容性良好的CORBA技术,与Linux系统相辅相成,带给用户更加 友好的界面,更多的使用、检查、修改及分发自由。与同是开放源代码图形用户界面 的KDE相比较,GNOME表现得更能减轻其他公司创建Linux桌面应用的劳动。GNOME已经 成为业内人士普遍看好的一个趋势性软件。继服务器版1.0、桌面版2.0、嵌入式Linux之后,红旗最近又推出了新产品--红 旗服务器2.0和红旗网络商务通等多种发行版本和相 21765希望对你有帮助!

⑵ uClinux编译在建立环境时遇到的问题,make menuconfig命令出错

缺少Ncurses库,这个库好象是在终端窗口下显示图形的库
你试着去找一下相应的包安装一下或者找相应的源代码然后编译一下
当然如果你选择去找源代码编译,那就参考一下代码数下面的文档,看看如何编译,安装以及这个库的依赖情况等

⑶ Uclinux是什么意思 全称是什么

uclinux表示micro-control linux.即微控制器领域中的Linux系统,是Lineo公司的主打产品,同时也是开放源码的嵌入式Linux的典范之作。uCLinux主要是针对目标处理器没有存储管理单元MMU(Memory
Management Unit)的嵌入式系统而设计的。它已经被成功地移植到了很多平台上。由于没有MMU,其多任务的实现需要一定技巧。
Linux是一种很受欢迎的操作系统,它与UNIX系统兼容,开放源代码。它原本被设计为桌面系统,现在广泛应用于服务器领域。而更大的影响在于它正逐渐的应用于嵌入式设备。uClinux正是在这种氛围下产生的。在uClinux这个英文单词中u表示Micro,小的意思,C表示Control,控制的意思,所以uClinux就是Micro-Control-Linux,字面上的理解就是"针对微控制领域而设计的Linux系统"。

⑷ arm-linux-gcc 和 arm-elf-gcc 的区别

在基于ARM的嵌入式系统开发中,常常用到交叉编译的GCC工具链有两种:
arm-linux-*和 arm-elf-*,两者区别主要在于使用不同的C库文件。arm-linux-*使用
GNU的Glibc,而arm-elf-*一般使用 uClibc/uC-libc或者使用REDHAT专门为嵌入式系统
的开发的C库newlib.Glibc。uClibc/uC-libc以及 newlib都是C语言库文件,只是所应
用的领域不同而已,Glibc是针对PC开发的,uClibc/uC-libc是与Glibc API兼容的小型
化C语言库,实现了Glibc部分功能。

关于uClibc/uC-libc的说明,详见如下:

There are two libc libraries commonly used with uClinux. uC-libc and
uClibc. They are quite different despite their similar names. Here is a
quick overview of how they are different.

uC-libc is the original library for uClinux. It was based on sources
from the Linux-8086 C library which was part of the ELKs project with m68000
support added by Jeff Dionne and Kenneth Albanowski. It is a fairly complete
libc implementation, however, some of the API's are a little non-standard
and quite a few common libc routines are not present. Currently it has
stable support for m68000, ColdFire and ARM (Non-MMU) architectures. It was
primary design goal is to be small and light weight. It does try to conform
to any standards, although its API tries to be compatible with most libcs,
it is not always exactly the same.

The uClinux distribution provides an environment that can compile using
either uC-libc or uClibc depending on your needs. For m68000 and Coldfire
platforms it is generally better to chose uC-libc as it supports shared
libraries and is the most commonly used libc for these CPUs. uClibc also
works quite well with almost all platforms supported by the distribution.
Which libc you choose to use will be decided by your requirements

uClinux有两个经常使用的libc库:uC-libc和uClibc。虽然两者名字很相似,其实有差
别,下面就简单的介绍一下二者的不同之处。uC -libc是最早为uClinux开发的库,是
Jeff Dionne和Kenneth Albanowski为在EKLs项目中支持m68000在Linux-8086 C库源码
上移植的。uC-libc是一个完全的libc实现,但其中有一些api是非标准的,有些libc的
标准也没有实现。uC-libc稳定地支持 m68000,ColdFire和没有MMU的ARM。其主要设计
目标是“小”、"轻",并尽量与标准一致,虽然它的API和很多libc兼容,但是似乎并
不像它期望的那样和所有标准一致。

uClibc就是为了解决这个问题从uC-libc中发展出来的。它的所有API都是标准的(正确
的返回类型,参数等等),它弥补了uC-libc中没有实现的libc标准,现在已经被移植到
多种架构中。一般来讲,它尽量兼容glibc以便使应用程序用uClibc改写变的容易。
uClibc能够在标准的 VM linux和uClinux上面使用。为了应用程序的简洁,它甚至可以
在许多支持MMU的平台上被编译成共享库。Erik Anderson在uClibc背后做了很多的工
作。uClibc支持许多系列的处理器:m68000,Coldfire,ARM,MIPS,v850, x86,
i960,Sparc,SuperH,Alpha,PowerPC和Hitachi 8。不断增加的平台支持显示uClibc
能够很容易的适应新的架构。uClinux发行版提供了环境能够让你选择使用uC-libc或是
uClibc编译。对于m68000和Coldfire平台来说,选择uC-libc还是稍微好一点,因为它
支持共享库,而共享库是这些cpu经常使用的 libc.uClibc也几乎和所有的平台都能很
好的工作。选择哪种libc取决于你的需求。

newlib 是一个用于嵌入式系统的开放源代码的C语言程序库,由libc和libm两个库组
成,特点是轻量级,速度快,可移植到很多CPU结构上。newlib实现了许多复杂的功
能,包括字符串支持,浮点运算,内存分配(如malloc)和I/O流函数(printf,fprinf()
等等)。其中libc提供了c 语言库的实现,而libm提供了浮点运算支持。

在为ARM交叉编译gcc编译器时,对gcc指定不同的配置选项时,使用的C语言库就不同,
gcc编译器默认使用Glibc,也可以使用 uClibc/uC-libc(基本兼容Glibc API),当使用
--with-newlib时,gcc编译器不使用Glibc。当没有交叉编译Glibc时,可以使用
--with-newlib禁止连接Glibc而编译bootstrap gcc编译器。从gcc源目录下的
config/arm中的t-linux和t-arm-elf中可以看出,不同的--target也影响gcc连接C语言
库,t-linux(--target=arm-linux)默认使用Glibc,-arm-elf(--target=arm-elf)使用
- Dinhibit_libc禁止连接Glibc,这时我们就可以使用newlib等其他C语言库编译GCC工
具链。

虽然GCC工具链配置了不同的的C语言库,但由于这些C语言库都可以用来支持GCC,它们
对核心数据的处理上不存在较大出入。因而arm-linux-* 和 arm-elf-*区别主要表现在
C语言库的实现上,例如不同系统调用,不同的函数集实现,不同的ABI\启动代码以及
不同系统特性等微小的差别。

arm-linux-*和 arm-elf-*的使用没有一个绝对的标准,排除不同库实现的差异,gcc可
以编译任何系统。arm-linux-*和 arm-elf-*都可以用来编译裸机程序和操作系统,只
是在遵循下面的描述时系统程序显得更加协调:

arm-linux-*针对运行linux的ARM机器,其依赖于指定的C语言库Glibc,因为同样使用
Glibc的linux而使得arm-linux-*在运行linux的ARM机器上编译显得更加和谐。

arm-elf-*则是一个独立的编译体系,不依赖于指定的C语言库Glibc,可以使用newlib
等其他C语言库,不要求操作系统支持,当其使用为嵌入式系统而设计的一些轻巧的C语
言库时编译裸机程序(没有linux等大型操作系统的程序),如监控程序,bootloader等

能使得系统程序更加小巧快捷。

Linaro prebuilt toolchain does support both hard and soft floating
point. You can get it from https://launchpad.net/linaro-toolchain-binaries/+milestone/2012.08 try: ./arm-linux-gnueabihf-gcc -print-multi-lib

The default configure is --with-arch=armv7-a --with-tune=cortex-a9
--with-fpu=vfpv3-d16 --with-float=hard --with-mode=thumb

To use soft floating, you need options: -marm -march=armv4t -mfloat-abi=soft.

In your case, please try to change -march=armv5 to "-march=armv4t"

If you want to change to configure to cortex-a8 and armv5. You need
* Change cortex-a9 to cortex-a8 in
samples/linaro-arm-linux-gnueabihf/crosstool.config
* Change armv4t to armv5 in
contrib/linaro/patches/gcc/linaro-4.7-2012.08/multilib.patch,

Then follow the instructions to rebuild the toolchain
(contrib/linaro/doc/README.txt)

BTW: crosstool-ng-linaro does not support multilib for eglibc. It uses
the prebuilt sysroot from Ubuntu Precise. If it does not work for you,
please use the latest crosstool-ng from http://crosstool-ng.org/.

⑸ 关于LINUX的优势重要性已自然的从各种渠道耳濡目染,想学习它。请朋友指点怎样学习怎样展开

1.抓住51开发ARM

这几个月来我一直都爬在51的问题,自己都有一点笑自己了,用了4个月的时间,来巩固51的原理和程序,还好我自己算是走过来了,自己笨,身边的高才生又看不上51的原理,他们都比较“牛”,说51过时了,你问那个做什么???我比较郁闷!过时吗?我有一点怀疑?

他们不愿意说有他们自己的理由,没有人强求,靠自己好了。

我自己个人的观点:51是一个基础,而且还很重要,这是再我看了ARM之后感觉到的。它可以加速你的ARM学习速度,真得!不相信你试一试好了。

凡是要求一个速度、效率,不要做一些无用功,抓紧身边的每一个一分钟,人是活的,东西(知识、书)是得,想要做的事情因此就简单了。

2.我在网上看到了一篇很不错的ARM文章,粘贴过来,为了和像我一样在很少有人帮助的情况下,自学ARM 的难兄难弟们。

“ARM怎么入门”。我不是高手,仍然是菜鸟。

但是回想起自己当时的迷茫,特意写了这篇东西,当作给和我一样的兄弟姐妹的帮助吧。问这个问题的人多半不是已经工作的工程师,而是和我一样是学生,所以这篇笔记就把看家当成我一样的菜鸟,高手勿怪。

首先声明:本人还没有找工作,事实上处于研究生刚毕业,还没开始找工作的空闲时间,44B0只是兴趣所在,打发时间。

所有看法完全是自己的感受,不代表任何他人。错了的观点各位帮我纠正。再次补充:很多朋友看了上面的话就问我为什么研究生毕业了还不找工作:)说是打发时间,其实是因为研究生的时候带了一个项目,申请提前毕业以后项目还有块尾巴,答应导师把项目做完再走:)就这么简单。男人总点负点责,呵呵

以下问题常被问到,我就想到哪说到哪吧。

一 首先说说ARM的发展

可以用一片大好来形容,翻开各个公司的网站,招聘里面嵌入式占据了大半工程师职位。

广义的嵌入式无非几种:传统的什么51、AVR、PIC称做嵌入式微控制器;ARM是嵌入式微处理器;DSP;FPGA。

客观的讲,工作需求量上DSP的需求比ARM要多,而ARM和FPGA差不多。

DSP因为数字处理与通信领域的空前发展而火暴,小到MP3 射象头,大到我们军品里的控制器,应用面很广。

FPGA的兄弟一般做ANSIC(特殊芯片设计,好象是这么翻译的)。而ARM单纯说来并不比一个单片机强多少,但是它的独特就在于不断下降的价格和提升的性能。这完全依靠于ARM公司的战略,厉害!!很佩服他们的战略眼光!!

值得注意的是:在找工作中,企业(着名的,小的不算)对单纯的ARM硬件开发工程师并不比单片机重视,很少有大企业的职位里写“从事过ARM开发优先”。写的多的是什么?“嵌入式LINUX”到这相信大家看出来了吧,需要的是硬件中的软件。

二 ARM是硬件还是软件

很难说,ARM是硬件,LINUX是软件。ARM的硬件多半已经模块化了,像我这样把板子改成这样的就算动的多的了,这同样是ARM公司的战略,再次佩服。

实际中的LINUX的开发工作更多,更耗时。从这方面说ARM应该算是软件了。

在找工作中更是这样,举个例子,联想里和ARM最接近的是“BIOS工程师”是软件,MOTO里接近的是嵌入式LINUX工程师是软件。而其他很多公司把嵌入式产品开发归为硬件。所以,不要讨论这个,好好玩转自己的板子才是关键。实在不爽你就把自己叫“嵌入式开发工程师”

三 要不要买开发板 买哪家

我的答案是“在你个人的学习方法”,但是如果看家是需要看这骗笔记的水平,个人推荐还是买现成的。

1 买

买板子可以把注意力集中在软件开发上,软件开发(尤其是驱动)可以不必担心自己硬件上的问题,我就是以便调试一边写驱动和程序,每次写驱动前就要先确认硬件没问题。另外,买板子更省钱和时间,我自己做的板子,原理图PCB花了2周以上!制版又15天,回来以后焊接44B0 160个脚!那叫一个麻烦 ~~花了多少钱呢?2层板,制版费就300块!当然 我把接口都外引了,还做了个20X18的LCD背板,板子比较大。总体下来 元件+LCD屏+PCB =11XX块!够2410的了。

再有就是买的资料相对来说比较全,但是不要指望有技术支持!都是骗人的,卖你之后就不会理你。

2 做

自己做可以更了解底层硬件,可以按照自己的要求加东西,比如我就加了GPS模块、 GPRS模块 、SD卡模块,扩了个IIC的35个键子的键盘、把LCD接口按照买的LCD改装了,可以用FPC线直接连接。做的很爽的。玩一把吗。

当然,你可以有策略的做,比如像我一样,把RAM和ROM,网络都保持和某现成的板子一样,这样他们的资料你就可以拿过来直接用,给自己留个退路。其他的如SD了 什么的自己做。都达到了~~就是费钱,费时间。

再有就是给做的朋友几点建议:尽量拿到现成的板子,尽量多搜集其他板子的全套资料,一定要拿到一张没问题的原理图。

网上流传的原理图多数是龚俊03年画的,再这里对龚俊表达一下我的敬意!!牛人!

但是那个图有个小BUG,我指的是03版的,后来的没这问题了。8019那地址线和地址有问题。还有人仿照他的PDF图画的SCH,更是漏洞百出!谴责!顺便谴责把龚俊板子偷卖的人。

3 买哪家

个人感觉分3类吧

1)首先是ZLG的,资料非常的全,感觉他是真正想教你怎么开发ARM,而不是像有的公司自己技术都没做好就做个板子出来卖钱。但是最大的不利就是价格太贵!而且主要是PHILIP的,货源比较麻烦~~可能有人说21XX系列的不贵啊,那是总线不外扩的,只能跑UCOS,不能跑UCLINUX。但是说是话,21XX系列才是ARM7的价格性能结合点。ARM7最适合做工业控制,ARM普及,销量都是怎么来的?都是ARM7来的,而44B0是典型的商业片子。但是,这里如果你看中的是为工作做准备,还是选能跑UCLINUX的吧。

但是仍然作为第一个推荐,因为菜鸟时期,合适的资料太重要了!!在这里被ZLG的务实精神感动!你看人家那代码写的。

2)感觉立宇泰的44B0不错

硬件没别的,就是资料比较全的说,不像有些家,原理图直接拿人家的,还错的~~

3)找个最便宜的

好象最便宜的有卖350的吧?也是没别的,就是即省了钱 还省时间搜集资料,至于资料全不全,别计较了~~硬件肯定好使就行吧。

四 要不要有51 AVR等单片机基础

有更好,但没有也无所谓。

两个月以前,我只是看别人做,耳濡目染~~,本科学过单片机,从来没做过。我们这的技术主干做AVR和51,我就跟他们调过C语言程序。你看出来了?我是个不折不扣的菜鸟吧?

但是做这个之前我特意找了ZLG的两本书,看了里面的例子和原理图,这很重要。例程里有汇编有C,都看懂了就OK,不用自己现写

五 开发都需要学习哪些软件

总结起来最主要的有以下几个吧

1 ADS调试用

确切的说是ADS+AXD。ADS里包含AXD。原来都用SDT后来ARM公司停止对SDT支持了,改支持ADS了,还是用ADS吧。

有的人的程序发布的仍然是SDT版本的,但基本都可以找到相应ADS的,新人在这里不要发蒙。ADS是编译器,AXD是调试器。便宜成AXF以后再在ARM的RAM里调试。

2 PLASHPGM

FLASH烧写的软件。AXD在RAM里调试,掉电就没有了,方便程序修改。调试好的程序再下到FLASH里,上电直接运行。

同类的软件还有很多,什么FLUTED了、FLSHP了都是,但FLASHPGM最好,要是有人还问FLASH不支持BIN格式文件的问题就要看我写的PLASHPGM使用了。

3 BANYANT调试代理(不知道名对不,起这么个难记的,我一般都叫它“半羊”因为知道它那几天刚吃了烤羊)

调试代理就是用它帮你使用更简单的JTAG(便宜啊)来实现原本1K才卖的JTAG仿真器的大部分功能。JTAG调试原理看我另一篇笔记。简单的就可以把他理解为你自己做的JTAG的驱动就行了。

调试代理还有很多种,什么H-JTAG了、ARM7了(不知道具体叫什么,就记得可执行文件叫ARM7.EXE)都是,BANYANT比较好。

需要注意的是,没种调试代理安装方法虽然都简单 但都不一样,需要看说明。而且AXD调试之前都要运行。省钱了,就别怕麻烦了。

4 ARM-ELF-TOOLS工具链

里面是UCLINUX开发用的工具比如ARM-ELF-GCC只类的。工具链就是把很多工具打包在一起发布的方便你开发的东西。具体安装方法看我另一篇笔记。

另外如果你开发LINUX就要用ARM-LINUX-TOOLS,不一样,不通用。

5 U-BOOT

大名鼎鼎的BOOTLOADER生成工具,同类的好象还有VIVI(名字很暧昧~~)

生成的BOOTLOADER烧到FLASH里,然后就可以用BOOTLOADER下载 烧写其他了

有了BOOTLOADER才能下UCLINUX。BOOTLOADER就像电脑上的BIOS。当然UCOS的不用这个,用什么我不知道:)

最新版本是1.1.4 具体使用方法看我另一篇笔记吧。

6 UCLINUX包

UCLINUX的源码包,不用多说了吧?建议大家用现成的先体会一下,然后再自己编译,裁剪。因为单独UCLINUX的编辑技术上比较简单,但涉及的方面还是比较广的。

7 VMWARE

老牌的虚拟机软件,在一个机器上虚拟出一个机器装LINUX(PC上用的),省得你来回开关机了。记得装VMWARE-TOOLS,安装方法在我另一篇笔记里。

六 有哪些书推荐

主要推荐ZLG的三本书,有这3本再加网络就不用别的书了,其中主要推荐前2本,3是介绍体系结构的,也不错

1 ARM嵌入式LINUX系统构建与驱动开发,北航版

驱动写的很详细,前期开发介绍也很好

2 ARM 嵌入式系统实验教程(二),北航版

有ZLG2200的原理图,实验程序和注释,了解人家是怎么开发的。

3 ARM嵌入式系统基础教程

最重要的是体系结构,汇编部分介绍,看看吧,增加理论素质。

4 44B0数据手册

写在这里是强调它的重要。

不推荐ZLG早期出的红色皮的ARM什么体系结构~只类的

写的太多,看烦了。

其他的书没了几本,没看见好的,大家有看过的推荐吧。

七 选UCOS?UCLINUX?LINUX?VXWORKS?还是当单片机用

1 搞开发,工程设计,用UCOS,小巧,多进程,简单,体现了ARM7的精髓。

2 LINUX 正根的嵌入式系统,LINUX消费与通信领域用的比较多,但缺点是必须ARM9才能跑,ARM9的板子自己做就不行了,6层板太贵。买开发板1K达底吧。但是还是推荐选ARM9+LINUX

3 UCLINUX 算投机嵌入式系统:)ARM7上可以跑,由有LINUX近亲,学好好可以比较方便的转向LINUX,像我一样的穷鬼用吧,呵呵

4 VXWORKS

学好后可以找到高薪工作,但工作机会本身并不比LINUX好找。

5 当单片机用

不推荐,虽然我景仰的ZLG一直号召这么干。因为对于学习来说多进程的系统设计才是ARM7的玩头,至少你也要整个UCOS啊:)

有朋友问我先学这个当基础不行吗?那当然可以~~但我当时就用了1周搞定,就是我先的ADS在RAM中调试的笔记。后来我清空FLASH用的小段程序还是当时写的LED闪烁程序呢。另外1周里其中还因为自己过于菜,没把OM设置好导致晶阵不阵

哈哈。这个是必须做的,但一带而过。目标放的远一点。

八 学习要用多长时间

我从菜鸟到现在两个多月,中间被打扰数次。仍然搞定了PCB设计与制版,RAM调试,FLASH下载,UBOOT移植和下载UCLINUX(没剪裁,用现成的),LCD驱动。

再次坦诚的说:我确实比较菜,说这些不是让大家羡慕,只是告诉你们“你们应该比这个更好”

我相信良好的态度+合适的方法+及时的总结=成绩

九 ARM都玩什么

就几点

1 硬件设计

2 系统移植

3 驱动开发

4 应用开发

没了。其中推荐把注意力放在后两个上,3有难度,4比较灵活,最重要的是都是找工作的砝码。

十 我用的什么板子

很多人问我这个问题,我特意写过一个的。再说一次吧。

我是自己做的,RAM、ROM、8019等比较麻烦而当时的自己不理解的都按照龚俊的做的。保持其他不便的情况下做了如下改动。

1 加了串口通信的GPS模块、 GPRS模块

一个UART0,一个UART1,当与要用超级终端时用跳线切换。

2 SD卡,和7843触摸屏

同时挂在SPI总线上,因为SPI只能挂一个设备,同时还做了I/O模拟的准备,把两个设备又通过跳线挂在4个IO上。

3 扩了个IIC的35个键子的键盘

用的ZLG的7290,不占用CPU,最大支持64个键子,只上了35个,其他留接口。

4 把LCD接口按照买的LCD改装了,可以用FPC线直接连接。

所以改动虽然多,但真正很移植了,初期调试有关的并没动,就是为了现在不那么菜的时候做准备:)

十一 开发流程

这里是我的开发流程

1 设计原理图(含WIGGLER的JTAG访真器)

2 设计PCB(含WIGGLER的JTAG访真器)

3 制版

4 焊接电压,确定电压没问题

5 焊接44B0+JTAG电路+WIGGLER的JTAG访真器+周边电路,用BANYANT+仿真器连接,BANYANT提示错误,但可以显示44B0编号,好象是0X0F0F0F0F只类的,说明44B0没问题

6 焊接晶体+RAM+ROM+周边电路,用BANYANT+仿真器连接,可以显示正确的44B0了

7 用BANYANT+仿真器连接,开AXD,在命令行窗口操作RAM,看可不可以修改,可以的话(用内存窗口看RAM地址)RAM就没问题

可以用这个命令“setmem 0xc000000,0xffffffff,32”

我的RAM挂在BANK6上 所以地址是0XC000000,你要是改了就也得改。

8 用我写的《自己写了个C工程模板又写了个使用说明 》里的方法调试程序吧,写个简单的,我当时写个LED闪烁的。看好使不。

9 把程序按照《FLASH烧写总结 》里的烧到FLASH里,测试一下

10 按照《UBOOT 移植操作》移植UBOOT

11 按照《UCLINUX下载简单说明》下个UCLINUX

12 看看驱动开发的方法,自己写个驱动看看

13 还有很多事东西着你玩 呵呵

十二 关于JTAG访真器

JTAG访真器现在用的多是简板的,一个244那种,用的没什么不好。

按照并口定义不同分几种,建议选WIFFLER定义的,因为支持的软件多。这个网上多的是,不多说了。

值得提的是有的JTAG访真器原理图上有跳线用来使能复位信号,这个一般不跳上。就是不用复位信号,因为JTAG协议里本身也可以控制44B0复位。

当然,板子上的复位信号跳线也不用跳。

十三 哪个公司的ARM

这个是问题比较简单。

1 ARM7主要就几个公司的

三星,PHILIP,ATMEL的

ATMEL的有比较便宜的AT91SAM7S32 和AT91SAM7S64 专为8位应用产品量身定做,价格很便宜好象《3刀吧。和PHILIP的21XX差不多,资料太少,项目中选还不错。

其他两家上面说了的不多说了吧

2 ARM9

这个玩2410和2440的多吧,现在2440还比较火啊 可以考虑买个了

但是2410就比较便宜了,作为学习来说反到和不错,推荐整一个:)

其实ARM9用的最多的领域应该是消费电子,比如手机PDA,而这上面用的多的应该是INTEL的和TI的吧。
但是INTEL的TI的入门材料少,价格高,自己看情况定吧。

⑹ 系统类型

Windows 开发商 Microsoft

Windows98/me

Windows2000/XP

Windows Server2003

Windows Vista

Windows98/me是基于MS-DOS的混合的16/32位操作系统正慢慢的退出PC舞台了,2000/XP以及Server2003都是基于WindowsNT的32位操作系统,XP/Server2003已经有64位版本了。Vista是微软最新开发的版本预计在2006年推出。主要支持Intel,AMD,后来增加了对PowerPC,MIPS的支持。微软的操作系统基本上统治了个人PC市场,大概占了90%的市场份额。

UNIX-like

AIX 开发商 IBM

AIX是Advanced Interactive eXecutive的简称,它是IBM 公司的UNIX操作系统,整个系统的设计从网络、主机硬件系统,到操作系统完全遵守开放系统的原则.

RS/6000 采用IBM 的UNIX操作系统-AIX作为其操作系统.这是一个目前操作系统界最成功,应用领域最广,最开放的第二代的UNIX系统。它特别适合于做关键数据处理(CRITICAL).

支持PowerPC POWER处理器.

目前的版本是AIX 5L 5.3,

支持64棵处理器,2TB内存,16TB JFS2文件系统,16TB JFS2文件.

HP-UX 开发商 HP

惠普公司在1996年随着推出64位PA-8000处理器,开始了64位技术的实施计划,它形成了工业界运算最快的商业和工程技术应用服务器的基础。为了与先进的硬件配套,惠普公司已经逐步地把64位功能放入惠普公司在工业界领先的UNIX操作系统HP-UX。HP-UX 10.10和10.20分别具有非常大的文件系统和文件。

HP-UX 11.00也有32位版本,使得基于32位PA-7X00系统也可以得到HP-UX 11.00的新功能和特色;基于PA-8X00的K系列和T系列系统的客户要在HP-UX的32位或64位版本之间做出选择。惠普公司单机系统性能在工业界领先(39,469TPMS)的V系列系统,只可以运行64位的HP-UX 11.00。

主要运行于HP公司的PA-系列处理器以及Intel的安腾系列处理器上.

最新的版本HP-UX 11i v2.

可以管理128棵处理器,1TB内存,32TB文件系统,最大2TB的文件。

IRIX 开发商 SGI

SGI公司最早是专门生产图形显示终端的, OpenGL标准便是由SGI提出来的.公司开发的这个操作系统是主要运行在基于MIPS处理器的图形工作站上,1992年SGI收购了MIPS, 1998年MIPS又脱离了SGI成立MIPS技术公司.2003年SGI推出了基于Linux的Altix系列操作系统.

Mac OS X 开发商 Apple

Apple公司的Macintosh机上的操作系统, 苹果机主要用于图形领域,在图形处理领域占有很大市场份额。Mac OS是首个在商用领域成功的图形用户界操作系统。Mac OS9及以前的版本都在搭在苹果机上销售的。它不支持其它设备,每当有新的设备时都要通过添加扩展来支持设备。新的Mac OS X结合BSDUnix、NeXTStep和Mac OS 9的元素。采用Unix风格的内存管理和抢占式多任务处理,它的最底层建基于BSDUnix的内核,实行的是部分开放源代码。

现行的最新的系统版本是Mac OS X v10.4.2。

只能运行在PowerPC G3以上处理器的苹果机上,苹果公司正在跟Intel合作,表示以后苹果机会采用x86处理器。

Solaris 开发商 SUN

最早也是基于BSD Unix开发的,那时就直接叫Sun OS,从Sun OS5以后就以Solaris的名字面市,从Solaris10开始它也是免费开源的软件了,开始主要是为SPARC和x86写的,后来经过一些改动也可以支持一大批的处理器.Solaris10开始支持64位处理器.

FreeBSD 开发者 Nate Williams,Rod Grimes,Jordan Hubbard.

Bill Jolitz的 386BSD发展形成3个分支FreeBSD,NetBSD,OpenBSD了,这些都是免费的开源操作系统。第一张FreeBSD光盘是在1993年12月发布的。

FreeBSD 是一个在个人电脑上执行的作业系统,主要支持x86处理器,其他跟 Intel 相容的 CPU 如 AMD 跟 Cyrix也被支持。

FreeBSD 能提供你许多昂贵工作站才有的先进功能,这些特色包括:

抢占式多任务处理.

完整的 TCP/IP 网路功能 包含 SLIP, PPP, NFS 跟 NIS。

内存保护(Memory protection) 能确保一个使用者不能打扰其他人。而一个应用程式也不能影响其他的程式。

标准的 X 视窗系统 (X Window, X11R6) 提供良好的图形用户接口(GUI)以便在一般的 VGA 显示卡以及萤幕上使用, 并且提供完整的原始程式码。

能直接执行在其他作业系统 (如 SCO, BSDI, NetBSD, Linux 跟 386BSD)上编译的 (Binary) 程式。

数以千计 可以直接执行(ready-to-run) 的应用程式, 可以在 FreeBSD ports 及 packages 中找到。 免去你上网路到处找软体的苦境。

需要时才置换的虚拟记忆体(Demand paged virtual memory 以及合理的虚拟记忆体及档案缓冲区之缓冲功能(merged VM/buffer cache)

NetBSD 开发者 NetBSD小组

NetBSD是一种完全免费的类UNIX操作系统,它是一个重于夸平台应用的 BSD分支,它支持50多种硬件平台,具有高度可移植性和硬件平台兼容性.它可以运行在从64位alpha服务器到手持设备的多种硬件平台上. NetBSD的清晰设计以及它的众多高级特性使得它不论作为产品还是研究环境都表现得非常出色。而且它对用户在资源上进行全方位的支持。其上的应用程序很多都可以非常容易地获得。

OpenBSD 开发者 由NetBSD的前核心成员Theo de Raddt领导的一个开发小组。

OpenBSD由NetBSD分支出的计划,

它是一个免费、多平台、基于4.4BSD的类Unix操作系统。目标在于强调正确性、安全性、标准化以及可移植性。着重于安全性,致力于成为最安全的操作系统。OpenBSD支持包括SVR4(Solaris),FreeBSD,Linux,BSDI,SunOS和HPUX等大部分二进制的模拟。

Linux

RedHat/Fedora 开发商 RedHat.Inc

Redhat linux是最早的Linux发行版本之一,也是最早使用软件管理包RPM的Linux版本, Redhat 自9.0以后,不再发布桌面版的,而是把这个项目与开源社区合作,于是就有了Fedora 这个 Linux 发行版。最新版本是FC4.0.

Slackware 开发商Slackware Linux, Inc

Slackware Linux是由Patrick Volkerding开发的GNU/Linux发行版。与很多其他的发行版不同,它坚持KISS(Keep It Simple Stupid)的原则,就是说没有任何配置系统的图形界面工具。一开始,配置系统会有一些困难,但是更有经验的用户会喜欢这种方式的透明性和灵活性。

Slackware Linux的另一个突出的特性也符合KISS原则:Slackware没有如RPM之类的成熟的软件包管理器。Slackware的软件包都是通常的 tgz(tar/gzip)格式文件再加上安装脚本。Tgz对于有经验的用户来说,比RPM更为强大,并避免了RPM之类管理器的依赖性问题。 Slackware还有一个众所周知的特性就是BSD风格的初始化脚本。Slackware对所有的运行级(runlevel)/任务都用同一个脚本,而不是在不同的运行级中建立一堆脚本的链接。这样让你不必自己写新的脚本就能很容易地调整系统。

Debian 开发商Debian project

Debian 以其忠于Unix和自由软件以及丰富的选择出名,它的最新版本包含有5万个软件包,支持十一种体系结构,从ARM到IBM S390,以及个人电脑上的x86到PowerPC.它的软包管理工具APT一样有名.最新发布版本是Debian3.1也叫sarge

Mandriva 开发商 Conectiva

Mandriva Linux的前身是欧洲最大的Linux厂商之一Mandrakesoft,长期以来Mandrake Linux以最为方便、易用、华丽的Linux发行版着称。Mandrake Linux早期方便的字体安装工具和默认的中文支持,为Linux普及做出了很大的贡献。但是2004年前后Mandrakesoft陷入财务危机,濒临破产。公司于2005年2月24日与拉丁美洲最大的Linux厂商Conectiva达成了收购协议,金额为170万欧元,新公司旗下品牌 Mandrake Linux更名为Mandriva Linux。Mandriva以rpm作为软件管理工具,部分兼容Red Hat Linux/Fedora Core的预编译包.

SuSE 开发商 Novell

SUSE LINUX是德国的一个发行版,原是以Slackware Linux为基础,并提供完整德文使用界面的产品,2004年Novell收购了SUSE.

Gentoo

Gentoo Linux为用户提供了大量的应用程序源代码。Gentoo Linux的每一部分都可以在最终用户的系统上重新编译建造,甚至包括最基本的系统库和编译器自身。通过依赖关系描述和源代码镜像的形式提供软件,Gentoo Linux提供了大量软件供用户选择。 标准的源代码镜像包括30G的数据。选择不仅在软件整体方面,也存在于软件的内部。由于可以在本地编译软件,参数和变量的选择可以由用户自己指定。

事实上,在软件的安装和升级方面,Gentoo拥有自己独特的优势。由于Portage技术的产生,Gentoo Linux可以担当一个理想的安全服务器、开发平台、专业级桌面应用、游戏服务器、嵌入式应用等等各种角色。由于其无限制的可配置性,我们甚至可以称 Gentoo Linux为一个准发行版。

嵌入式式操作系统.

uClinux

uClinux是一种优秀的嵌入式Linux版本。uclinux是一个源码开放的操作系统,面向没有MMU(Memory Management Unit)的硬件平台。同标准Linux相比,它集成了标准Linux操作系统的稳定性、强大网络功能和出色的文件系,它是完全免费的.

uC/OS II 开发商 Micrium

抢占式实时多任务实时操作系统,可以管理63个任务,开源的嵌式操作系统,商业应用需要得到Micrium公司的授权,

VxWorks 开发商 WindRiver

VxWorks操作系统是美国风河(WindRiver)公司于1983 年设计开发的一种嵌入式实时操作系统(RTOS),是嵌入式开发环境的关键组成部分。良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域占据一席之地。它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。在美国的 F-16、FA-18 战斗机、B-2 隐形轰炸机和爱国者导弹上,甚至连1997年7月在火星表面登陆的火星探测器上也使用到了VxWorks

VxWorks 的实时性做得非常好,其系统本身的开销很小,进程调度、进程间通信、中断处理等系统公用程序精练而有效,它们造成的延迟很短。

PalmOS 开发商 PalmSource,Inc

早期由US Robotics(其后被3Com收购,再独立改名为Palm公司)研制的专门用于其产品"Palm"的操作系统。主要用于PDA产器

WindowsCE 开发商 Microsoft

它是微软针对个人电脑以外的电脑产品所研发的嵌入式操作系统,而CE则为Customer Embedded的缩写。

⑺ 电脑的操作系统有哪些那种的性能最好最安全

Windows 开发商 Microsoft

Windows98/me

Windows2000/XP

Windows Server2003

Windows Vista
Windows98/me是基于MS-DOS的混合的16/32位操作系统正慢慢的退出PC舞台了,2000/X
P以及Server2003都是基于WindowsNT的32位操作系统,XP/Server2003已经有64位版本了。
Vista是微软最新开发的版本预计在2006年推出。主要支持Intel,AMD,后来增加了对Power
PC,MIPS的支持。微软的操作系统基本上统治了个人PC市场,大概占了90%的市场份额。

UNIX-like

AIX 开发商 IBM

AIX是Advanced Interactive eXecutive的简称,它是IBM 公司的UNIX操作系统,整个
系统的设计从网络、主机硬件系统,到操作系统完全遵守开放系统的原则.

RS/6000 采用IBM 的UNIX操作系统-AIX作为其操作系统.这是一个目前操作系统界最成
功,应用领域最广,最开放的第二代的UNIX系统。它特别适合于做关键数据处理(CRITIC
AL).

支持PowerPC POWER处理器.

目前的版本是AIX 5L 5.3,

支持64棵处理器,2TB内存,16TB JFS2文件系统,16TB JFS2文件.

HP-UX 开发商 HP

惠普公司在1996年随着推出64位PA-8000处理器,开始了64位技术的实施计划,它形成
了工业界运算最快的商业和工程技术应用服务器的基础。为了与先进的硬件配套,惠普公
司已经逐步地把64位功能放入惠普公司在工业界领先的UNIX操作系统HP-UX。HP-UX 10.10
和10.20分别具有非常大的文件系统和文件。

HP-UX 11.00也有32位版本,使得基于32位PA-7X00系统也可以得到HP-UX 11.00的新功
能和特色;基于PA-8X00的K系列和T系列系统的客户要在HP-UX的32位或64位版本之间做出选
择。惠普公司单机系统性能在工业界领先(39,469TPMS)的V系列系统,只可以运行64位的H
P-UX 11.00。

主要运行于HP公司的PA-系列处理器以及Intel的安腾系列处理器上.

最新的版本HP-UX 11i v2.

可以管理128棵处理器,1TB内存,32TB文件系统,最大2TB的文件。

IRIX 开发商 SGI

SGI公司最早是专门生产图形显示终端的, OpenGL标准便是由SGI提出来的.公司开发的
这个操作系统是主要运行在基于MIPS处理器的图形工作站上,1992年SGI收购了MIPS,1998年
MIPS又脱离了SGI成立MIPS技术公司.2003年SGI推出了基于Linux的Altix系列操作系统.

Mac OS X 开发商 Apple

Apple公司的Macintosh机上的操作系统, 苹果机主要用于图形领域,在图形处理领域占
有很大市场份额。Mac OS是首个在商用领域成功的图形用户界操作系统。Mac OS9及以前的
版本都在搭在苹果机上销售的。它不支持其它设备,每当有新的设备时都要通过添加扩展
来支持设备。新的Mac OS X结合BSDUnix、NeXTStep和Mac OS 9的元素。采用Unix风格的内
存管理和抢占式多任务处理,它的最底层建基于BSDUnix的内核,实行的是部分开放源代码


现行的最新的系统版本是Mac OS X v10.4.2。

只能运行在PowerPC G3以上处理器的苹果机上,苹果公司正在跟Intel合作,表示以后
苹果机会采用x86处理器。

Solaris 开发商 SUN

最早也是基于BSD Unix开发的,那时就直接叫Sun OS,从Sun OS5以后就以Solaris的
名字面市,从Solaris10开始它也是免费开源的软件了,开始主要是为SPARC和x86写的,后来
经过一些改动也可以支持一大批的处理器.Solaris10开始支持64位处理器.

FreeBSD 开发者 Nate Williams,Rod Grimes,Jordan Hubbard.

Bill Jolitz的 386BSD发展形成3个分支FreeBSD,NetBSD,OpenBSD了,这些都是免费的
开源操作系统。第一张FreeBSD光盘是在1993年12月发布的。

FreeBSD 是一个在个人电脑上执行的作业系统,主要支持x86处理器,其他跟 Intel 相
容的 CPU 如 AMD 跟 Cyrix也被支持。

FreeBSD 能提供你许多昂贵工作站才有的先进功能,这些特色包括:

抢占式多任务处理.

完整的 TCP/IP 网路功能 包含 SLIP, PPP, NFS 跟 NIS。

内存保护(Memory protection) 能确保一个使用者不能打扰其他人。而一个应用程式
也不能影响其他的程式。

标准的 X 视窗系统 (X Window, X11R6) 提供良好的图形用户接口(GUI)以便在一般的
VGA 显示卡以及萤幕上使用, 并且提供完整的原始程式码。

能直接执行在其他作业系统 (如 SCO, BSDI, NetBSD, Linux 跟 386BSD)上编译的 (
Binary) 程式。

数以千计 可以直接执行(ready-to-run) 的应用程式, 可以在 FreeBSD ports 及 pa
ckages 中找到。 免去你上网路到处找软体的苦境。

需要时才置换的虚拟记忆体(Demand paged virtual memory 以及合理的虚拟记忆体及
档案缓冲区之缓冲功能(merged VM/buffer cache)

NetBSD 开发者 NetBSD小组

NetBSD是一种完全免费的类UNIX操作系统,它是一个重于夸平台应用的BSD分支,它支
持50多种硬件平台,具有高度可移植性和硬件平台兼容性.它可以运行在从64位alpha服务器
到手持设备的多种硬件平台上.NetBSD的清晰设计以及它的众多高级特性使得它不论作为产
品还是研究环境都表现得非常出色。而且它对用户在资源上进行全方位的支持。其上的应
用程序很多都可以非常容易地获得。

OpenBSD 开发者 由NetBSD的前核心成员Theo de Raddt领导的一个开发小组。

OpenBSD由NetBSD分支出的计划,

它是一个免费、多平台、基于4.4BSD的类Unix操作系统。目标在于强调正确性、安全
性、标准化以及可移植性。着重于安全性,致力于成为最安全的操作系统。OpenBSD支持包
括SVR4(Solaris),FreeBSD,Linux,BSDI,SunOS和HPUX等大部分二进制的模拟。

Linux

RedHat/Fedora 开发商 RedHat.Inc

Redhat linux是最早的Linux发行版本之一,也是最早使用软件管理包RPM的Linux版本
, Redhat 自9.0以后,不再发布桌面版的,而是把这个项目与开源社区合作,于是就有了
Fedora 这个 Linux 发行版。最新版本是FC4.0.

Slackware 开发商Slackware Linux, Inc

Slackware Linux是由Patrick Volkerding开发的GNU/Linux发行版。与很多其他的发
行版不同,它坚持KISS(Keep It Simple Stupid)的原则,就是说没有任何配置系统的图形
界面工具。一开始,配置系统会有一些困难,但是更有经验的用户会喜欢这种方式的透明
性和灵活性。

Slackware Linux的另一个突出的特性也符合KISS原则:Slackware没有如RPM之类的成
熟的软件包管理器。Slackware的软件包都是通常的tgz(tar/gzip)格式文件再加上安装脚
本。Tgz对于有经验的用户来说,比RPM更为强大,并避免了RPM之类管理器的依赖性问题。
Slackware还有一个众所周知的特性就是BSD风格的初始化脚本。Slackware对所有的运行级
(runlevel)/任务都用同一个脚本,而不是在不同的运行级中建立一堆脚本的链接。这样让
你不必自己写新的脚本就能很容易地调整系统。

Debian 开发商Debian project

Debian 以其忠于Unix和自由软件以及丰富的选择出名,它的最新版本包含有5万个软件
包,支持十一种体系结构,从ARM到IBM S390,以及个人电脑上的x86到PowerPC.它的软包管理
工具APT一样有名.最新发布版本是Debian3.1也叫sarge

Mandriva 开发商 Conectiva

Mandriva Linux的前身是欧洲最大的Linux厂商之一Mandrakesoft,长期以来Mandrak
e Linux以最为方便、易用、华丽的Linux发行版着称。Mandrake Linux早期方便的字体安
装工具和默认的中文支持,为Linux普及做出了很大的贡献。但是2004年前后Mandrakesof
t陷入财务危机,濒临破产。公司于2005年2月24日与拉丁美洲最大的Linux厂商Conectiva
达成了收购协议,金额为170万欧元,新公司旗下品牌Mandrake Linux更名为Mandriva Li
nux。Mandriva以rpm作为软件管理工具,部分兼容Red Hat Linux/Fedora Core的预编译包
.

SuSE 开发商 Novell

SUSE LINUX是德国的一个发行版,原是以Slackware Linux为基础,并提供完整德文使
用界面的产品,2004年Novell收购了SUSE.

Gentoo

Gentoo Linux为用户提供了大量的应用程序源代码。Gentoo Linux的每一部分都可以
在最终用户的系统上重新编译建造,甚至包括最基本的系统库和编译器自身。 通过依赖关
系描述和源代码镜像的形式提供软件,Gentoo Linux提供了大量软件供用户选择。 标准的
源代码镜像包括30G的数据。 选择不仅在软件整体方面,也存在于软件的内部。由于可以
在本地编译软件,参数和变量的选择可以由用户自己指定。

事实上,在软件的安装和升级方面,Gentoo拥有自己独特的优势。由于Portage技术的
产生,Gentoo Linux可以担当一个理想的安全服务器、开发平台、专业级桌面应用、游戏
服务器、嵌入式应用等等各种角色。由于其无限制的可配置性,我们甚至可以称Gentoo L
inux为一个准发行版。

嵌入式式操作系统.

uClinux

uClinux是一种优秀的嵌入式Linux版本。uclinux是一个源码开放的操作系统,面向没
有MMU(Memory Management Unit)的硬件平台。同标准Linux相比,它集成了标准Linux操
作系统的稳定性、强大网络功能和出色的文件系,它是完全免费的.

uC/OS II 开发商 Micrium

抢占式实时多任务实时操作系统,可以管理63个任务,开源的嵌式操作系统,商业应用需
要得到Micrium公司的授权,

VxWorks 开发商 WindRiver

VxWorks操作系统是美国风河(WindRiver)公司于1983年设计开发的一种嵌入式实时操
作系统(RTOS),是嵌入式开发环境的关键组成部分。良好的持续发展能力、高性能的内
核以及友好的用户开发环境,在嵌入式实时操作系统领域占据一席之地。它以其良好的可
靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求
极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。在美国的 F-16、FA-18
战斗机、B-2 隐形轰炸机和爱国者导弹上,甚至连1997年7月在火星表面登陆的火星探测
器上也使用到了VxWorks

VxWorks 的实时性做得非常好,其系统本身的开销很小,进程调度、进程间通信、中
断处理等系统公用程序精练而有效,它们造成的延迟很短。

PalmOS 开发商 PalmSource,Inc

早期由US Robotics(其后被3Com收购,再独立改名为Palm公司)研制的专门用于其产
品"Palm"的操作系统。主要用于PDA产器

WindowsCE 开发商 Microsoft

它是微软针对个人电脑以外的电脑产品所研发的嵌入式操作系统,而CE则为Customer
Embedded的缩写。

⑻ 介绍几种主流嵌入式操作系统的特点,并分析比较 哥们,我现在纠结这个问题,可以给点指点吗

如果你是学习阶段的话,那LINUX和UCOS-II是比较合适的
uc/os和uclinux操作系统是两种性能优良源码公开且被广泛应用的的免费嵌入式操作系统,可以作为研究实时操作系统和非实时操作系统的典范。本文通过对 uc/os和uclinux的对比,分析和总结了嵌入式操作系统应用中的若干重要问题,归纳了嵌入式系统开发中操作系统的选型依据。
两种开源嵌入式操作系统介绍
uc/os和uclinux操作系统,是当前得到广泛应用的两种免费且公开源码的嵌入式操作系统。uc/os适合小型控制系统,具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点,最小内核可编译至2k。uclinux则是继承标准linux 的优良特性,针对嵌入式处理器的特点设计的一种操作系统,具有内嵌网络协议、支持多种文件系统,开发者可利用标准linux先验知识等优势。其编译后目标文件可控制在几百k量级。
uc/os是一种免费公开源代码、结构小巧、具有可剥夺实时内核的实时操作系统。其内核提供任务调度与管理、时间管理、任务间同步与通信、内存管理和中断服务等功能。
uclinux是一种优秀的嵌入式linux版本。uclinux是micro-conrol-linux的缩写。同标准linux相比,它集成了标准linux操作系统的稳定性、强大网络功能和出色的文件系统等主要优点。但是由于没有mmu(内存管理单元),其多任务的实现需要一定技巧。
两种嵌入式操作系统主要性能比较
嵌入式操作系统是嵌入式系统软硬件资源的控制中心,它以尽量合理的有效方法组织多个用户共享嵌入式系统的各种资源。其中用户指的是系统程序之上的所有软件。所谓合理有效的方法,指的就是操作系统如何协调并充分利用硬件资源来实现多任务。复杂的操作系统都支持文件系统,方便组织文件并易于对其规范化操作。
嵌入式操作系统还有一个特点就是针对不同的平台,系统不是直接可用的,一般需要经过针对专门平台的移植操作系统才能正常工作。进程调度、文件系统支持和系统移植是在嵌入式操作系统实际应用中最常见的问题,下文就从这几个角度入手对uc/os和uclinux进行分析比较。
进程调度
任务调度主要是协调任务对计算机系统内资源(如内存、i/o设备、cpu)的争夺使用。进程调度又称为cpu调度,其根本任务是按照某种原则为处于就绪状态的进程分配cpu。由于嵌入式系统中内存和i/o设备一般都和cpu同时归属于某进程,所以任务调度和进程调度概念相近,很多场合不加区分,下文中提到的任务其实就是进程的概念。
进程调度可分为"剥夺型调度"和"非剥夺型调度"两种基本方式。所谓"非剥夺型调度"是指:一旦某个进程被调度执行,则该进程一直执行下去直至该进程结束,或由于某种原因自行放弃cpu进入等待状态,才将cpu重新分配给其他进程。所谓"剥夺型调度"是指:一旦就绪状态中出现优先权更高的进程,或者运行的进程已用满了规定的时间片时,便立即剥夺当前进程的运行(将其放回就绪状态),把cpu分配给其他进程
作为实时操作系统,uc/os是采用的可剥夺型实时多任务内核。可剥夺型的实时内核在任何时候都运行就绪了的最高优先级的任务。uc/os中最多可以支持64 个任务,分别对应优先级0~63,
其中0为最高优先级。调度工作的内容可以分为两部分:最高优先级任务的寻找和任务切换。
其最高优先级任务的寻找是通过建立就绪任务表来实现的。uc/os中的每一个任务都有独立的堆栈空间,并有一个称为任务控制块tcb(task control block)数据结构,其中第一个成员变量就是保存的任务堆栈指针。任务调度模块首先用变量 ostcbhighrdy记录当前最高级就绪任务的tcb地址,然后调用os_task_sw() 函数来进行任务切换。
uclinux的进程调度沿用了linux的传统,系统每隔一定时间挂起进程,同时系统产生快速和周期性的时钟计时中断,并通过调度函数(定时器处理函数)决定进程什么时候拥有它的时间片。然后进行相关进程切换,这是通过父进程调用fork 函数生成子进程来实现的。
uclinux系统fork调用完成后,要么子进程代替父进程执行(此时父进程已经 sleep),直到子进程调用exit退出;要么调用exec执行一个新的进程,这个时候产生可执行文件的加载,即使这个进程只是父进程的拷贝,这个过程也不可避免。当子进程执行exit或exec后,子进程使用wakeup把父进程唤醒,使父进程继续往下执行。
uclinux由于没有mmu管理存储器,其对内存的访问是直接的,所有程序中访问的地址都是实际的物理地址。操作系统队内存空间没有保护,各个进程实际上共享一个运行空间。这就需要实现多进程时进行数据保护,也导致了用户程序使用的空间可能占用到系统内核空间,这些问题在编程时都需要多加注意,否则容易导致系统崩溃。
由上述分析可以得知,uc/os内核是针对实时系统的要求设计实现的,相对简单,可以满足较高的实时性要求。而uclinux则在结构上继承了标准linux的多任务实现方式,仅针对嵌入式处理器特点进行改良。其要实现实时性效果则需要使系统在实时内核的控制下运行,rt-linux就是可以实现这一个功能的一种实时内核。
文件系统
所谓文件系统是指负责存取和管理文件信息的机构,也可以说是负责文件的建立、撤销、组织、读写、修改、复制及对文件管理所需要的资源(如目录表、存储介质等)实施管理的软件部分。
uc/os是面向中小型嵌入式系统的,如果包含全部功能(信号量、消息邮箱、消息队列及相关函数),编译后的uc/os内核仅有6~10kb,所以系统本身并没有对文件系统的支持。但是uc/os具有良好的扩展性能,如果需要的话也可自行加入文件系统的内容。
uclinux则是继承了linux完善的文件系统性能。其采用的是romfs文件系统,这种文件系统相对于一般的ext2文件系统要求更少的空间。空间的节约来自于两个方面,首先内核支持romfs文件系统比支持ext2文件系统需要更少的代码,其次romfs文件系统相对简单,在建立文件系统超级块(superblock)需要更少的存储空间。romfs文件系统不支持动态擦写保存,对于系统需要动态保存的数据采用虚拟ram盘的方法进行处理(ram盘将采用ext2文件系统)。
uclinux还继承了linux网络操作系统的优势,可以很方便的支持网络文件系统且内嵌tcp/ip协议,这为uclinux开发网络接入设备提供了便利。
由两种操作系统对文件系统的支持可知,在复杂的需要较多文件处理的嵌入式系统中uclinux是一个不错的选择。而uc/os则主要适合一些控制系统。
操作系统的移植
嵌入式操作系统移植的目的是指使操作系统能在某个微处理器或微控制器上运行。uc/os和uclinux都是源码公开的操作系统,且其结构化设计便于把与处理器相关的部分分离出来,所以被移植到新的处理器上是可能的。
以下对两种系统的移植分别予以说明。
(1)uc/os的移植
要移植uc/os,目标处理器必须满足以下要求;
·处理器的c编译器能产生可重入代码,且用c语言就可以打开和关闭中断;
·处理器支持中断,并能产生定时中断;
·处理器支持足够的ram(几k字节),作为多任务环境下的任务堆栈;
·处理器有将堆栈指针和其他cpu寄存器读出和存储到堆栈或内存中的指令。
在理解了处理器和c编译器的技术细节后,uc/os的移植只需要修改与处理器相关的代码就可以了。
具体有如下内容:
·os_cpu.h中需要设置一个常量来标识堆栈增长方向;
·os_cpu.h中需要声明几个用于开关中断和任务切换的宏;
·os_cpu.h中需要针对具体处理器的字长重新定义一系列数据类型;
·os_cpu_a.asm需要改写4个汇编语言的函数;
·os_cpu_c.c需要用c语言编写6个简单函数;
·修改主头文件include.h,将上面的三个文件和其他自己的头文件加入。
(2)uclinux的移植
由于uclinux其实是linux针对嵌入式系统的一种改良,其结构比较复杂,相对 uc/os,uclinux的移植也复杂得多。一般而言要移植uclinux,目标处理器除了应满足上述uc/os应满足的条件外,还需要具有足够容量(几百k字节以上)外部rom和ram。
uclinux的移植大致可以分为3个层次:
·结构层次的移植,如果待移植处理器的结构不同于任何已经支持的处理器结构,则需要修改linux/arch目录下相关处理器结构的文件。虽然uclinux内核代码的大部分是独立于处理器和其体系结构的,但是其最低级的代码也是特定于各个系统的。这主要表现在它们的中断处理上下文、内存映射的维护、任务上下文和初始化过程都是独特的。这些例行程序位于linux/arch/目录下。由于linux所支持体系结构的种类繁多,所以对一个新型的体系,其低级例程可以模仿与其相似的体系例程编写。
·平台层次的移植,如果待移植处理器是某种uclinux已支持体系的分支处理器,则需要在相关体系结构目录下建立相应目录并编写相应代码。如mc68ez328就是基于无mmu的m68k内核的。此时的移植需要创建 linux/arch/m68knommu/platform/ mc68ez328目录并在其下编写跟踪程序(实现用户程序到内核函数的接口等功能)、中断控制调度程序和向量初始化程序等。
·板级移植,如果你所用处理器已被uclinux支持的话,就只需要板级移植了。板级移植需要在linux/arch/?platform/中建立一个相应板的目录,再在其中建立相应的启动代码crt0_rom.s或crt0_ram.s和链接描述文档rom.ld或ram.ld就可以了。板级移植还包括驱动程序的编写和环境变量设置等内容。
结语
通过对uc/os和uclinux的比较,可以看出这两种操作系统在应用方面各有优劣。 uc/os占用空间少,执行效率高,实时性能优良,且针对新处理器的移植相对简单。uclinux则占用空间相对较大,实时性能一般,针对新处理器的移植相对复杂。但是,uclinux具有对多种文件系统的支持能力、内嵌了tcp/ip协议,可以借鉴linux丰富的资源,对一些复杂的应用,uclinux具有相当优势。例如cisco 公司的 2500/3000/4000 路由器就是基于uclinux操作系统开发的。总之,操作系统的选择是由嵌入式系统的需求决定的。简单的说就是,小型控制系统可充分利用uc/os小巧且实时性强的优势,如果开发pda和互联网连接终端等较为复杂的系统则uclinux是不错的选择。

还有就是如果从开发的工具方便好用,易用的角度来看,那些收费的系统用起来更爽一些

⑼ 什么是UCLINUX概述一下

uclinux表示micro-control linux.即“微控制器领域中的Linux系统”,是Lineo公司的主打产品,同时也是开放源码的嵌入式Linux的典范之作。uCLinux主要是针对目标处理器没有存储管理单元MMU(Memory Management Unit)的嵌入式系统而设计的。它已经被成功地移植到了很多平台上。由于没有MMU,其多任务的实现需要一定技巧。

热点内容
fbe加密 发布:2025-05-18 01:16:34 浏览:250
求中点编程 发布:2025-05-18 01:03:14 浏览:840
安卓pay是什么 发布:2025-05-18 01:02:27 浏览:747
免费手游挂机脚本 发布:2025-05-18 00:55:43 浏览:354
sd卡手机存储系统存储 发布:2025-05-18 00:55:28 浏览:637
pythonlistintstr 发布:2025-05-18 00:48:18 浏览:604
轻应用缓存 发布:2025-05-18 00:31:02 浏览:252
鸟存储空气 发布:2025-05-18 00:20:24 浏览:201
linux刻录iso 发布:2025-05-18 00:16:15 浏览:663
php动态参数 发布:2025-05-18 00:12:05 浏览:425