skip to content »

Mutatis mutandis safe and predictable dynamic software updating

Our system supports updates changing both kernel code and data structures.In this paper we identify requirements needed to provide a dynamically updatable operating system, describe our implementation, and present our experiences in designing and using the dynamic update mechanism.

mutatis mutandis safe and predictable dynamic software updating-4mutatis mutandis safe and predictable dynamic software updating-27mutatis mutandis safe and predictable dynamic software updating-55

Further, in more mature systems such as mainframes, some user constraints prevent the system from ever being shutdown.To take effect, these patches traditionally require either restarting system services, or often rebooting the machine. Sometimes this downtime can be scheduled, if for example the patch adds a feature, improves performance, etc.However, in some situations, such as applying a security patch, delaying the update is not desirable.Users and system administrators are forced to trade off the increased vulnerability of a security flaw against the cost of unplanned downtime.Dynamic update [26] is used to avoid such downtime.The rest of this paper is organised as follows: Section 2 discusses the system requirements for supporting dynamic update, Section 3 describes our implementation of dynamic update in K42, and Section 4 discusses how the same functionality might be implemented in other operating systems.

Next, Section 5 describes our experiences applying dynamic update to K42 using three motivating examples, Section 6 discusses the limitations of our implementation and our plans for future work, Section 7 compares related work, and Section 8 concludes.

This work builds on previously reported work [28,6], and on other K42 features.

Some of the requisite characteristics we identify for dynamic update exist in other systems or have recently been incorporated [22], while others require additional support.

We have addressed these challenges in the implementation of a dynamic update mechanism for K42, an object-oriented research operating system supporting hot-swapping.

The focus of this paper is on the implementation and mechanisms needed to provide dynamic update.

The structure of the system dictates what is feasible.