DynAMOS is an
on-the-fly kernel updating system that enables commodity operating
systems to gain adaptive and mutative capabilities without kernel
recompilation or reboot. It employs a novel and efficient dynamic
instrumentation technique called adaptive function cloning.
Execution flow can be switched adaptively among multiple editions of
functions, possibly concurrently running. This approach becomes the
foundation for dynamic replacement of non-quiescent kernel subsystems
when the timeliness of an update depends on synchronization of multiple
kernel paths.
DynAMOS is free software
released under the GPL
license.
DynAMOS supports:
- Updates of
non-quiescent subsystems. It accomplishes substantial updates of
core kernel subsystems that never quiesce, such as the scheduler and
kernel threads.
- Datatype updates.
It offers a technique for updating compact datatype definitions.
Additions of new fields in a datatype is supported using a shadow
data structure containing the fields.
- Safe reversibility.
A methodology of quiescence detection is
employed. Updated functions can be removed with the guarantee that they
are not used by the stack or program counter of any process.
- Adaptability.
Execution can be switched adaptively between multiple, possibly
concurrently running, function editions. This is the first dynamically
applied, adaptive kernel updating system.
- Synchronized
updates. A multi-phase updating algorithm for
replacement of complete kernel subsystems is offered. Notably, for the
cases where the timeliness of an update depends on synchronization of
multiple kernel paths.
Dynamic updates DynAMOS
was able to successfully carry out include:
- Extending the Linux
2.2 kernel process scheduler to support unobtrusive, fine-grain cycle
stealing offered by the Linger-Longer
system.
- Adaptively updating
the Linux pipefs implementation during large data transfers.
- Introducing
kernel-assisted process checkpointing offered by EPCKPT in
Linux 2.4.
- Injecting
performance monitoring functionality in kernel functions.
Documentation:
A users manual is available. [HTML
single page][HTML
multiple pages][PDF]
Papers on DynAMOS:
- Dynamic and
Adaptive Updates of Non-Quiescent Subsystems in
Commodity Operating System Kernels. Kristis Makris, Kyung Dong Ryu,
EuroSys 2007, March 2007. [PDF]
[BibTex][presentation
slides]
- On-the-Fly Kernel
Updates for High-Performance Computing
Clusters. Kristis Makris, Kyung Dong Ryu, The 2nd Workshop on System
Management Tools for Large-Scale Parallel Systems. April 2006. [PDF]
[BibTex][presentation
slides]
Software:
Releases always pass some basic regression tests. Releases are available here.
Resources:
- The entire TODO
list.
- Bugs
only.
- Feature
requests only.
- Mailing list dynamos-users
- Anonymous CVS access:
cvs -d:pserver:[email protected]:/projects/dynamos/cvsroot login
cvs -d:pserver:[email protected]:/projects/dynamos/cvsroot co .
- News and RSS feed.
- ViewCVS
access.