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 availability. 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 paths. 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 include: o Extending the Linux 2.2 kernel process scheduler to support unobtrusive, fine-grain cycle stealing offered by the Linger-Longer system. o Introducing adaptive memory paging for efficient gang-scheduling in a Linux 2.4 cluster. o Adaptively updating the Linux pipefs implementation during large data transfers. 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: http://freshmeat.net/projects/dynamos/ o The current users manual: http://files.mkgnu.net/files/dynamos/doc/latest_manual/html-single/manual.html o A paper published in EuroSys '07 discussing the design and technical issues surrounding this work: http://files.mkgnu.net/files/dynamos/doc/papers/dynamos_eurosys_07.pdf o A set of presentation slides that summarize the system: http://files.mkgnu.net/files/dynamos/doc/papers/dynamos_eurosys_07.ppt I hope people will find this work useful and interesting enough for it to continue being developed. Thanks, Kristis
Attachment:
signature.asc
Description: This is a digitally signed message part
- Prev by Date: Re: drivers/dma/ioatdma.c - address of '__this_module' will always evaluate as 'true' , warning
- Next by Date: Re: Plan 9 Resource Sharing Support - what is it?
- Previous by thread: [PATCH] 0 -> NULL, drivers/usb/gadget/
- Next by thread: [PATCH]: Add command-line option to i8042 to completely disable it
- Index(es):