Live updating operating systems using virtualization
Second, a quiescent state or a safe point needs to be detected or enforced before a dynamic patch could be applied.
Otherwise, the operating system may result in an inconsistent state.
First, updatable units in an operating system need to be easily defined.
For an operating system using an objectoriented approach such as K42, an object is a natural updatable unit.
To support live updates to a running operating system, LOCUS follows several design principles: -Neutral: To avoid disrupting services on a running operating system, any change to the operating system should not necessitate an operating system reboot.
Fortunately, most existing operating systems provide some means to extend their functionalities on the fly (e.g., Linux loader kernel module), eliminating the need for reboots.
We argue that system virtualization, recently a popular technique for many applications, provides the operating system with a seamless capability to support live updates, thus reducing downtime and improving availability.
As shown in Figure 1, by running the operating system on a high performance virtual machine, it is convenient and natural for the virtual machine monitor (VMM) to modify the state of the operating system without having to stop and reboot the operating system.
Finally, even if such a safe state could be reached and detected, due to the fact that the update process is executing inside the operating system, it may trigger an execution of the code in the patch program and result in a dead lock situation or an inconsistent state.
I lead the Institute of Parallel and Distributed Systems and work with members to improve the performance and dependability of computer systems. I am currently looking for self-motivated students with good background on systems related area.
Drop me an E-mail if you have interests to work with me.
However, most existing operating systems are not designed with a live update capability in mind.
First, they are usually implemented using non-object-oriented approaches.
Search for live updating operating systems using virtualization:
For example, a live update to an interrupt handler may trigger the interrupt and brings the operating system into an undefined state.