从我的研究中,我找不到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内核类型,即微内核