In order to eliminate the costs of proprietary systems and special purpose hardware, many real-time and embedded computing platforms are being built on commodity operating systems and generic hardware. Unfortunately, many such systems are ill-suited to the low-latency and predictable timing requirements of real-time applications. This proposal, therefore, focuses on application-specific service technologies for low-cost commodity computing platforms, so that real-time service guarantees can be met. One of the main thrusts of this work is the structure of systems software, so that a common code-base can be reused for a number of diverse applications on a range of commonly-used (but contrasting) hardware. Novel methods for providing service isolation, protection, and efficient and predictable execution are considered.
This research expands on prior efforts towards system extensibility and safety. The research seeks quality-of-service safe (QoS safe) extensions within the kernels of commodity systems such as Linux, as well as at user-level. By QoS safe we mean a service is not only memory-safe, in that it does not encroach on addresses for which it is not granted access, but also that it executes in a predictable manner according to quality of service (QoS) constraints. Lessons from prior work on user-level sandboxing (ULS) and safe kernel extensions (SafeX) are being used to design a new system software architecture, called Quest, comprising mechanisms and policies that guarantee the safe and predictable composition of user-specified services for real-time and embedded applications.