QNX、Linux、Android、wince各有什么优劣?

简介: QNX、Linux、Android、wince各有什么优劣?

QNX、Linux、Android、wince各有什么优劣?

QNX是一个微内核实时操作系统,QNX核心非常小,运行速度极快,是全球第一款通过ISO 26262 ASIL levelD安全认证的车载操作系统,已经应用在包括法拉利、劳斯莱斯、布加迪、宝马、奥迪、奔驰等超过40个品牌的6,000多万辆汽车中。QNX特点是稳定性和安全性非常高,实时性也比较好,在数字仪表市场有非常高的占有率,但缺点是兼容性较差,在娱乐系统开发中应用不多,主要是开放性不够,应用生态缺乏。

Linux车载和娱乐系统都有应用,但是占用比较少,优点是免费,缺点是应用生态缺乏,各家车载linux系统不兼容。由Linux基金会赞助的Automotive Grade Linux(AGL)操作系统定于2018年进入凯美瑞汽车,后者定于今年夏季晚些时候上市。AGL同样是一套开源的操作系统,今年初全部源码(3.0)版本开放,丰田已经率先基于此设计出了车载娱乐信息系统(IVI)

Android:是目前为止基于LinuxKernel开发的最成功的操作系统,全球智能手机市场占有率超过80%。Android系统最大的优势在于兼容性,以及无数与之相匹配的应用。擎OS是基于Anddroid系统开发的车载系统,在稳定性和安全性方面做了很大努力,非常好的满足智能网联终端系统的各项要求。

WindowsCE:是微软1996年发布的嵌入式操作系统。由于PC时代Windows称霸很多年,应用开发便利,同时提供大量的开发包(Kits)和调试工具(DebugTools),所以WinCE是当时最火的车载操作系统。但随着Linux和Android的冲击,微软在智能手机领域节节败退,已经退出了嵌入式操作系统市场,WinCE 7.0也将停止更新。

啥是微内核

QNX系统如何做到性能和可靠性的平衡呢?答案是微内核。QNX是世界上第一个发明微内核适时操作系统的公司,甚至比微软和Wind River的Vxworks还要早,在操作系统的历史上是令人惊讶的。QNX创始人在30年前就预示到微内核构架将会在操作系统的演进中起到非常重要的作用。

大家在用到iphone和ipad的时候最初的感觉是很快,很流畅,因此有些用户甚至感慨,当自己第一次摸到iphone和ipad的时候就深深的爱上它了,因为性能实在是太好了。当然现在也有很多的Android设备在市场上热销,但是把Android设备和iphone以及ipad比较时你会发现,Android的设备在性能和稳定性上确实和iphone以及ipad有些差距,其实这种体验上的差距并不是在硬件或者应用软件上面,尽管Google花了大量的力气去改善,但是最根本的是在内核的构架上有问题,有很多时候架构往往决定着产品会有什么样的性能。

与iphone和ipad一样,QNX同样采用的是微内核的构架,而且比iphone和ipad的微内核还要早20年。在操作系统内部只有一个非常小的内核,如图所示,协议、驱动以及文件系统等等都是在内核之外,内核层完全是由QNX做的,其他的都可以由用户来实现,给大家一个想象的空间。

3d70e766f09bcbe63893b6a114e9838b_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

微内核为啥牛逼

QNX内核在构架上只包含了最少的内核操作组件,把协议栈和驱动都放在了内核之外,使得内核层变得非常小。同时错误只影响其所在的组件,而出现错误的组件能够动态恢复,系统仍然不断运行。

▲代码量对比

QNX微内核仅仅包含最小数量的具有CPU特权的代码,而且代码更容易进行检查和分析,同时在产品到达客户之前有问题的行为会被发现和消除,从而有极低的系统失败风险。那么QNX的内核究竟有多小?给大家一个直观的数据,windows XP超过4000万行代码,Linux超过了1400万行代码,Linux(Android)也已经超过了1200万行代码,WinCE已经接近400万行代码,而QNX仅有10万行代码。QNX软件公司中国南方部销售经理哈骏元打了一个比方,一个作家写一部100万字的著作,即使再怎么精益求精也会有错误出现,一个学生写一篇50字的作文,稍微细则一点肯定不会发生错误,因此这就说明QNX内核能够保证可靠性。

