Developers at the company have come up with what they call kGraft; the technology is in the prototype stage and was developed as a research project, according to a post by Vojtech Pavlik, the director of SUSE Labs and the head of kernel development at SUSE.
Pavlik wrote that while there were a couple of technologies that could be used to patch a running kernel without downtime - Ksplice and OpenVZ Checkpointing - the first would never make it upstream because its open source version was never updated.
Ksplice, which was developed by Ksplice Inc under an open source licence until July 2011 when it was bought by Oracle, is used by the company as an incentive to get companies to use Oracle Linux. Prior to being acquired, it was available for the Red Hat, CentOS, Debian, Ubuntu and Fedora Linux distributions.
|
"kGraft builds on technologies and ideas that are already present in the kernel: ftrace and its mcount-based reserved space in function headers, the INT3/IPI-NMI patching also used in jumplabels, and RCU-like update of code that does not require stopping the kernel," Pavlik wrote.
"A kGraft patch is a kernel module and fully relies on the in-kernel module loader to link the new code with the kernel. Thanks to all that, the design can be nicely minimalistic."
Pavlik wrote that while kGraft was, by choice, limited to replacing whole functions and constants they referenced, this would not limit the set of code patches that could be applied significantly.
"kGraft will offer tools to assist in creating the live patch modules, identifying which functions need to be replaced based on a patch, and creating the patch module source code.," he wrote.
A first kGraft release is planned for next month. The release will be under the GPLv3 licence for parts that touch GCC, and under the GPLv2 licence for Linux kernel parts.
"We aim at getting it merged fully into the upstream projects," he wrote.