2

根据我的研究,我找不到 eCos 中使用的内核类型,例如单片内核或微内核。我从研究中只能发现内核是实时内核,或者网站只是将其描述为 eCos 内核,这是否意味着它是定制内核?

我对 eCos 的了解是,它是一个硬 RTOS,尽管在安全性、使用优先级、基于队列的调度方面有些脆弱。

4

2 回答 2

1

一个微内核是:

... 几乎可以提供实现操作系统 (OS) 所需机制的软件数量。这些机制包括低级地址空间管理、线程管理和进程间通信 (IPC)。(维基百科 2018 年 12 月 11 日

eCos 内核在其参考手册中描述如下:

它提供了开发多线程应用程序所需的核心功能:

  1. 在启动期间或系统已经运行时在系统中创建新线程的能力。

  2. 控制系统中的各种线程,例如操纵它们的优先级。

  3. 调度程序的选择,确定当前应该运行哪个线程。

  4. 一系列同步原语,允许线程安全地交互和共享数据。

  5. 与系统对中断和异常的支持集成。

通过比较这些描述,可以很清楚地看到一个微内核。eCos 提供的其他服务,如文件系统、网络和设备驱动程序是外部的,可与内核分离。也就是说,您可以在没有此类服务的情况下单独部署内核,并且它仍然是可行的。

在单体内核中,这些服务很难或不可能分离,因为它们是整体的固有部分。与 eCos 和大多数其他 RTOS 不同,它们不能很好地扩展到嵌入式系统中常见的小型硬件平台。单片内核适用于桌面和通用计算平台,因为平台本身是单片的——没有文件系统、显示器、键盘等的 PC 是不可行的,而在嵌入式系统中则不然。

虽然 Linux 甚至 Windows 都用于嵌入式系统,但微内核可部署在具有几十千字节内存的平台上,而最小的嵌入式 Linux 例如需要几兆字节,并且将包含大量您的应用程序可能永远不会使用的代码。

最终,这种区别可能是无关紧要的,术语也是如此。就是这样。您不是根据此标准选择内核或操作系统,而是选择它是否提供您需要的服务、在您的目标上运行以及是否适合可用资源。

于 2018-12-11T21:12:52.953 回答
0

我认为它是一个单片内核。如果您查看此页面:http ://ecos.sourceware.org/getstart.html

它用于代替 linux 内核,并且 linux 内核支持单片内核。此外,如果是微内核,他们会突出显示内核类型,例如 QNX Kernel 类型,即微内核

于 2018-12-05T21:54:49.967 回答