QNX软件公司中国南方部销售经理哈骏元表示,这10万行代码可谓是经过千锤百炼,得到各种行业应用的认证,也获得了全世界最为严格的安全认证,因此QNX敢说自己的操作系统没有BUG,这就是系统的可靠性。

在完成可靠性的同时也保证了很好的实时性,目前在业界用的最为广泛的Linux操作系统,延时响应是1秒钟,对于很多用户来说是可以接受的,但是如果把很多的延时响应叠加在一起还是会影响用户体验的。假如是飞机在天上飞行,有1秒钟中端了系统飞机就会有下坠的感觉,做过飞机的朋友应该都有体会,而乘务员则会说是遇到了气流,其实是系统出了问题。

用户在使用Android平板电脑时会感觉触摸效果不是很好,因为每次触摸都会有1秒钟的延时响应,而QNX的延时是百万分之八秒,因此性能要比Linux内核性能高很多。

▲绚丽的图形功能

现在面临的一个问题是,产品的系统越来越复杂,大家不再满足于一个简单的系统,而是在关注于新的人机界面的创新,每个厂商都希望自己的产品体验能够做到和苹果那样好,而最大的挑战就是图形,苹果创立了人机交互体验新的规范,用先进的图形构架来实现更加完美的人机交互。QNX在不断的进行学习,同时联合自己的合作伙伴提供了和苹果一样体验的图形功能。

QNX在ARM上支持多核对称处理

▲绚丽的图形功能

QNX是世界上第一个用Adobe AIR做平板电脑的厂商,对高清、多任务和3D的支持都很完善,人机交互界面要比iPad更快。在QNX之前,Adobe没有办法完成这个任务,大家在电脑上使用Flash,但是即使电脑有2G赫兹的CPU主频,运行FLASH的效果仍旧比不上iPad上的人机交互效果。

▲QNX在ARM上支持多核对称处理

哈骏元表示:黑莓的Playbook是世界上最快的平板电脑,在多核处理器上实现了对称处理。在1998年世界上才真正有了多核处理器IBM的Power PC,QNX早就预示到了未来多核处理的时代,因此在第一颗多核处理器出来之前就设计了多核对称处理的技术支持。微软在4-5年之前才实现了多核对称处理,风河在3年之前才实现了多核对称处理。

据悉RIM之所以使用QNX系统运行Playbook是因为想在平板中使用ARM双核处理器。而市场上的WinCE、Linux以及Android都没有办法在ARM上支持多核对称处理。

目前市场上已经有了Android的双核对称处理的平板电脑,但是性能相比单核并没有多大的区别,仅仅是花了很多钱买了一个双核处理器装在平板电脑上当单核处理使用,因此Android操作系统本身不支持多核对称处理。QNX能够发挥出多核处理器的性能,目前最多已经能够支持到32-64个核,今年年底将会发布最新的QNX版本,支持128核,因此QNX在多核技术趋势上是相当领先的。

QNX在ARM上支持多核对称处理

▲透明分布式处理

能够达到最大化的系统可扩展性,使不同节点之间的资源共享是无缝的。对于软件访问无论是在本地还是远程都是用相同的源代码。同时单进程系统成为一个分布式的系统,不需要系统的重新设计。

如何快速的应用和开发对于开发商来说是很疑惑的,哈骏元表示:使用QNX系统进行开发非常的快,非常简单,超乎大家的想象。拿黑莓的Playbook举例,这款商用的平板电脑从设计到开发到制再到测试,最后到量产仅仅用了6个多月的时间,而其中的软件系统开发仅仅用了2-3个月时间。据悉,QNX公司在2010年4月份刚刚被RIM收购,收购的时候还没有Playbook的计划,而Playbook的名字也是在2010年6月份才有的,9月份才开始着手研发,今年4月份上市。还有一家开发商,仅仅有5个没有QNX开发经验的工程师,从今年2月份着手开发,到现在已经有了原型机,而且产品会在今年年底上市。因此开发商使用QNX开发是相当简单的。

