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
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.
The OS-9′s real-time kernel allows multiple independent applications to execute simultaneously through task switching and inter-process communication facilities. All OS-9 programs run as processes containing at least one lightweight process (thread), but may also contain an effectively unlimited number of threads. Within a process, these lightweight processes share memory, I/O paths, and other resources in accordance with the POSIX threads specification and API.
OS-9 schedules threads using a fixed-priority preemptive scheduling algorithm with round-robin scheduling within each priority. The priority levels can be divided into a range that supports aging and a higher-priority range that uses strict priority scheduling. Each process can access any system resource by issuing the appropriate OS-9 service request. At every scheduling point, OS-9 compares the priority of the thread at the head of the active queue to the priority of the current thread. It contextually switches to the thread on the active queue if its priority is higher than the current processes' priority. Aging artificially increases the effective priority of the threads in the active queue as time passes. At defined intervals, time slicing returns the current thread to the active queue behind other threads at the same priority.
Why Microware OS-9?
Microware's OS-9′s compact, high-performance multi-user, multi-tasking real-time kernel is a proven foundation for time-to-revenue success. OS-9 is a full-featured operating system framework, including the OS kernel, kernel services, and industry-standard APIs, middleware, and a complete IDE-based development framework.
Hard Real-Time Performance
Unlike Windows and Linux-based systems, Microware OS-9 was conceived from the ground up to meet the high performance and reliability requirements of time-critical embedded applications.
Resource-Efficient by Design
OS-9 delivers excellent performance in even the most constrained environments. OS-9 and user applications can run completely out of ROM/Flash, leaving RAM dedicated for operating systems or other program use. OS-9 modules are re-entrant. Ten copies of the same 500K program can share the same 500K of program space and only require ten copies of data space (stack, process descriptors, and other system structures associated with the process).
Scalable Modular Architecture
The OS-9′s modular architecture enables dynamic configuration changes and enhancements in order to meet changing system requirements without rebooting. OS-9 applications are written as self-contained modules and are not linked in as a single monolithic code base with the kernel. Virtually any OS-9 component may be added, removed, or updated either at system startup or while the system is running. This means features and new functionality can be added easily, in real-time, and even after deployment to the field.
Reliability, Safety and Security
OS-9 was designed with reliability, safety and security in mind. Unlike monolithic architectures, the OS-9′s advanced modular architecture offers an enhanced level of security, making it a preferred foundation for today’s networked environment.
Multi-Core and Virtualization
Coupled with RTS Hypervisor virtualization technology, the OS-9 foundation offers an unparalleled architectural flexibility. The virtualization platform supports an unlimited number of processors/hyper-threads, making it a future-proof choice for multi-processor architectures. For customers who seek to consolidate their disparate real-time and general-purpose OSs and applications on a single virtualized platform, OS-9 is deployment-ready on the RTS Hypervisor virtualization platform. This results in reduced cost of ownership, the re-use of development tools/applications, optimized system performance and improved system reliability.
Extensive Services and Middleware
The OS-9′s extensive I/O architecture supports a wide range of devices and networking options. The broad range of services, file managers and device drivers available from a single supplier speeds integration and application development, leaving customers with more time to innovate and differentiate their products.
Multimedia Application User Interface
Creating more compelling multimedia user interfaces plays a crucial role in the success of a wide range of products and applications. The OS-9 MAUI, a multimedia suite with MFM file manager, makes it easy to integrate multimedia control of video, audio, keyboard and pointing devices into any application. The result is a better multimedia product, delivered on time and within budget.
Native Development Framework
Designing embedded systems requires more than just an OS. The Microware Hawk development suite comprises of a comprehensive set of software development tools that span the embedded software workflow. The Hawk framework includes a highly optimizing C/C++ compiler, a fully customizable development environment, the award-winning CodeWright programmer’s editor, graphical debugging tools, and middleware libraries and solutions.