Module Hot-Swapping for Dynamic Update and Reconfiguration in K42
K42 is an open-source research OS for 64-bit multiprocessor systems, focusing on the PowerPC architecture. It uses an object-oriented design to achieve good performance, scalability, customisability, and maintainability. K42 supports the Linux API and ABI allowing it to use unmodified Linux applications and libraries, and can be deployed by running on an existing installation of Linux. The development process of K42 is intended to share concepts with Linux, many ideas have been transferred between the two projects. K42 implements each system resource (eg. an open file or process) as a set of unique object instances, and supports hot-swapping, which allows these objects to be changed on-the-fly. This enables dynamic reconfiguration and adaptability of the system, and when combined with a kernel module loader, supports dynamic update and hot patching of the OS. Examples of this might include dynamically adapting to file access patterns, or replacing insecure code in the network stack without downtime. In this paper we will introduce K42, discuss its hot-swapping capability, and suggest possible ways in which this technology could benefit Linux.
Andrew is a PhD student in the operating systems research group (http://www.disy.cse.unsw.edu.au/) at the University of NSW. He has been using and hacking on open source software for about eight years. His research interests include component- and microkernel-based systems, hot-swapping, and distribution. Projects he has been involved with include K42, the Mungi single-address-space OS, the L4 microkernel, and the Linux Trace Toolkit.