现在我确信我们都很清楚Linux与Windows桌面的相对优点。但是,我对嵌入式开发世界的了解却少得多。我主要对行业解决方案感兴趣,因此对iPhone或Android不感兴趣,对这两个操作系统更感兴趣。
嵌入式世界中两个平台之间的相对权衡是什么?如果您正在考虑使用自定义硬件,部分自定义操作系统和自定义应用程序为特定项目构建一个框,那么您会选择哪个以及为什么?
我认为Windows CE赢得了工具,Linux在成本和性能方面都获胜。然而,这只是一种猜测。有没有人对这两者有任何事实或经验?
答案 0 :(得分:46)
我在一家为所有硬件提供CE和Linux的公司工作了几年,所以我对这个等式的两个方面都非常熟悉。
这是否意味着CE每次都获胜?不,我根本不会建议。如果你是一个Linux商店,并且你拥有大量的Linux经验和代码资产,那么用完CE就是愚蠢的。但是,如果您从头开始进入CE,通常会降低TCO。具有Win32 / C#经验的开发人员更为普遍,因此成本更低。与大多数其他发行版相比,你在CE中获得了更多的“框内”,这意味着如果你还没有在内部完成这些工作,那么上市时间会更快。
答案 1 :(得分:26)
我会代表Linux方面,至少对于我熟悉的软件类别(RF数据采集设备)。或工业应用与消费者应用。
Windows CE(及其相关工具)IMH相当近期E)强烈反对在小屏幕上创建“Windows体验”。用户输入模式强调类似鼠标的动作。登录,应用程序选择等都尽可能与标准Windows类似。
如果用户正在驾驶叉车,或填充拣货车,或将物料从一个地方移动到另一个地方,则会出现问题。
这是一个移动目标 - 特别是在.NET方面。 Compact .NET运行时非常缺陷,重要的库(如网络,数据处理和UI)不完整,版本也经常弃用以前的版本。 。 CE似乎是Windows系列中的继子(可能因为没有大量的竞争对手向硬件集成商销售。)
一个漂亮稳定的行列式Linux控制台对于许多(根据我的经验)大多数高亮度屏幕上的高使用率应用程序而言非常方便。
对于手机或Zune上的游戏来说并不是很好。
注:
我认为ctacke可能会准确地说出硬件集成商的一面。我更加关注管道中的玩家 - 软件集成商和用户。
答案 2 :(得分:21)
答案 3 :(得分:13)
我参与了涉及定制OEM板软件的项目,我不会说Linux更便宜。购买电路板时,您还需要购买SDK。你仍然需要支付Linux版本。一些制造商为其主板提供Windows CE和Linux解决方案,并且没有价格差异。对于Windows CE,您还需要Platform Builder并支付许可费用,但没有支持就更容易。
另一个重要问题是如果您正在构建用户界面或无头设备。对于需要LCD屏幕和人机交互的设备,使用Windows CE更容易。另一方面,如果您正在构建无头设备,Linux可能是一个更健全的选择 - 特别是如果涉及网络协议。我相信Linux实现更可靠,更容易调整。
答案 4 :(得分:8)
使用Linux,您永远不会拥有,并且您永远不会依赖单个实体来提供权限。有许多支持选项,您可以通过许多竞争来源自由选择系统任何部分的支持选项。
使用Windows CE,您必须遵守必须同意的复杂许可协议中规定的许可和限制。找个律师。使用Windows CE,您只有一个专有的操作系统支持源,您将只在他们认为合适的情况下继续支持并提供您所需的内容。你可能不同意他们的立场,但不会有任何追索权,只能屈服于他们的处方。增量组件,模块,开发套件,许可和支持的成本往往会与专有平台堆积在一起。从长远来看,当供应商不再希望支持该平台并且您无权自行支持和分发平台时会发生什么?当供应商采用新技术并希望您随身携带时会发生什么情况,即使您可能还没准备好采取行动? $$$
我们对Windows解决方案的一般体验是,随着时间的推移,它们往往会变得更加昂贵。最初被认为是最低TCO的东西很快就会受到影响,并且解决方案会受到阻碍,并且需要维护和支持。许可证必须经过一段时间的重新协商,并且为了满足业务需求,新的技术(通常是不需要的)会被提供者一时兴起。最重要的是,许可协议正在不断变化 - 请找律师。
借助Linux,您可以自由地提供内部支持和专业知识,而无需根据需要分发解决方案。您还可以自由地继续使用和支持原始提供商不再支持的技术。拥有源代码和RIGHTs可以满足您的需求(GPL,LGPL)是一个强大的吸引力,它涉及业务连续性和控制成本,同时提供对最适合您需求的最新技术或技术的访问。
答案 5 :(得分:7)
我开发了可在RT Linux上运行的网络驱动程序(更具体地说,是带有RT补丁的Linux抢占式内核)和Windows CE。我的经验是Windows CE在实时响应方面更稳定。帧时序还表明Windows CE具有较少的抖动。
在RT Linux上,我们遇到了各种各样的问题。例如,当用户移动鼠标时;我们的帧被推迟了。猜猜看,x-windows的某些变种会禁用中断。您可能还会觉得在控制台屏幕上更安全。如果启用了VGA帧缓冲区,则会再次注定失败。我们在抖动方面只有一个问题。当USB控制器在BIOS中设置为错误模式且Windows CE使用大量时间进行轮询时,问题就出现了。
说实话,Windows CE有更多的支持。在Linux上,你是独立的。您必须阅读每个可能的邮件列表,以了解您可能遇到的问题。
答案 6 :(得分:5)
部分定制的操作系统
如果操作系统是开源的(并且您具备专业知识),则更容易实现。
答案 7 :(得分:2)
对于某些嵌入式系统来说,Android是一个不错的选择。(它是基于Linux的)
您有许多能够在此系统上开发的专家。
您可以访问java或C中的许多库。
但它耗费了大量的记忆力和能量。
我们经常忘记使用付费/许可软件是您必须处理许可证。这需要时间和精力!然后你必须跟踪你是否正确支付。它涉及许多具有不同技能的不同人,并且决定成本。
这项费用通常不包括在显示开源/免费比付费软件更贵的研究中。
使用“免费软件”可以更轻松地处理许可证,并且您可以花更少的时间来处理这些问题。我个人更愿意每次更换某些软件时避免与您的法律/融资团队进行不必要的沟通。