Trustworthy Systems

Providing dynamic update in an operating system

Authors

Andrew Baumann, Gernot Heiser, Jonathan Appavoo, Dilma Da Silva, Orran Krieger, Robert W. Wisniewski and Jeremy Kerr

NICTA
Sydney
Australia

School of Computer Science and Engineering
UNSW
Sydney
Australia

IBM T.J. Watson Research Center
Yorktown Heights NY 10598
USA

Abstract

Dynamic update is a mechanism that allows software updates and patches to be applied to a running system without loss of service or down-time. Operating systems would benefit from dynamic update, but place unique demands on any implementation of such features. These demands stem from the event-driven nature of operating systems, from their restricted run-time execution environment, and from their role in simultaneously servicing multiple clients.

We have implemented a dynamic update mechanism in the K42 research operating system, and tested it using previous modifications of the system by kernel developers. 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. We also discuss its applicability to other operating systems.

BibTeX Entry

  @inproceedings{Baumann_HADKWK_05,
    address          = {Anaheim, CA, USA},
    author           = {Andrew Baumann and Gernot Heiser and Jonathan Appavoo and Da Silva, Dilma and Orran Krieger and
                        Robert W. Wisniewski and Jeremy Kerr},
    booktitle        = {USENIX},
    month            = apr,
    pages            = {279--291},
    paperurl         = {https://trustworthy.systems/publications/papers/Baumann_HADKWK_05.pdf},
    title            = {Providing Dynamic Update in an Operating System},
    year             = {2005}
  }

Download