The need for customizable and application-specific operating systems has been recognized for many years. A customizable operating system is one that can adapt to some particular circumstance to gain some functional or performance benefits. Microkernels have attempted to address this problem, but suffer performance degradation due to the cost of inter-process protection barriers. Commercial operating systems that can efficiently adapt themselves to changing circumstances have failed to appear, in part due to the difficulty of providing an interface that is efficient to invoke, provides a protection barrier, and can be dynamically reconfigured. Providing such a safe, efficient, and dynamic interface in a concurrent operating system requires an effective concurrency control mechanism to prevent conflicts between system components proposing to execute specialized components, and those components responsible for dynamically replacing specialized components. We outline our basic approach to specialization of operating systems, and detail our dynamic replacement mechanism and its concurrency control features.
['Crispin Cowan', 'Tito Autrey', 'Charles Krasic', 'Calton Pu', 'Jonathan Walpole']
Fast concurrent dynamic linking for an adaptive operating system