Real-time operating systems are required to run for years, and never fail, without human intervention. Safety is the primary concern for real-time operating systems because they usually control physical equipment. One strand of real-time operating system research is looking at the question: can developing a real-time operating system in a safe language result in a system that an errant process can’t crash? Choosing a good programming language can significantly improve the safety of the real-time operating system. In this book, we examine the advantages and associated problems of writing real-time operating systems in a safe language, namely Java.