General-purpose operating systems are ill-equipped to meet the quality of service (QoS) requirements of complex real-time applications. Consequently, many classes of realtime applications have either been carefully developed to compensate for inadequate system support, or they have been developed to run on special purpose systems. This paper focuses on a safe extension architecture for general purpose systems, to allow applications to customize the behavior of the system for their individual needs. Using Linux as the basis for our work, we describe how application programmers can safely incorporate ‘service extensions’ into the kernel, so that application-specific QoS guarantees can be provided. We introduce the notion of ‘QoS safety’, which is concerned with meeting the QoS constraints of applications while maintaining system integrity. Our safe extension architecture supports the dynamiclinking of code into the address space of the kernel, to affect service management decis...