Для ядра Linux предложен livepatch, механизм обновления без перезагрузки

7 ноября 2014 года

В списке рассылки разработчиков ядра Linux представлен livepatch, новый механизм внесения исправлений в работающее ядро Linux без перезагрузки и без остановки работы приложений.

Как известно, в настоящее время на включение в ядро претендуют технологии обновления ядра на лету kpatch от компании Red Hat и kGraft от компании SUSE, которые похожи по используемым методам применения обновлений, но отличаются деталями реализации и способами подготовки патчей. В kGraft патч может формироваться непосредственно на основе исходных текстов, без манипуляций c объектным кодом. В kpatch патч генерируется на основе сравнения двух бинарных сборок ядра. Обе системы являются свободными и достаточно жестко конкурируют между собой, что затрудняет выбор, какую из них принять в основной состав ядра.

Проект livepatch попытался объединить работающие на уровне ядра Linux части технологий kpatch и kGraft в универсальный базовый компонент, который стал бы приемлем для включения в основной состав ядра. По аналогии с kpatch и kgraft в livepatch используется метод замены функций в ядре целиком и перенаправления на новую функцию при помощи штатной подсистемы ftrace. Патч оформляется в форме модуля ядра, осуществляющего необходимую подстановку кода функций. Наиболее существенным достоинством livepatch является возможность использования подобных модулей-патчей, подготовленных как инструментарием kpatch, так и kGraft. Сам livepatch, при этом, предоставляет лишь базовый интерфейс для регистрации и активации патчей в ядре, и реализован в форме управляющего модуля livepatch.ko.

Из областей, которые ещё требуют доработки отмечается реализация средств для обеспечения целостности системы в процессе применения патча. В kpatch и kGraft используются собственные механизмы для защиты от одновременного вызова старого и нового кода в пограничные моменты. В 90% патчей, устраняющих уязвимости, подобные механизмы не требуются, так как в них просто добавляется дополнительная условная проверка. Возможность полноценной подмены функций планируется реализовать в одном из следующих выпусков livepatch.

Источники

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

Комментарии

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