Компания SUSE открыла код kGraft, системы для обновления ядра Linux без перезагрузки

27 марта 2014 года

Компания SUSE объявила о доступного исходных текстов ранее анонсированной системы kGraft, обеспечивающей возможность обновления ядра Linux на лету, без перезагрузки и без остановки работы приложений. Возможности kGraft ограничены внесением на лету исправлений, не затрагивающих динамически изменяемые структуры данных ядра, чего достаточно для устранения уязвимостей в ядре и исправления многих видов логических ошибок. Компоненты kGraft, работающие на уровне ядра открыты под лицензией GPLv2, а выполняемые в пространстве пользователя утилиты, позволяющие создавать live-патчи к ядру, - под лицензией GPLv3.

Обновление ядра Linux на лету является востребованной возможностью для промышленных дистрибутивов и систем, критичных ко времени простоя. При этом, несмотря на доступность на рынке решений, предоставляющих подобную функциональность, свободная и общедоступная реализация до сих пор не предоставляется штатным ядром Linux. Конкурирующими с kGraft системами являются технологии Ksplice от Oracle и kpatch от Red Hat. Ksplice не претендует на включение в ядро в силу прекращения публикации исходных текстов, поэтому основным конкурентом в борьбе за включение в состав основного ядра Linux является kpatch, который очень близок по архитектуре к kGraft и также является полностью открытой разработкой. Основное отличие kGraft от kpatch сводится к методу генерации модуля-патча, который в kGraft может формироваться непосредственно на основе исходных текстов, без манипуляций c объектным кодом (kpatch формирует патч на основе сравнения двух бинарных сборок ядра).

Средства наложения патчей на базе kGraft ограничены заменой целиком функций и связанных с ними констант. Патч формируется при помощи специального инструментария, выявляющего подлежащие замене функции на основе анализа исправлений исходных текстов, после чего формирующего исходный код модуля ядра с реализацией патча. Cгенерированный модуль загружается в ядро штатными средствами, как и любой другой модуль ядра, после чего выполняет все необходимые действия по внесению изменений в ядро без прерывания работы системы. В своей работе kGraft базируется на технологиях и идеях уже доступных в ядре: ftrace, зарезервированное через mcount место в заголовках функций, уже применяемая в jumplabels техника исправления INT3/IPI-NMI, RCU-подобное обновление кода, не требующее остановки ядра.

Источники

править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Компания SUSE открыла код kGraft, системы для обновления ядра Linux без перезагрузки», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.