Компания SUSE развивает свободную систему для обновления ядра без перезагрузки
Обновление ядра Linux на лету является востребованной возможностью для промышленных дистрибутивов и систем, критичных ко времени простоя, но несмотря на доступность на рынке решений, предоставляющих подобную функциональность, свободная и общедоступная реализация до сих пор не предоставляется штатным ядром Linux. В отличие от Ksplice, который является проприетарной разработкой (один из ранних вариантов Ksplice был открыт, но очень давно не обновлялся), kGraft изначально позиционируется как свободный проект.
В настоящее время kGraft находится на стадии работающего прототипа, требующего доработки. В марте, после приведения кода в порядок, созданные в рамках проекта наработки планируется предложить для включения в состав основной ветки ядра Linux. Компоненты, работающие на уровне ядра, будут открыты под лицензией GPLv2, а выполняемые в пространстве пользователя утилиты, позволяющие создавать live-патчи к ядру, - под лицензией GPLv3.
Средства наложения патчей на базе kGraft ограничены заменой целиком функций и связанных с ними констант. Патч формируется при помощи специального инструментария, на основе анализа исправлений исходных текстов выявляющего подлежащие замене функции и формирующего исходный код модуля ядра с реализацией патча. Cгенерированный модуль загружается в ядро штатными средствами, как и любой другой модуль ядра, после чего выполняет все необходимые действия по внесению изменений в ядро без прерывания работы системы. В своей работе kGraft базируется на технологиях и идеях уже доступных в ядре: ftrace, зарезервированное через mcount место в заголовках функций, уже применяемая в jumplabels техника исправления INT3/IPI-NMI, RCU-подобное обновление кода, не требующее остановки ядра.
Источник: http://www.opennet.ru/opennews/art.shtml?num=38994
|
0 | Tweet | Нравится |
|