Linux、Android、uCOS、uCLinux、VxWorks、WinCE等系统比较

2023-11-08 19:10

本文主要是介绍Linux、Android、uCOS、uCLinux、VxWorks、WinCE等系统比较,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Linux、Android、uCOS、uCLinux、VxWorks、WinCE等系统比较

 知识经验  7个月前 (10-14)   2044浏览   3评论

0fafce0c5ec38396dee715e5a2ba7840嵌入式系统是以嵌入式计算机为技术核心,面向用户、面向产品、面向应用,软硬件可裁减的,适用于对功能、可靠性、成本、体积、功耗等综合性能有严格要求的专用计算机系统。 学习和使用嵌入式操作系统(OS)的时候,难免会在选择何种系统上犹豫不决。因为选择好系统后,要重新更换成本非常高,而且对于学习者来说,选择一个用户量大的嵌入式操作系统,不仅可以获得快捷的技术文档,而且还能找到好的工作。以下对一些常用的嵌入式操作系统进行区别比较。

Linux

Linux是一个类似于Unix的操作系统。它起源于芬兰一个名为 Linus Torvalds的业余爱好,但是现在已经是最为流行的一款开放源代码的操作系统。Linux从1991年问世到现在,短短10年的时间内已发展成为一个功能强大、设计完善的操作系统,伴随网络技术进步而发展起来的Linux OS已成为Microsoft公司的DOS和Windows 95/98的强劲对手。
Linux系统不仅能够运行于PC平台,还在嵌入式系统方面大放光芒,在各种嵌入式Linux OS迅速发展的状况下,Linux OS逐渐形成了可与Windows CE等OS进行抗衡的局面。目前正在开发的嵌入式系统中,49%的项目选择Linux作为嵌入式操作系统。Linux现已成为嵌入式操作的理想选择。

Android

e84e30b9390cdb64db6db2c9ab87846d Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。
Android操作系统最初由 Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。
第一部Android智能手机发布于 2008年10月。Android逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机等。 2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。 2013年的第四季度,Android平台手机的全球市场份额已经达到78.1%。2013年09月24日谷歌开发的操作系统Android在迎来了5岁生日,全世界采用这款系统的设备数量已经达到10亿台。

iOS

4b3bdf6b4694f09ff2db29ca4f3b57e7iOS是由苹果公司开发的移动操作系统。苹果公司最早于2007年1月9日的Macworld大会上公布这个系统,最初是设计给iPhone使用的,后来陆续套用到iPod touch、iPad以及Apple TV等产品上。
iOS与苹果的Mac OS X操作系统一样,它也是以 Darwin为基础的,因此同样属于类Unix的商业操作系统。原本这个系统名为iPhone OS,因为iPad,iPhone,iPod touch都使用iPhone OS,所以2010WWDC大会上宣布改名为iOS(iOS为美国Cisco公司网络设备操作系统注册商标,苹果改名已获得Cisco公司授权)。

WinCE

Windows CE是微软开发的一个开放的、可升级的32位嵌入式操作系统,是基于掌上型电脑类的电子设备操作。最早是精简的Windows 95。Windows CE的图形用户界面相当出色。其中CE中的C代表袖珍(Compact)、消费(Consumer)、通信能力(Connectivity)和伴侣(Companion);E代表电子产品(Electronics)。与Windows 95/98、Windows NT不同的是,Windows CE是所有源代码全部由微软自行开发的嵌入式新型操作系统,其操作界面虽来源于Windows 95/98,但Windows CE是基于Win32 API重新开发的、新型的信息设备平台。Windows CE具有模块化、结构化和基于Win32应用程序接口以及与处理器无关等特点。Windows CE不仅继承了传统的Windows图形界面,并且在Windows CE平台上可以使用Windows 95/98上的编程工具(如Visual Basic、Visual C++、Visual Studio等)、使用同样的函数、使用同样的界面网格,使绝大多数的应用软件只需简单的修改和移植就可以在Windows CE平台上继续使用。
Windows CE的设计目标是: 模块化及可伸缩性、实时性能好,通信能力强大,支持多种CPU。它的设计可以满足多种设备的需要,这些设备包括了工业控制器、通信集线器以及销售终端之类的企业设备,还有像照相机、电话和家用娱乐器材之类的消费产品。一个典型的基于Windows CE的嵌入系统通常为某个特定用途而设计,并在不联机的情况下工作。它要求所使用的操作系统体积较小,内建有对中断的响应功能。

