Android系统为何不流畅?QNX道破玄机

来源:互联网 发布:祛斑精华知乎 编辑:程序博客网 时间:2024/03/28 19:24

 【IT168评论】说到操作系统,大家可能不会陌生,在桌面操作系统中经常听到Windows,还有不常见的Linux,在嵌入式领域经常听到WinCE、VxWorks,在智能终端领域我们更多的是听到iOS、Android、windows phone等等,今天给大家介绍一个微内核架构、能够真正支持多核处理的操作系统—QNX。

  通常我们更关心操作系统的性能和可靠性,通常对于可靠性要求很高时往往会降低性能,而对于性能要求很高时往往会损失可靠性,这两者的博弈是始终存在的,如何才能够让性能和可靠性都得到不同程度的提升呢?这正是QNX对于大家的价值关键在于两个地方。第一个是可靠性,凡是在需要有可靠性的地方都会有QNX的影子。第二个特点非常好的适时性能,提供最好的操作系统性能。

  解读QNX微内核架构

  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做的,其他的都可以由用户来实现,给大家一个想象的空间。

  

  ▲QNX微内核架构

  大家深有体会,在Windows XP3之前经常会有系统的崩溃,现在的windows 系统已经完善很多了,不至于每天都有系统崩溃发生。系统之所以经常发生崩溃,是因为windows 系统有自己的内核,而且要比QNX的内核大一圈,为了追求效率把一些协议和驱动都放在内核空间中。但是追求效率的内核会有很大的问题,内核的驱动、文件系统和很多的协议不是微软自己开发的,因此当微软让第三方的开发商进入内核开发的时候,第三方提供的程序会出问题,并不仅仅是微软的代码出了问题导致系统崩溃,任何第三方厂商提供的代码出了问题都会导致系统崩溃。这些都采用的是宏内核,在提升效率的同时牺牲了系统的可靠性。


  QNX如何做到保证可靠性的同时又能保证性能呢?

  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开发是相当简单的。

  最重要的一点就是,QNX能够保证所有代码的知识产品,因此国内的厂商要想走出国门,那么应该重视知识产权方面,而QNX能够保证知识产权。

原创粉丝点击