2

From my research I cannot find what kernel type is being used in eCos, such as monolithic or micro-kernel. All I could find from my research is that the kernel is a real-time one or websites just describe it as the eCos kernel, does this mean it is a custom made kernel?

What I know about eCos is that it is a hard RTOS although is somewhat vulnerable in terms of security, uses priority, queue based scheduling.

Clifford
  • 88,407
  • 13
  • 85
  • 165
Jordan
  • 119
  • 1
  • 1
  • 12

2 Answers2

1

A micro-kernel is:

... the near-minimum amount of software that can provide the mechanisms needed to implement an operating system (OS). These mechanisms include low-level address space management, thread management, and inter-process communication (IPC). (Wikipedia 11 Dec 2018)

The eCos kernel is described in its Reference Manual thus:

It provides the core functionality needed for developing multi-threaded applications:

  1. The ability to create new threads in the system, either during startup or when the system is already running.

  2. Control over the various threads in the system, for example manipulating their priorities.

  3. A choice of schedulers, determining which thread should currently be running.

  4. A range of synchronization primitives, allowing threads to interact and share data safely.

  5. Integration with the system's support for interrupts and exceptions.

It is quite clearly by comparison of these descriptions a micro-kernel. Other services provided by eCos such as file-systems, networking and device drivers are external and separable from the kernel. That is to say, you can deploy the kernel alone without such services and it remains viable.

In a monolithic kernel, these services are difficult or impossible to separate as they are an intrinsic part of the whole. Unlike eCos mand most other RTOS they do not scale well to small hardware platforms common in embedded systems. Monolithic kernels are suited to desktop and general purpose computing platforms, because the platforms themselves are monolithinc - a PC without a filesystem, display, keyboard etc, is not really viable, whereas in an embedded system that is not the case.

While Linux, and even Windows are used in embedded systems, a micro-kernel is deployable on platforms with a few tens of kilo-bytes of memory, whereas a minimal embedded Linux for example requires several mega-bytes and will include a great deal of code that your application may never use.

Ultimately the distinction is perhaps irrelevant, as is the terminology. It is what it is. You do not choose your kernel or OS on this criteria, but rather whether it provides the services you require, runs on your target, and fits in the available resource.

Clifford
  • 88,407
  • 13
  • 85
  • 165
0

I think it is a monolithic kernel. If you review this page: http://ecos.sourceware.org/getstart.html

It is used instead of linux kernel and linux kernel support monolithic kernels. In addition, if it was a micro kernel , they would highlight the kernel type like QNX Kernel type which is micro kernel

Clifford
  • 88,407
  • 13
  • 85
  • 165
erenbasturk
  • 412
  • 4
  • 10
  • 1
    It's very vague, it says it supports both linux and windows however if using windows you need to run a UNIX emulator. I don't see where it says it would use a linux kernel. – Jordan Dec 05 '18 at 22:29
  • I can add this also, windows kernel type is hybrid kernel which is based on the monolithic kernel. I just mentioned about linux kernel because windows and linux kernels based on monolithic kernel. – erenbasturk Dec 05 '18 at 23:18
  • I'll take the answer, I believe you make a better point on why it is a monolithic kernel than not being. – Jordan Dec 06 '18 at 01:19
  • @Jordan : You seem to have misunderstood the description at the link given - the LInux/Windows support refers to hosting the _development tools_, not running the kernel. The eCos kernel runs on the target hardware, not on the development host. – Clifford Dec 11 '18 at 20:49
  • The link refers to downloading and installing the eCos SDK on a development host and says nothing about the kernel type. It does not support your conclusion, which IMO is also incorrect. – Clifford Dec 11 '18 at 20:51
  • "It is used instead of linux kernel" - what makes you say that? It is used where a small scalable hard-realtime OS is required. Possibly _where Linux won't fit_, but also where Linux would not even be considered. The world was using RTOSes similar to eCos long before Linux even existed. – Clifford Dec 11 '18 at 21:16