uC/OS

uC/OS II(Micro Control Operation System Two)是一个可以基于ROM运行的、可裁减的、抢占式、实时多任务内核,具有高度可移植性,特别适合于微处理器和控制器,是和很多商业操作系统性能相当的实时操作系统(RTOS)。为了提供最好的移植性能,uC/OS II最大程度上使用ANSI C语言进行开发,并且已经移植到近40多种处理器体系上,涵盖了 从8位到64位各种CPU(包括DSP)
uC/OS II可以简单的视为一个多任务调度器,在这个任务调度器之上完善并添加了和多任务操作系统相关的系统服务,如信号量、邮箱等。其主要特点有 公开源代码,代码结构清晰、明了,注释详尽,组织有条理,可移植性好,可裁剪,可固化。内核属于抢占式,最多可以管理60个任务。从1992年开始,由于高度可靠性、移植性和安全性,uC/OS II已经广泛使用在从照相机到航空电子产品的各种应用中。
μC/OS-II实时多任务操作系统内核被广泛应用于微处理器、微控制器和数字信号处理器。 μC/OS-II 的前身是μC/OS,最早出自于1992 年美国嵌入式系统专家Jean J.Labrosse 在《嵌入式系统编程》杂志的5 月和6 月刊上刊登的文章连载,并把μC/OS 的源码发布在该杂志的BBS 上。

uCLinux

4c5dc7c18d94d322d4dfbe819071404buCLinux表示Micro-Control Linux,即“微控制器领域中的Linux系统”,是Lineo公司的主打产品,同时也是开放源码的嵌入式Linux的典范之作。uCLinux主要是针对目标处理器没有存储管理单元MMU(Memory Management Unit)的嵌入式系统而设计的。它已经被成功地移植到了很多平台上。由于没有MMU,其多任务的实现需要一定技巧。
uClinux从Linux 2.0/2.4内核派生而来,沿袭了Linux的绝大部分特性。它通常用于具有很少内存或Flash的嵌入式操作系统。在GNU通用许可证的保证下,运行uClinux操作系统的用户可以使用几乎所有的Linux API函数。由于经过了裁剪和优化,它形成了一个高度优化,代码紧凑的嵌入式Linux。
它具有 体积小、稳定、良好的移植性、优秀的网络功能、完备的对各种文件系统的支持,以及丰富的API函数等优点。uClinux与Linux在兼容性方面表现出色,uClinux除了不能实现fork()外,其余uClinux的API函数与标准Linux完全相同。

VxWorks

3318cda0ba88a879f352d865ccb0c692VxWorks 操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),是嵌入式开发环境的关键组成部分。VxWorks凭借良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域占据一席之地。
VxWorks 以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。在美国的 F-16、FA-18战斗机、B-2 隐形轰炸机和爱国者导弹上,甚至连1997年4月在火星表面登陆的火星探测器、2008年5月登陆的凤凰号,和2012年8月登陆的好奇号也都使用到了VxWorks上。
VxWorks实时操作系统 由400多个相对独立、短小精悍的目标模块组成,用户可根据需要选择适当的模块来裁剪和配置系统;提供基于优先级的任务调度、任务间同步与通信、中断处 理、定时器和内存管理等功能,内建符合POSIX(可移植操作系统接口)规范的内存管理,以及多处理器控制程序;并且具有简明易懂的用户接口,在核心方面甚至町以微缩到8 KB。

eCos

eCos(embedded Configurable operating system),中文翻译为 嵌入式可配置操作系统嵌入式可配置实时操作系统。适合于深度嵌入式应用,主要应用对象包括消费电子、电信、车载设备、手持设备以及其他一些低成本和便携式应用。eCos是一种开放源代码软件,无需支付任何版税。
eCos最为显著的特点是它的可配置性,它的主要技术创新是其功能强大的组件管理和配置系统,可以在源码级实现对系统的配置和裁剪。此外,eCos可以通过安装第三方组件包扩展系统功能。
eCos能满足嵌入式Linux难以满足的对嵌入空间的需求,Linux内核最小约500KB,占用1.5MB内存,而eCos只占用几十到几百KB。eCos使用了多任务抢占机制,具有最小的中断延时,支持嵌入式所需的所有同步原语,并拥有灵活的调度策略和中断处理机制。
eCos所提供的支持还包括开发嵌入式应用所需的所有工具,如eCos配置工具、基于GNU的编译器、汇编器、连接器、调试器和模拟器。
eCos核心组件包括硬件抽象层(HAL)、内核、标准C和数据库、设备驱动程序、文件系统、TCP/IP协议栈、图形系统、GDB调试支持等。

