根据我的研究,我找不到 eCos 中使用的内核类型,例如单片内核或微内核。我从研究中只能发现内核是实时内核,或者网站只是将其描述为 eCos 内核,这是否意味着它是定制内核?
我对 eCos 的了解是,它是一个硬 RTOS,尽管在安全性、使用优先级、基于队列的调度方面有些脆弱。
根据我的研究,我找不到 eCos 中使用的内核类型,例如单片内核或微内核。我从研究中只能发现内核是实时内核,或者网站只是将其描述为 eCos 内核,这是否意味着它是定制内核?
我对 eCos 的了解是,它是一个硬 RTOS,尽管在安全性、使用优先级、基于队列的调度方面有些脆弱。
一个微内核是:
... 几乎可以提供实现操作系统 (OS) 所需机制的软件数量。这些机制包括低级地址空间管理、线程管理和进程间通信 (IPC)。(维基百科 2018 年 12 月 11 日)
eCos 内核在其参考手册中描述如下:
它提供了开发多线程应用程序所需的核心功能:
在启动期间或系统已经运行时在系统中创建新线程的能力。
控制系统中的各种线程,例如操纵它们的优先级。
调度程序的选择,确定当前应该运行哪个线程。
一系列同步原语,允许线程安全地交互和共享数据。
与系统对中断和异常的支持集成。
通过比较这些描述,可以很清楚地看到一个微内核。eCos 提供的其他服务,如文件系统、网络和设备驱动程序是外部的,可与内核分离。也就是说,您可以在没有此类服务的情况下单独部署内核,并且它仍然是可行的。
在单体内核中,这些服务很难或不可能分离,因为它们是整体的固有部分。与 eCos 和大多数其他 RTOS 不同,它们不能很好地扩展到嵌入式系统中常见的小型硬件平台。单片内核适用于桌面和通用计算平台,因为平台本身是单片的——没有文件系统、显示器、键盘等的 PC 是不可行的,而在嵌入式系统中则不然。
虽然 Linux 甚至 Windows 都用于嵌入式系统,但微内核可部署在具有几十千字节内存的平台上,而最小的嵌入式 Linux 例如需要几兆字节,并且将包含大量您的应用程序可能永远不会使用的代码。
最终,这种区别可能是无关紧要的,术语也是如此。就是这样。您不是根据此标准选择内核或操作系统,而是选择它是否提供您需要的服务、在您的目标上运行以及是否适合可用资源。
我认为它是一个单片内核。如果您查看此页面:http ://ecos.sourceware.org/getstart.html
它用于代替 linux 内核,并且 linux 内核支持单片内核。此外,如果是微内核,他们会突出显示内核类型,例如 QNX Kernel 类型,即微内核