数风流人物,还看今朝

曾几何时,国产品牌还是“中国制造”,现如今已经悄然变为“中国智造”了,国产品牌现如今在各行各业都取得了辉煌的战果。例如手机行业,Counterpoint的2018年第二季度数据报告就指出国产手机已经占据了全球手机市场44%的市场份额;再比如中国的移动支付,国家互联网信息办公室发布的《数字中国建设发展报告》显示,2017年我国移动支付交易规模超过202万亿,排名全球第一。此外在芯片、车载操作系统等领域都取得了长远进步。

“缺芯少魂”是中国之殇,好在两者都在某些领域取得了一定成就。车载操作系统就是最好的例子,采用国产操作系统Ali OS系统的汽车,截止2018年11月已经超过60万台,这对中国整个互联网汽车行业来说也具有重大意义。

Ali OS是阿里巴巴于2014年基于Linux内核开发的国产汽车操作系统,与Android、QNX(黑莓旗下车载系统)并列为全球三大车载操作系统。众所周知,操作系统长期被国外所垄断,无论是PC操作系统,亦或是手机、平板等移动操作系统都缺乏强有力的国产操作系统。Ali OS能够在极短的时间内与巨头分庭抗礼,我们将从三个维度全面了解Ali OS、Android、QNX三大系统孰优孰劣。

生态层面

Ali OS车载操作系统生态依托于整个阿里系。

今年年初斑马网络在北京发布2017斑马智联网汽车年度数据报告的会上,其CEO施雪松就曾表示,Ali OS的的任务就是打破汽车操作系统的应用孤岛现象,因此Ali OS在汽车操作系统软件上的生态建设不遗余力。Ali OS依托于阿里巴巴强大的软件生态,在电子商务、大文娱、网络支付、导航等软件生态上占有优势。

另外,Ali OS不仅与多家汽车厂商合作,还与壳牌等汽车服务公司合作推出智慧加油服务,在智慧停车领域也与全国5000多个停车场达成合作,因此Ali OS车载操作系统的生态建设十分完善。但是Ali OS也存在一些瑕疵,例如软件数量与类型整体来说较Android少,主要以阿里系的软件为主。

Android车载操作系统算是偏科生,生态丰富主要体现在软件层面。

Android之所以软件生态建设较为全面,主要得益于其在手机操作系统上已经有数量众多的APP,可以直接移植在车载系统之上。而且Android的开发者也占有人数优势,因此其软件生态建设才会相对较为完善。但是汽车操作系统的生态不仅包括软件方面,还包括其它附加服务,例如智慧停车、智慧加油等服务,但是Android在这方面的生态建设还没有较大起色,因此生态并不完善。

QNX车载操作系统生态较为闭塞。

QNX是世界上第一款通过ISO 26262 ASIL级安全认证的车载操作系统,QNX车载操作系统与Ali OS、Android等系统不同,它不是一款开源系统,因此系统生态建设的重担落在黑莓公司与部分授权公司身上,开发者人数的缺乏使QNX车载系统的生态环境愈发闭塞。

用户体验层面

Ali OS的用户体验较优,但也稍有不足。

首先,Ali OS是阿里巴巴专门针对汽车这个特殊的使用场景量身定做的操作系统,主要以语音交互为主,触屏交互为辅,其交互逻辑更加符合汽车驾驶者的使用习惯。

其次,Ali OS更加适应“万物互联”的时代步伐。互联网汽车或智能汽车的一大特征就是能够实现与云、驾驶者、汽车三者互联互通,而Ali OS依托于阿里云,能够实现更强的互联互通,例如Ali OS推出的远程车控功能,能够远程开启后备箱接收快递等等,据悉已经获得了70%的用户支持。

