Vxworks和Linux系统这2者的区别是啥呢?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vxworks和Linux系统这2者的区别是啥呢?相关的知识,希望对你有一定的参考价值。
1.VxWorks 是美国 Wind River System 公司( 以下简称风河 公司 ,即 WRS 公司)推出的一个实时操作系统。Tornado 是WRS 公司推出的一套实时操作系统开发环境,类似Microsoft Visual C,但是提供了更丰富的调试、仿真环境和工具。嵌入式Vxworks系统的主要应用领域主要有以下几方面: 1.数据网络:如:以太网交换机、路由器、远程接入服务器等 2.远程通讯:如:电信用的专用分组交换机和自动呼叫分配器,蜂窝电话系统等 3.医疗设备:如:放射理疗设备 4.消费电子:如:个人数字助理等 5.交通运输:如:导航系统、高速火车控制系统等 6.工业:如:机器人 7.航空航天:如:卫星跟踪系统 8.多媒体:如:电视会议设备 9.计算机外围设备:如:X终端、I/O 系统等 总之,VxWorks的系统结构是一个相当小的微内核的层次结构。内核仅提供多任务环境、进程间通信和同步功能。这些功能模块足够支持VxWorks在较高层次所提供的丰富的性能的要求。
2.Linux是一类Unix计算机操作系统的统称。Linux操作系统的内核的名字也是“Linux”。Linux操作系统也是自由软件和开放源代码发展中最著名的例子。严格来讲,Linux这个词本身只表示Linux内核,但在实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。Linux得名于计算机业余爱好者Linus Torvalds。
Linux的应用
过去,Linux主要被用作服务器的操作系统,因为它的廉价、灵活性及Unix背景。传统上,以Linux为基础的“LAMP(Linux, Apache, mysql, Perl/php/Python的组合)”技术,除了已在开发者群体中广泛流行,它亦是现时提供网站服务供应商最常使用的平台。 基于其低廉成本与高度可设置性,Linux常常被应用于嵌入式系统,例如机顶盒、移动电话及移动装置等。在移动电话上,Linux已经成为Symbian OS的主要竞争者;而在移动装置上,则成为Windows CE与Palm OS外之另一个选择。目前流行的TiVo数码摄影机使用了经过客制化后的Linux。此外,有不少硬件式的网络防火墙及路由器,例如部份LinkSys的产品,其内部都是使用Linux来驱动、并采用了操作系统提供的防火墙及路由功能。 采用Linux的超级电脑亦愈来愈多,根据2008年11月的TOP500超级电脑列表,现时世上最快速的超级电脑使用Linux作为其操作系统。而在表列的500套系统里,采用Linux为操作系统的,占了439组(即87.8%)。 2006年开始发售的SONY PlayStation 3亦可使用Linux的操作系统,它有一个能使其成为一个桌面系统的Yellow Dog Linux。之前,Sony亦曾为他们的PlayStation 2推出过一套名为PS2 Linux的DIY组件。Ubuntu自9.04版本,恢复了PPC支持(包括PlayStation 3)。 而随着OLPC的XO-1,华硕的Eee PC等低价电脑的推行,许多人乐观的认为在低端PC市场,linux的市场占有率正在快速的增长。但在Windows进入此一市场后,Linux的市占率快速下滑。现在Windows系统在所有的PC市场中,都占有绝对优势。 参考技术A 于嵌入式领域的操作系统,其功能跟PC上的windows xp之类的作用类似,均是为了方便管理硬件和软件而使用的。
而ARM,是一家公司的名称,也是一大类型微控制器/微处理器的统称(均是以ARM公司提供的CPU核为基础开发)。在ARM之外,还有MIPS,PowerPC等几种类型的CPU用在嵌入式领域,你可以把它们看作是PC平台的CPU,只是它们的使用领域不是桌面电脑而已,并集成了很多功能模块。
所以你的问题的回答:
1,有脱离ARM的,比如说在MIPS上开发做产品,也是属于嵌入式,嵌入式LINUX可以移植到MIPS上;WINCE和VXWORKS也是一样。为什么我们听说ARM会比较多,那是因为它的推广工作做得好,价格功耗有优势,国际上的知名的半导体大厂都有使用了ARM内核的产品,所以可以说是百花齐放的一个程度。
2,嵌入式开发基本上使用C,也可以用C++但很少用。在涉及到底层(硬件)部分,有需要用到少量的汇编(当然汇编格式与所使用的CPU类型有关).
3,在这个问题里,ARM是一个CPU,一个产品除了CPU外,还有别的部件,比如说温度传感器,各种通讯接口,这些都是硬件的东西,是实实在在的芯片构成的。假如这个产品不复杂,但又用了ARM,一样可以不使用操作系统,直接用普通写法的程序去控制硬件(业内通俗说法叫:裸奔);但是当这个产品的功能很复杂,又用了以太网,又用了界面,又用了很多高级的硬件,比如说智能手机,那么它就需要一个嵌入式的操作系统去控制手机,这样对于手机来说,产品的开发速度会加快,而且维护也相对容易,改进时的修改工作量也较少。你在市面上见到的大部分智能手机都是基于WINDOWS MOBILE系统的,当然NOKIA的SYMBIAN也属于嵌入式操作系统,只是其是专用于手机,还有少部分的智能手机比如MOTO的部分智能手机就是用的嵌入式LINUX的系统。
所以,对于一个较复杂的产品,工程师是各司其职,有专门负责硬件电路部分的,有专门去修改操作系统的驱动的,有专门去编写上层的应用软件的,这样就有了嵌入式硬件工程师,嵌入式软件工程师之分了,很多中小公司很多工作都是一人做完的,所以分类就不是那么细了。
4,这个问题3中已经回答了一部分,跑上操作系统的,基本上都是你说的那样划分的,因为每一部分的工作都比较复杂,所以最好专人负责各自的部分,这样项目进度才能保证.
其实你问的这些,书上网上都有的,搜一搜就有了~~~~ 参考技术B VxWorks:
应用场景:实时操作系统,表现在强实时性和可靠性。对实时性的表述应是在规定的时间完成规定的任务,体现实时性的指标有任务切换时间,任务抢占时间,中断响应时间等。
内核结构:微内核 运行模式:实模式 任务管理:进程即线程 任务调度:•主调度器和周期性调度器 • 实时调度类
Linux:
应用场景:可交互的通用型OS,会注重用户的交互体验 内核结构:宏内核 运行模式:保护模式,区分用户地址空间和内核地址空间 任务管理:进程,线程,内核线程 任务调度:• 主调度器和周期调度器 •五个调度类,stop, dl, rt, cfs, idle •调度组,调度域(SMP),负载均衡• 主调度器和周期调度器 更多Linux相关知识可查看《Linux 就跟这么学》。 参考技术C VxWorks主要应用于电信级别的数通等产品,而linux主要应用于消费类、工控产品等。
VxWorks操作系统没有分开内核空间和用户空间,设备驱动和应用都运行于同一空间,相互之间的内存都可以访问,数据交换非常方便,但是这种结构的稳定性就不如linux系统好,两种操作系统都提供了很多设备驱动的资源和模板。但是由于linux的开源特性,它提供的设备驱动的种类和数量远远超过了VxWorks.更多Linux介绍请查看《Linux就该这么学》。
HBase是啥呢,有哪些特点呢?
HBase是什么呢,都有哪些特点呢?
参考技术AHbase是一种NoSQL数据库,这意味着它不像传统的RDBMS数据库那样支持SQL作为查询语言。Hbase是一种分布式存储的数据库,技术上来讲,它更像是分布式存储而不是分布式数据库,它缺少很多RDBMS系统的特性,比如列类型,辅助索引,触发器,和高级查询语言等待
那Hbase有什么特性呢?如下:
强读写一致,但是不是“最终一致性”的数据存储,这使得它非常适合高速的计算聚合
自动分片,通过Region分散在集群中,当行数增长的时候,Region也会自动的切分和再分配
自动的故障转移
Hadoop/HDFS集成,和HDFS开箱即用,不用太麻烦的衔接
丰富的“简洁,高效”API,Thrift/REST API,Java API
块缓存,布隆过滤器,可以高效的列查询优化
操作管理,Hbase提供了内置的web界面来操作,还可以监控JMX指标
什么时候用Hbase?
Hbase不适合解决所有的问题:
首先数据库量要足够多,如果有十亿及百亿行数据,那么Hbase是一个很好的选项,如果只有几百万行甚至不到的数据量,RDBMS是一个很好的选择。因为数据量小的话,真正能工作的机器量少,剩余的机器都处于空闲的状态
其次,如果你不需要辅助索引,静态类型的列,事务等特性,一个已经用RDBMS的系统想要切换到Hbase,则需要重新设计系统。
最后,保证硬件资源足够,每个HDFS集群在少于5个节点的时候,都不能表现的很好。因为HDFS默认的复制数量是3,再加上一个NameNode。
Hbase在单机环境也能运行,但是请在开发环境的时候使用。
内部应用
存储业务数据:车辆GPS信息,司机点位信息,用户操作信息,设备访问信息。。。
存储日志数据:架构监控数据(登录日志,中间件访问日志,推送日志,短信邮件发送记录。。。),业务操作日志信息
存储业务附件:UDFS系统存储图像,视频,文档等附件信息
不过在公司使用的时候,一般不使用原生的Hbase API,使用原生的API会导致访问不可监控,影响系统稳定性,以致于版本升级的不可控。
HFile
HFile是Hbase在HDFS中存储数据的格式,它包含多层的索引,这样在Hbase检索数据的时候就不用完全的加载整个文件。索引的大小(keys的大小,数据量的大小)影响block的大小,在大数据集的情况下,block的大小设置为每个RegionServer 1GB也是常见的。
探讨数据库的数据存储方式,其实就是探讨数据如何在磁盘上进行有效的组织。因为我们通常以如何高效读取和消费数据为目的,而不是数据存储本身。
Hfile生成方式
起初,HFile中并没有任何Block,数据还存在于MemStore中。
Flush发生时,创建HFile Writer,第一个空的Data Block出现,初始化后的Data Block中为Header部分预留了空间,Header部分用来存放一个Data Block的元数据信息。
而后,位于MemStore中的KeyValues被一个个append到位于内存中的第一个Data Block中:
注:如果配置了Data Block Encoding,则会在Append KeyValue的时候进行同步编码,编码后的数据不再是单纯的KeyValue模式。Data Block Encoding是HBase为了降低KeyValue结构性膨胀而提供的内部编码机制。
以上是关于Vxworks和Linux系统这2者的区别是啥呢?的主要内容,如果未能解决你的问题,请参考以下文章