Under the Hood: The Microware OS-9 Architecture

OS-9 utilizes an advanced modular software structure that creates an optimum balance of speed and protection for the embedded systems and applications. OS-9 runs faster compared to microkernel operating systems, and offers an increased level of security compared to monolithic architectures. All modules and components that make up an OS-9 system–including the kernel, file managers, drivers and applications–are stored as logical OS-9 memory modules. Each memory module is a self-contained program consisting of module header, module body, and a Cyclic Redundancy Check (CRC) value. These logical software components are easy to create and manage, while ensuring high availability of the OS-9 platfom.


Real-Time, Multi-Tasking Kernel

OS-9 features a process-based, real-time kernel with POSIX thread support, complete with an extensive scheduler and inter-process communication facilities. Kernel features include:

  • Pre-emptive, priority-based, aging scheduler–assuring real-time responsiveness to interrupts and events
  • Fault tolerance with exception handling and MMU support
  • Process-based architecture with unlimited number of threads
  • Inter-process communication services: Signals, Events, Semaphores, Pipes, and Data modules
  • Tasks divided into priority-based classes
  • Tasks can dynamically change priority
  • Modular architecture based on dynamic linking
  • Able to run out of Flash or ROM with no file system requirement
  • Support for lightweight processes via the POSIX threads API allows easy portability to the OS-9 environment

Protective Boundaries

Microware OS-9 supports three types of protective boundaries:

  1. The user/system state boundary: User state code uses the processor's non-privileged instruction set, and the operating system's user-state system calls. These restrictions let the operating system contain the application within processor boundaries.
  2. Process boundaries: Each process is granted access to resources by the operating system. OS-9 prevents processes from erroneously or maliciously disturbing other processes' resources without proper authorization. If the system is using a memory management unit, OS-9 uses it to enforce memory access protection rules. If there is no MMU, OS-9 still makes an effort to enforce protection rules.
  3. User/group protection: Each process, each module, and (for most file systems) each file has an associated owner. OS-9 uses ownership and permissions to administer access to resources.