最后,Ali OS车载操作系统的兼容性、稳定性和安全性都较好。Ali OS是基于Linux内核开发的开源系统,虽然支持各厂商定制系统服务,但是应用的开发还是在Ali OS的开发标准和规则内,因此其兼容性不成问题。并且,Ali OS还采用了Fortified内核代码切分加固设计,能够有效提升系统的稳定性与安全性,因此Ali OS车载系统的用户体验较优。

虽然Ali OS在用户体验方面表现最佳,但是也有一些不足。其中,Ali OS与安卓系统太过相似造成的用户审美疲劳,可能是影响Ali OS用户使用体验的最大不足。

Android车载系统的用户体验综合看来有较大的提升空间。

虽然Android对互联网时代的各类互联互通操作支持较好,而且兼容性也较为出色,能够实现手机APP与车载系统APP的互通,但是体验较为一般。原因在于直接从手机系统端移植或魔改到车载系统上的APP在显示效果与运行效果上都不尽人意,以触控为主的操作逻辑也不太适应汽车这个较为特殊的应用场景。

此外,Android并非原生车载系统,是手机系统通过修改的方式移植到汽车端的,因此稳定性和安全性欠佳,最终影响系统的用户体验。

QNX车载系统的用户体验较为上乘,但不是最优。

一方面,QNX车载系统是非开源系统,开发人员无法获取或修改系统底层信息,因此其安全性相对较高;QNX车载系统生态圈不大,应用的开发处于“精耕细作”的模式,因此其系统的稳定性也较好。这些都是用户体验提升的加分项。

另一方面,QNX车载系统的兼容性较差,而且不太适应互联网时代的用户需求,例如网络支付、电子商务等,这也是QNX车载系统用户体验的减分项。

市场层面

Ali OS的市场增长速度较快,但是市场占有率仍然不高。

2017年斑马网络在北京发布斑马智联网汽车年度数据报告显示,截至2017年年底搭载Ali OS的互联网汽车数量已经在40万以上,而2018年11月Ali OS高级产品专家佘士东在媒体沟通会上表示搭载Ali OS的互联网汽车已经突破60万大关,在一年不到的时间内增长了50%以上。

但是将这个成绩放在整个汽车行业来说,就不显得那么出众了。智研咨询网发布《2018-2024年中国汽车市场专项调研及投资方向研究报告》显示,2017年中国全年汽车销量2901.5万辆,而搭载Ali OS的汽车发布两三年来才突破60万辆,市场份额仍然处于劣势。

Android车载系统开源,并且无授权费,对广大中低端汽车具有极大的吸引力,因此近年来其在车载系统领域的市场影响力也越来越强。但是Android车载系统与Ali OS一样,都面临市场份额不足的问题,而且其增长速度还有待提升。

QNX车载系统的市场规模较大大,但是市场份额在不断萎缩。QNX车载系统目前占用60%左右的车载系统市场份额,由于稳定性较好,宝马、奔驰等品牌汽车也在使用QNX车载系统 。但是,由于车联网成为汽车发展主流,QNX的生态、交互方式等都显得较为落后,因此其市场份额正在不断萎缩。

不仅仅只是Ali OS,未来在百度Apollo、腾讯AI IN CAR车载系统带领下,越来越多的国产车载系统都将不断崛起。

=============================================================================

总结:
总结起来QNX 的优点有以下几点:
  1. 系统稳定性高
  2. 图形界面更加绚丽
  3. 真正的支持多核,效率高
缺点:
  1. 生态闭塞,支持的应用较少
  2. 系统闭源
  3. 开发代码量大,成本大
为啥国内的安卓这么流行:
  1. 生态丰富,某个应用支持车载系统,再开发的难度比较小
  2. 系统开源免费
缺点:
  1. 就不提了,都懂

BBA等高级车长依旧在使用QNX系统开发,我这不是没有什么原因。一个更好用户体验提供给更高级的 用户 。

