您还未登录! 登录 | 注册 | 帮助  

您的位置: 首页 > 软件开发专栏 > 系统/运维 > 正文

浅淡嵌入式系统中使用Linux

发表于:2020-06-15 作者:布加迪编译 来源:51cto

浅淡嵌入式系统中使用Linux

Linux是嵌入式系统中广泛使用的操作系统,它用于手机、电视机、机顶盒、汽车控制台和智能家居设备等。不过就因为它用途广泛并不意味着一定适合您。本文概述何时以及为何将Linux用作适合嵌入式系统的操作系统。

1. Linux免版税

由于Linux免版税,因此吸引很多人。要明确的是,还有与使用它有关的其他成本。Linux不是安装后不用操心的操作系统,它需要关注。其他专有的操作系统一样,不过区别在于,如果是专有操作系​相比,您掏钱请供应商予以关注。

这就像汽车的“实际拥有成本”。有些人看了标价后以为这就是汽车的成本。但是实际成本包括油费、保险费、维护费和维修费。对于操作系统而言,成本包括每个席位的许可费、创建驱动程序的成本、修复错误的成本以及请开发人员针对特定设备开发应用程序的成本。使用供应商可能会招致所有这些成本。除了许可费外,Linux可以省下很多钱。

2. Linux开源

Linux是开源的,可让您全权控制产品开发。换成专有操作系统,如果有重要的错误需要修复,您与供应商合作以修复错误。然而,供应商的优先事项常常与您的优先事项不完全一致。您临近截止日期对供应商而言可能不那么重要,您在对方何时解决问题方面的控制权也很小。另一方面,如果是Linux,要做的就是雇用一些内核开发人员来解决该问题。

除了对自己的日程安排有更大的控制权外,开源的Linux使你可以利用他人的工作成果。多年前,我供职于一家制造NAS设备的公司。我们有约15名开发人员,我们的团队开发了一款很出色的操作系统,有大量出色的功能。但随着时间的流逝,Linux在某些功能上赶上了我们,然后在一些方面超越了我们。我们的团队即使只关注公司关心的功能,也跟不上开源社区成千上万人的步伐。

3. Linux可满足要求

Linux支持几乎任何人都想要的所有编程语言、库、服务和工具,即使对于嵌入式系统也是如此。如果您想使用Python、php、C、C++、.Net、Ada、Per、Go或Java,Linux可满足要求。如果您需要Web服务器,Linux可满足要求。如果您需要通过USB与设备通信或创建USB设备,Linux可满足要求。如果您需要图形化工具箱,Linux可满足要求。

如果使用Linux,您并不仅限于某些工具和服务。

4. Linux支持硬件

Linux很有可能已经支持您的硬件平台。如果您针对SoC、SoM或另一种常见的嵌入式平台进行开发,Linux很可能支持它。Linux支持ARM、PowerPC和MIPS,当然还支持X86等。

当然,如果您有定制硬件,Linux可能不支持该硬件,但是您可以随意开发支持该硬件的Linux驱动程序,而且与借助操作系统供应商相比,您能够以极快的速度创建驱动程序。

5. 开发人员熟知

由于Linux问世已有多年,许多开发人员已经熟悉它。如果您将Linux用于嵌入式系统,很容易雇用或联系已经熟悉Linux的开发人员。您不需要花时间让开发人员完成学习过程以熟悉该系统。

这些开发人员可能还拥有解决他们过去项目中类似问题方面的经验。他们会说:“哦,我在某家公司工作时,我们这样解决了这个问题。”

6. Linux备受关注

Linux被很多人使用,源代码被很多开发人员查看。许多错误已经解决掉。发现错误后,它们往往会在几天内迅速得到修复。如果您使用比较流行的硬件平台——许多人关注和开发该代码库,尤其如此。

7. Linux使用标准

Linux符合许多标准:POSIX、BSD、SVr4和FHS等。这意味着您不会被Linux锁定。如果由于某种原因您觉得另一种选择更适合,迁移应用程序会容易得多,因为它们会使用标准接口。

Linux对于许多嵌入式系统很有用。然而,对于使用低端硬件的嵌入式系统而言,Linux并非总是最佳选择。如果硬件平台性能低下,使用调度程序运行多项任务,可能无法很好地运行Linux。

总而言之,虽然Linux并非对每个嵌入式平台都尽善尽美,但对于众多嵌入式系统来说是不错的选择,它的确已经用于许多嵌入式平台中。

原文标题:An Introduction to Using Linux in Embedded Systems,作者:John Bonesio