联系
我们
投稿
反馈
评论 返回
顶部

内容字号: 默认 大号超大号

段落设置: 段首缩进取消段首缩进

字体设置:切换到微软雅黑切换到宋体

Linux和Android系统5大对比 你选择哪一个

2018-07-31 11:49 出处:互联网 人气: 评论(
mc利哥 冥婚鬼王选妃 ほしのみゆ anohana 白季晴是谁演的 soe-651 红河谷快乐王国 www.hkdiyijing.com 虐殇钻石公主 mc赵小磊照片 武藤兰子 白鸟圣子

如果你的下一个应用会部署在一个32位或64位处理器和TCP/IP网络的设备上,那么现在正是好机会,因为你已经考虑选择Linux或者Android作为你的嵌入式操作系统。将原有实时操作系统和嵌入式内核相比较,无论是Android还是Linux都是成熟的企业/桌面级操作系统。它们都能运行现成的中间件和打包应用程序,即便是在专门的嵌入式和移动应用环境中。然而,这两个开源的操作系统从软件堆栈的底层到顶层的开发、集成和托管方式都不一样,而这些都影响着如何以及在何处找到最好的部署方案。

本文将会整理出在选择小绿机器人或矮胖企鹅时要考虑的决定因素。特别地,本文关注的是为何在不同的使用场景下需要不同的开发方法,为何是使用这个操作系统而不是另一个,为何有些应用程序只需使用一个操作系统,而有时候却同时需要这两个操作系统。

接下来的内容部分代表了一个经典的“思想运动”,但实际上这个讨论源于一系列围绕以能源管理,IVI(汽车信息娱乐系统),网络和智能显示设备为前提的项目目标的对话和产品设计的辩论。

Linux和Android系统5大对比 你选择哪一个

Linux和Android系统5大对比 你选择哪一个

开放盒子还是封闭盒子?

绝大多数的原有嵌入式系统都是非常封闭的实体。即使选中的实时操作系统支持标准的API(典型的如POSIX线程和/或BSDlite 网络的子集),为那些嵌入式平台精心定制或托管在那些平台上的应用程序也还都是高度定制的。它们也仍然是唯一的在整个生命周期中运行在那些系统的软件。相比之下,那些部署在智能手机、平板电脑和其他越来越多的现代智能设备上的软件已经更像桌面**务器系统软件了。由于有了越来越多的现代设备,原始设备制造商、运营商和终端用户已经可以在设备的整个使用过程中安装新应用程序包了。固件和系统软件也已能在不依靠特殊的工作台软件或工厂式RMA(翻修)程序的情况下完成升级。

在创造一个智能手机操作系统时,Google将Android定位为一个开放的、现场可升级的应用程序平台,这个移动操作系统的核心思想是随时能够运行应用程序包。因此,为了创建,销售和部署打包应用程序,围绕着Android平台生态环境的优化首先是通过Google Play应用商店进行的。

嵌入式Linux系统也存在着和Android应用程序平台同样的情况,但从实践的角度来看,它更适合一次性部署在封闭盒应用中。确实如此,Linux上的编程存在着更多被认可的编程方法,比如C,C++,Java,Ruby,Python,Lua等等,但却不存在一个为构建、发布和安装应用程序的单一模型,也不存在一个跟Android一样的支持(如果不确定)互操作性的硬件抽象模型。相反,存在着多种特定的方法(如包管理,apt-get等方法)和工作在不同内核体系架构树(Kernel Tree)中的普通/最佳实践。

由于这些务实的原因,Linux有点更适合于封闭或半封闭的嵌入式应用程序。如果不需要广泛的互操作性,也不用考虑是否会破坏API和打包应用程序,原始设备制造商(OEM)就可以从约束中解脱;这还能让他们从为设备的硬件和软件需求专门做定制和适配Linux的工作中解脱。若当一个生态系统围绕单一设备演变(就好像发生在Raspberry Pi和Python上),Linux的例子总能打破封闭盒子策略,就好像使用了Dalvik虚拟机和亲睐于Java的Android一样。

有一点需要注意,不要把开放盒子和封闭盒子的问题与开源和不开源的问题混淆。Linux内核和GNU/Linux操作系统远比Android更开源。维护和升级Linux的社区是真正的精英管理的社区,它对各种来源的资源都开放。相比之下,Android是Google和它的顶级合作伙伴OHA可以发号施令和掌控平台发展路线图的私人俱乐部,它只接受了外界组织的最小输入。

你是想预算还是省点钱?

和开放/闭合盒子有关的问题是资源丰富与否的问题。有一个极端资源不足的例子是说只有一个网络接口的大块头的设备,而一个极端资源丰富的设计则需要一个显示器、键盘、定点设备或触摸屏,一个健壮的内存和存储器部件等。世界上最真实的设计则是介于这两者之间。

鉴于其智能手机的遗产,Android适用于拥有丰富接口的消费电子类应用程序。在盒子之外,Android协议栈支持手持和平板类型的配置,而且它正越来越多地被部署在DTV,机顶盒,IVI系统和其他用户界面密集型系统上。因此,没有多少令人信服的理由去说服人们在无外设的系统上使用Android系统。

相反,Linux能够支持的硬件配置和外围设备范围非常广泛而且丰富,它还可以根据需要被裁减为一个只拥有内存、存储器等的极度精简的系统。若没有几百MB甚至GB的DRAM或更多的Flash空间(对于操作系统和应用程序),是无法将Android部署在这样的系统之上的,但你可能只需要几十MB的存储空间就能部署一个简约型嵌入式Linux系统(天啊,我从未想到过我会认为Linux是那么的小!)。在为精简硬件配置挑选系统时,另一个不投票给Android的原因是Android是CPU/GPU密集型的系统。

所以,如果你的设计是想通过部署一个低端CPU,不使用GPU,并且最小化内存和存储器来达到降低成本的目的,那么Linux是一个更合适的选择。如果你有很多钱拿来“烧” -- 这些年,硅的价格只要几美元了,但显示器和输入硬件则很可能是需要几万美元的,那么这时候Android会更适合你。

本地显示还是自带设备(BYO)?

在上个月的RTC杂志上,我写了一篇为无外设系统挑选可用设备作为显示服务器的文章。在文中我强调了本地无外设系统设计是如何利用在附近或远程的基于浏览器显示设备的,包括智能手机、数字电视等。在Android和Linux中选择其一的前提下,需要一个本地的还是远程的显示器是另一个决定因素。若你的设备需要一个近距离的身体上接触的显示,那么拥有一个集成用户接口(UI)的Android是一个不错的选择。但如果用户主要是想在远处通过浏览器或专用的智能手机和平板电脑应用程序来与设备交互,那么你可以通过支持使用嵌入式Linux来托管Apache服务或几个小Web服务器**务器端的编程范例(PHP,Python,C等)达到省掉Android系统的开销的目的。

当然,你可以根据需要同时配置Android和Linux来支持本地显示、网络接口或移动应用程序。两个操作系统都支持丰富的用户接口,而且都很容易被部署为Web服务器。但现成的Android应用程序只能运行和显示在一个Android原生显示设备上,而使用GTK+或Qt创建的Linux原生应用则要求一个本地显示器或一个可用的远程X服务器。

选择Java或C/C++,还是LAMP?
分享给小伙伴们:
本文标签:

更多文章

相关文章

  • 蛮便宜
  • 抠门网
  • Copyright © 2002-2014 版权所有