浅淡嵌入式系统中使用Linux

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

[[330021]]

【51CTO.com快译】

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

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

责任编辑:庞桂玉 来源: 51CTO
相关推荐

2018-05-02 09:18:17

Linux技巧嵌入式

2022-01-03 23:33:40

Linux组件系统

2021-12-19 22:34:45

Linux容器系统

2020-07-03 07:00:00

Linux组件

2017-12-21 10:43:44

Linux嵌入式终端

2011-04-25 10:25:43

OpenEmbedde嵌入式Linux

2011-01-06 15:11:09

嵌入式linux

2011-01-14 13:13:23

嵌入式Linux开发

2021-12-24 17:01:29

Linux工具系统

2009-04-11 15:22:24

Linux 2.6内核应用

2010-01-21 09:15:05

Linux嵌入式文件系

2009-12-09 10:12:28

嵌入式Linux

2009-12-16 15:41:40

嵌入式Linux入门

2009-12-17 10:33:05

嵌入式Linux

2012-07-30 14:13:11

Linux 2.6内核嵌入式

2009-06-26 16:05:04

嵌入式Linux

2011-03-17 17:36:01

iptables嵌入式Linux

2009-12-23 16:52:26

Linux自学嵌入式

2009-12-09 10:50:53

嵌入式Linux

2023-11-28 09:17:05

Linux编程
点赞
收藏

51CTO技术栈公众号