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:
- 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.
- 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.
- 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.