Embedded Operating Systems and Real-Time Operating Systems are
really universally called an RTOS
although strictly speaking they are slightly different. A real-time
operating system has characteristics which allow it to respond in a
minimal amount of time which is deterministic or bounded. In
comparison, an embedded operating system is designed to run on an
embedded system, which generally means that it runs from Flash memory.
Unison and DSPnano are both real-time and embedded operating systems.
By definition an operating system includes multi-threading or
multi-tasking to share the processor, interrupt handling to speed
device I/O, I/O abstractions for a broad set of devices to make
programs independent of the underlying hardware, and resource
management for memory and other forms of storage. It may also include
other libraries for graphics, buffered character and file I/O, and a
broad set of other devices.
Often, users confuse the difference between a real-time kernel and a
real-time operating system. A kernel has a subset of the real-time
operating system capabilities, often not offering a universal I/O model
and other associated buffered I/O libraries. The I/O subsystem is
expected to be designed by the user in a proprietary way in a kernel
based system.
The reinvention of the I/O subsystem to build an RTOS
from a kernel is very expensive in a variety of ways including:
- Learning required by each new developer
- Lack of documentation and clear semantics leading to
errors using the environment
- Proprietary lock in
- Need to redevelop higher level libraries
- Inconsistent error codes and error handling in the I/O
subsystem
- Internal maintenance requirements
In the same way that an MCU is only 20% processor and 80%
peripherals today, a complete RTOS is 20% kernel and
80% I/O, so by choosing only a kernel and building your own RTOS
(or building the whole environment) you are undertaking 80% of the
development and maintenance cost.
Today, standards prevail in the world of operating systems of all
types. From the Mac OSX through Windows to Linux, all operating systems
today support POSIX standards and because Linux supports POSIX to the
exclusion of other approaches, Linux compatibility becomes the
standard. With RTOS products which use MMUs, this is also true with
Wind River, Greenhills, QNX and others all supporting POSIX and moving
towards Linux.
In the smaller MCU world, where MMUs are not used, there is a problem.
GPL excludes the use of Linux in this environment (loss of application
code). The net result is that users have been using proprietary kernels
and building their own I/O models, or using proprietary systems here.
It is very expensive because it involves vendor lock in or internal
expense for development.
Rowebots provides very high quality RTOS products for DSPs, DSCs and
microcontrollers which have the following characteristics:
- A complete embedded and real-time operating system
- No lock in
- Open source and commercial licenses
- Ultra tiny memory footprint
- Modularity and scalability
- POSIX compatibility
- Linux compatibility
For open systems based RTOS products, see the Unison RTOS for 32 bit
MCUs, DSCs and DSPs and see DSPnano for 8/16 bit MCUs, DSCs and DSPs.