QNX 就会甘愿这样的任其市场萎缩么?我觉得不会,因为它天生就适合干车载,目前市场已经有QNX嫁接安卓的产品存在了,此举会解决生态闭塞的问题。如果有一天QNX 免费了,会是怎样的情景 ?

QNX 这个牛逼的地基又是外国佬的杰作,但是确实是好东西呀。

有同学说安卓也在不断的优化,安卓 9 已经从架构上做了优化,不卡了,但是我觉得有点费硬件,动不动就 4G 6G 的内存…

相关文章
|
1月前
|
Linux 编译器 Android开发
FFmpeg开发笔记(九)Linux交叉编译Android的x265库
在Linux环境下,本文指导如何交叉编译x265的so库以适应Android。首先,需安装cmake和下载android-ndk-r21e。接着,下载x265源码,修改crosscompile.cmake的编译器设置。配置x265源码,使用指定的NDK路径,并在配置界面修改相关选项。随后,修改编译规则,编译并安装x265,调整pc描述文件并更新PKG_CONFIG_PATH。最后,修改FFmpeg配置脚本启用x265支持,编译安装FFmpeg,将生成的so文件导入Android工程,调整gradle配置以确保顺利运行。
106 1
FFmpeg开发笔记(九)Linux交叉编译Android的x265库
|
1月前
|
Unix Linux Shell
FFmpeg开发笔记(八)Linux交叉编译Android的FFmpeg库
在Linux环境下交叉编译Android所需的FFmpeg so库,首先下载`android-ndk-r21e`,然后解压。接着,上传FFmpeg及相关库(如x264、freetype、lame)源码,修改相关sh文件,将`SYSTEM=windows-x86_64`改为`SYSTEM=linux-x86_64`并删除回车符。对x264的configure文件进行修改,然后编译x264。同样编译其他第三方库。设置环境变量`PKG_CONFIG_PATH`,最后在FFmpeg源码目录执行配置、编译和安装命令,生成的so文件复制到App工程指定目录。
69 9
FFmpeg开发笔记(八)Linux交叉编译Android的FFmpeg库
|
1月前
|
Linux Android开发
测试程序之提供ioctl函数应用操作GPIO适用于Linux/Android
测试程序之提供ioctl函数应用操作GPIO适用于Linux/Android
29 0
|
1天前
|
存储 Linux 开发工具
Linux手动升级替换Android Studio
【6月更文挑战第22天】
|
1月前
|
安全 Linux Android开发
FFmpeg开发笔记(十六)Linux交叉编译Android的OpenSSL库
该文介绍了如何在Linux服务器上交叉编译Android的FFmpeg库以支持HTTPS视频播放。首先,从GitHub下载openssl源码,解压后通过编译脚本`build_openssl.sh`生成64位静态库。接着,更新环境变量加载openssl,并编辑FFmpeg配置脚本`config_ffmpeg_openssl.sh`启用openssl支持。然后,编译安装FFmpeg。最后,将编译好的库文件导入App工程的相应目录,修改视频链接为HTTPS,App即可播放HTTPS在线视频。
53 3
FFmpeg开发笔记(十六)Linux交叉编译Android的OpenSSL库
|
1月前
|
存储 Linux Android开发
RK3568 Android/Linux 系统动态更换 U-Boot/Kernel Logo
RK3568 Android/Linux 系统动态更换 U-Boot/Kernel Logo
238 0
|
1月前
|
Linux 开发工具 Android开发
Docker系列(1)安装Linux系统编译Android源码
Docker系列(1)安装Linux系统编译Android源码
51 0
|
1月前
|
Linux 测试技术 Android开发
测试程序之UART 232/485适用于Android/Linux
测试程序之UART 232/485适用于Android/Linux
28 0
|
1月前
|
Linux Shell Android开发
自动化脚本之GPIO/LED相关适用于Android/Linux
自动化脚本之GPIO/LED相关适用于Android/Linux
21 0
|
1月前
|
网络协议 安全 Linux
如何使用Android手机通过JuiceSSH远程访问本地Linux服务器
如何使用Android手机通过JuiceSSH远程访问本地Linux服务器