RTlinux

RTLinux(AReal-Time Linux,亦称作 实时Linux)是Linux中的一种实时操作系统。它由新墨西哥矿业及科技学院的 V. Yodaiken开发。目前,RTLinux有一个由社区支持的免费版本,称为 RTLinux Free,以及一个来自FSMLabs的商业版本,称作 RTLinux Pro
RTLinux利用Linux开发的面向实时和嵌入式应用的操作系统。在RTLinux宣言中,这样描述RTLinux :  rtlinux is the hard realtime variant of linux that makes it possible to control robots, data acquisition systems, manufacturing plants, and other time-sensitive instruments and machines
RTLinux开发者并 没有针对实时操作系统的特性而重写Linux的内核,因为这样做的工作量非常大,而且要保证兼容性也非常困难。RTLinux将linux的内核代码做一些修改, 将Linux本身的任务以及Linux内核本身作为一个优先级很低的任务,而实时任务作为优先级最高的任务。即在实时任务存在的情况下运行实时任务,否则才运行linux本身的任务。RT-Linux能够创建精确运行的符合POSIX.1b标准的实时进程,并且作为一种遵循GPL v2协议的开放软件,可以达GPL v2协议许可范围内自由地、免费地使用、修改和再发生。
到目前为止,RT-Linux已经成功地应用于航天飞机的空间数据采集、科学仪器测控和电影特技图像处理等广泛领域,在电信、工业自动化和航空航天等实时领域也有成熟应用。

Linux与WinCE的比较

嵌入式Linux与WinCE相比的优点:
  1. Linux是开放源代码的,不在存黑箱技术,遍布全球的众多Linux爱好者都是Linux开发者的强大技术支持者;而Windows CE是非开放性OS,使第三方很难实现产品定制。
  2. Linux的源代码随处可得,注释丰富,文档齐全,易于解决各种问题。
  3. Linux的内核小、效率高;而Windows CE在这方面是笨拙的,占用过多的RAM,应用程序庞大。
  4. Linux是开放源代码的OS,在价格上极具竞争力,适合中国国情。Windows CE的版权费用是厂家不得不考虑的因素。
  5. Linux不仅支持x86芯片,还是一个跨平台的系统。到目前为止,它可以支持20~30种CPU,很多CPU(包括家电业的芯片)厂商都开始做Linux的平台移植工作,而且移植的速度远远超过Java的开发环境。如果今天采用Linux环境开发产品,那么将来更换CPU时就不会遇到更换平台的困扰。
  6. Linux内核的结构在网络方面是非常完整的,它提供了对包括十兆位、百兆位及千兆位的以太网络,还有无线网络、Token ring(令牌环)和光纤甚至卫星的支持。
  7. Linux在内核结构的设计中考虑适应系统的可裁减性的要求,Windows CE在内核结构的设计中并未考虑适应系统的高度可裁减性的要求。
嵌入式Linux与WinCE相比的弱点:
  1. 是开发难度较高,需要很高的技术实力;
  2. 是核心调试工具不全,调试不太方便,尚没有很好的用户图形界面;
  3. 与某些商业OS一样,嵌入式Linux占用较大的内存,当然,人们可以去掉部分无用的功能来减小使用的内存,但是如果不仔细,将引起新的问题;
  4. 有些Linux的应用程序需要虚拟内存,而嵌入式系统中并没有或不需要虚拟内存,所以并非所有的Linux应用程序都可以在嵌入式系统中运行。

结语

998d4e9bd5f0f76fb1e517fa1f3216b7还有 μTenux、RT-thread、FreeRTOS、RTX、Arm-Linux、RTEMS、pSOS、Nucleus、Windows XP Embedded、Windows Vista Embedded、QNX、Lynx、Symbian、HOPEN OS、Maemo、Meego,以及ARM刚推出的免费开源物联网操作系统 mbed os等嵌入式操作系统,可自行到网上了解。
其中,目前嵌入式使用较多的Windows CE和Linux嵌入式操作系统各有不同的特点,不同的用途。但Linux比Windows CE更小、更稳定,而且Linux是开放的OS,在价格上极具竞争力。如今整个市场尚未成型,嵌入式操作系统也未形成统一的国际标准,而且Linux的一系列特征又为我们开发国产的嵌入式操作系统提供了方便。因此,我们有机会在这个未成熟的市场上占有一席之地。

