【问题标题】:Embedded Linux or eCos?嵌入式 Linux 还是 eCos?
【发布时间】:2011-02-09 23:29:28
【问题描述】:

一种看待它的方式 - 嵌入式 Linux 从桌面 Linux 开始,抛弃了嵌入式系统不需要的部分(这真的是真的吗?),而 eCos 是从头开始为嵌入式系统设计的。

现在,假设一个 ARM 处理器,可能是 ARM 7 - 性能会有所不同吗?实际上,我们谈论的是一个负载非常低的系统,每天最多 500 笔交易。

一个比另一个(或 FreeRTOS 等)有什么优势吗?稳定性、成熟度、性能、开发工具,还有什么?

我能想到的只是,如果我确定我永远不会移植到另一个操作系统,那么如果我使用嵌入式 Linux,我就不需要操作系统抽象层允许我在主机(桌面 Linux 机器)上进行单元测试。

有什么想法或想法吗?谢谢。

【问题讨论】:

  • 如果您使用的是 ARM7,那么它可能没有 MMU。因此,您需要 ucLinux,它是减去虚拟内存支持的 Linux。
  • 投票结束过于广泛。相关:stackoverflow.com/questions/25871579/…

标签: embedded embedded-linux ecos


【解决方案1】:

我安装 Linux 的每台设备都是从头开始的,并不是某些发行版的精简版。

eCos 和 Linux 有不同的目标。 Linux 旨在成为一个功能齐全的类 Unix 系统,因此不太关心最低系统要求。 eCos 是一种实时操作系统,专为资源受限的系统而设计。这两个操作系统之间有很多重叠之处,在许多情况下,两者都可以正常工作。

根据我的经验,如果您的系统有资源并且您的要求不重要,那么使用 Linux 的开发速度会更快。与 RTOS 开发人员相比,找到称职的 Linux 开发人员更容易,工具更便宜,进程相互保护,您往往对正在运行的系统有更好的可见性,等等。

eCos 的一个(更好的,恕我直言)替代品是 RTEMS (http://www.rtems.com)。它存在的时间更长,上次我检查时,它支持的架构比 eCos 多。它还有一个PC BSP,运行在qemu下进行仿真。

【讨论】:

    【解决方案2】:

    将 Linux 放在 ARM7 IMO 上并没有真正的好处; ARM7 没有 MMU,内存保护是使用 Linux 等操作系统的主要原因。 uClinux 可以在没有 MMU 的目标上运行,但是您已经失去了使用 Linux 最令人信服的理由之一,并且仍然需要巨大的内存资源(4M 闪存,16M RAM 将是合理的最小值)。

    许多 ARM7 设备没有用于连接那么多内存的外部内存总线,片上闪存和 RAM 的范围通常在 32K 到 1M 之间,具体取决于设备。

    Linux 本质上不是“实时的”。对于实时功能,它通常与实时内核相结合,其中 Linux 本质上作为空闲任务运行,或者在具有作为单独虚拟机功能的目标上运行。因此,如果需要对外部事件的确定性和快速响应,您将需要一个 RTOS,例如 eCOS。

    eCOS 的出色之处在于它拥有可与大多数商业产品相媲美的附加功能和设备支持的庞大生态系统。然而,像 FreeRTOS 这样的东西可能更容易“启动”,但只提供线程调度程序和进程间通信机制。文件系统或 TCP/IP 之类的东西需要来自第三方(尽管同样适用于嵌入式系统的小型免费解决方案)。

    如果您使用 FreeRTOS 或 uC/OS-III 等简单的 Kernel,则不会浪费太多时间,因此投资不会妨碍您下次使用其他东西。另一方面,Linux 可能会阻止您下次使用更小且目标更窄的东西,并且巡视后续项目的成本可能远远高于支持您选择的操作系统所需的成本。

    【讨论】:

      【解决方案3】:

      嵌入式 Linux == Linux 在 99% 的情况下。您只是以不同的方式配置内核。

      最大的性能差异在于,使用 eCos,您可以根据您的实现/配置获得预期的响应时间,而使用 Linux,您则受制于中断控制器。

      Linux 拥有比 eCos 更大的粉丝群,因此对开发有更多帮助,并且它支持多种 CPU。此外,根据您想要的驱动程序,您可以在运行 Linux 的 PC 上编译和运行您的程序。

      Linux 可以检测锁定/死锁并发送自动响应/重新启动以保持系统的高可用性。

      【讨论】:

        猜你喜欢
        • 2013-04-15
        • 2011-01-23
        • 2019-05-16
        • 2014-08-13
        • 2016-01-11
        • 2013-07-12
        • 1970-01-01
        • 2017-10-28
        • 1970-01-01
        相关资源
        最近更新 更多