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

Комментарии[править]

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