文章来自VeryARM:http://www.veryarm.com/621.html,转载请保留。

这篇关于Linux、Android、uCOS、uCLinux、VxWorks、WinCE等系统比较的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/371893

相关文章

Mac系统下卸载JAVA和JDK的步骤

《Mac系统下卸载JAVA和JDK的步骤》JDK是Java语言的软件开发工具包,它提供了开发和运行Java应用程序所需的工具、库和资源,:本文主要介绍Mac系统下卸载JAVA和JDK的相关资料,需... 目录1. 卸载系统自带的 Java 版本检查当前 Java 版本通过命令卸载系统 Java2. 卸载自定

基于Linux的ffmpeg python的关键帧抽取

《基于Linux的ffmpegpython的关键帧抽取》本文主要介绍了基于Linux的ffmpegpython的关键帧抽取,实现以按帧或时间间隔抽取关键帧,文中通过示例代码介绍的非常详细,对大家的学... 目录1.FFmpeg的环境配置1) 创建一个虚拟环境envjavascript2) ffmpeg-py

Linux脚本(shell)的使用方式

《Linux脚本(shell)的使用方式》:本文主要介绍Linux脚本(shell)的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述语法详解数学运算表达式Shell变量变量分类环境变量Shell内部变量自定义变量:定义、赋值自定义变量:引用、修改、删

Linux链表操作方式

《Linux链表操作方式》:本文主要介绍Linux链表操作方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、链表基础概念与内核链表优势二、内核链表结构与宏解析三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势六、典型应用场景七、调试技巧与

基于Python实现一个简单的题库与在线考试系统

《基于Python实现一个简单的题库与在线考试系统》在当今信息化教育时代,在线学习与考试系统已成为教育技术领域的重要组成部分,本文就来介绍一下如何使用Python和PyQt5框架开发一个名为白泽题库系... 目录概述功能特点界面展示系统架构设计类结构图Excel题库填写格式模板题库题目填写格式表核心数据结构

详解Linux中常见环境变量的特点与设置

《详解Linux中常见环境变量的特点与设置》环境变量是操作系统和用户设置的一些动态键值对,为运行的程序提供配置信息,理解环境变量对于系统管理、软件开发都很重要,下面小编就为大家详细介绍一下吧... 目录前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变

Linux系统中的firewall-offline-cmd详解(收藏版)

《Linux系统中的firewall-offline-cmd详解(收藏版)》firewall-offline-cmd是firewalld的一个命令行工具,专门设计用于在没有运行firewalld服务的... 目录主要用途基本语法选项1. 状态管理2. 区域管理3. 服务管理4. 端口管理5. ICMP 阻断

Linux实现线程同步的多种方式汇总

《Linux实现线程同步的多种方式汇总》本文详细介绍了Linux下线程同步的多种方法,包括互斥锁、自旋锁、信号量以及它们的使用示例,通过这些同步机制,可以解决线程安全问题,防止资源竞争导致的错误,示例... 目录什么是线程同步?一、互斥锁(单人洗手间规则)适用场景:特点:二、条件变量(咖啡厅取餐系统)工作流

Linux中修改Apache HTTP Server(httpd)默认端口的完整指南

《Linux中修改ApacheHTTPServer(httpd)默认端口的完整指南》ApacheHTTPServer(简称httpd)是Linux系统中最常用的Web服务器之一,本文将详细介绍如何... 目录一、修改 httpd 默认端口的步骤1. 查找 httpd 配置文件路径2. 编辑配置文件3. 保存

Linux使用scp进行远程目录文件复制的详细步骤和示例

《Linux使用scp进行远程目录文件复制的详细步骤和示例》在Linux系统中,scp(安全复制协议)是一个使用SSH(安全外壳协议)进行文件和目录安全传输的命令,它允许在远程主机之间复制文件和目录,... 目录1. 什么是scp?2. 语法3. 示例示例 1: 复制本地目录到远程主机示例 2: 复制远程主