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

3 февраля 2014 года

Компания SUSE представила (Архивная копия от 27 марта 2014 на Wayback Machine) систему kGraft, в рамках которой развивается аналог поставляемой компанией Oracle технологии Ksplice, позволяющей выполнить обновление ядра Linux без остановки работы системы. Как и Ksplice возможности kGraft ограничены внесением на лету исправлений, не затрагивающих динамически изменяемые структуры данных ядра. Тем не менее, этого достаточно для устранения уязвимостей в ядре и исправления многих видов логических ошибок.

Обновление ядра Linux на лету является востребованной возможностью для промышленных дистрибутивов и систем, критичных ко времени простоя, но несмотря на доступность на рынке решений, предоставляющих подобную функциональность, свободная и общедоступная реализация до сих пор не предоставляется штатным ядром Linux. В отличие от Ksplice, который является проприетарной разработкой (один из ранних вариантов Ksplice был открыт, но очень давно не обновлялся), kGraft изначально позиционируется как свободный проект.

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

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

Источники

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

Комментарии

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