|| ||Kristis Makris <email@example.com>|
|| ||firstname.lastname@example.org, email@example.com,
|| ||Dynamic kernel updates using DynAMOS|
|| ||Mon, 23 Jul 2007 09:32:09 -0700|
Hello, please CC me as I'm not registered in these lists.
I'd like to announce DynAMOS, a dynamic kernel updating system that
supports Linux and could be of help in kernel development and high
This system has been a research project at Arizona State University
for the past 3 years and has finally become publicly available under
the GPL. Feedback would be very much appreciated.
It 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 new 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
This system can assist in kernel code prototyping and testing. It can
help fine-tune and benchmark live code (e.g. a scheduling policy) that
would otherwise require a full recompilation and reboot to adjust. It
can also be of help in long-lived systems that need to patch security
holes or benefit from new kernel features without downtime
(e.g. parallel computing clusters). A long-term goal is to automate
dynamically updating a live kernel from one version to the next.
Dynamic updates we've so far been able to carry out with DynAMOS
o Extending the Linux 2.2 kernel process scheduler to support
unobtrusive, fine-grain cycle stealing offered by the Linger-Longer
o Introducing adaptive memory paging for efficient gang-scheduling in
a Linux 2.4 cluster.
o Adaptively updating the Linux pipefs implementation during large
o Introducing kernel-assisted process checkpointing offered by EPCKPT
in Linux 2.4.
o Applying security fixes provided by the Openwall project.
o Injecting performance monitoring functionality in kernel functions.
o Updating DynAMOS itself.
The current release is functional on Linux with ports to FreeBSD and
GNU OpenSolaris waiting for bugs to be ironed out. It builds with gcc
3.3 and 2.95, but not 4.x (yet). It comes with examples (e.g. update
get_pid(), update Linux 2.4 scheduler) of dynamic kernel updates for
people to easily try it out and comes prepackaged in .rpm and .deb for
Linux 2.4 (but not 2.2 or 2.6). The source distribution contains the
more complex updates mentioned above (adaptive updating, kernel
thread updates, checkpointing) and if compiled from source will work
for Linux versions 2.2-2.6.
People interested in learning more about the system can read:
o The project webpage:
o The current users manual:
o A paper published in EuroSys '07 discussing the design and technical
issues surrounding this work:
o A set of presentation slides that summarize the system:
I hope people will find this work useful and interesting enough for it
to continue being developed.