The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

04.03.2014 20:34  Компания Red Hat открыла код kpatch для организации обновления на лету ядра Linux

Компания Red Hat открыла под лицензией GPLv2 наработки проекта kpatch, в рамках которого подготовлена система динамического применения патчей к работающему ядру Linux. По своему назначению kpatch напоминает развиваемую компанией Oracle систему KSplice и анонсированный компанией SUSE проект kGraft, и также позволяет администраторам на лету устранять уязвимости и некоторые типы ошибок в ядре, без перезагрузки и остановки работы системы.

Принцип организации обновления ядра в kpatch напоминает kGraft и основывается на замене функций в ядре целиком, используя штатные средства подсистемы ftrace для перенаправления на новую функцию. Методы формирования и загрузки патча более близки к ksplice и также основаны на сравнении бинарных сборок. Отмечается, что реализация kpatch ещё до конца не стабилизирована, поэтому систему динамического обновления ядра пока не стоит использовать для промышленного применения. Инструкция по сборке и экспериментах с kpatch подготовлена для Fedora 20 (см. видеодемонстрацию). Горячие обновления могут быть сформированы для ядер Linux, начиная с выпуска 3.7.

После открытия кода kGraft, которое запланировано на март, между системами динамического обновления ядра от Red Hat и SUSE разразится конкурентная борьба по продвижению в состав основного ядра Linux. Не вызовет удивления, если компания Oracle откроет свежий исходный код KSplice и также подключится к борьбе за upstream. В настоящее время Ksplice является проприетарной разработкой. Ранний вариант Ksplice был открыт, но очень давно не обновлялся.

В состав kpatch входят следующие компоненты:

  • kpatch-build - набор утилит для преобразования патча к исходным текстам ядра, созданного утилитой diff, в специализированный модуль ядра, осуществляющий наложение изменений на работающее ядро. Для оценки подлежащих замене компонентов осуществляется сборка двух бинарных образов ядра (vmlinux), один для состояния до наложения патча на код ядра, а второй - после наложения патча. Далее выявляются отличия между бинарными сборками и генерируется модуль горячего обновления ядра.
  • Модуль горячего обновления ядра представляет собой обычный модуль ядра (файл с разрешением.ko), содержащий бинарные варианты изменённых функций ядра и метаданные об размещении оригинальных функций, подлежащих замене. Для применения патча нужно загрузить в ядро соответствующий модуль горячего обновления, для отката изменения и возвращения к исходному состоянию функций достаточно выгрузить модуль горячего обновления из ядра;
  • Базовый модуль kpatch - модуль ядра, предоставляющий интерфейс для регистрации новых функций, определённых в модуле горячего обновления ядра. Для перенаправления вызова на новую функцию используется подсистема ftrace, при помощи которой ставится хук на инструкцию вызова старой функции для перенаправления обращения на новую функцию.
  • Утилита kpatch с интерфейсом командной строки для управления коллекцией модулей горячего обновления ядра. Один или более подобных модулей могут быть настроены для применения в процессе загрузки, что позволяет системе сохранить работоспособность применённых в процессе работы горячих патчей, даже в случае перезагрузки сервера.

Основные ограничения:

  • kpatch не может отслеживать изменение патчем динамически выделяемых структур данных, вся работа по анализу возможного пересечения с подобными структурами ложится на пользователя;
  • Пока не поддерживаются патчи, затрагивающие статически определённые структуры данных. Присутствие подобных структур в патче определяется и приводит к выводу ошибки;
  • Патчи не могут применяться к постоянно вызванным функциям ядра, таким как schedule(), а также к функциям, вызываемым только на стадии инициализации ядра;
  • Пока не поддерживаются патчи к функциям модулей ядра (поддерживаются только патчи к функциям в его базовом образе).

Дополнение: интервью с руководителем SUSE Labs по поводу разработки kGraft.

  1. Главная ссылка к новости (http://rhelblog.redhat.com/201...)
  2. OpenNews: Компания SUSE развивает свободную систему для обновления ядра без перезагрузки
  3. OpenNews: Компания Oracle представила сервис для проверки необходимости обновления ядер произвольных дистрибутивов
  4. OpenNews: Oracle поглотил компанию Ksplice, развивающую технологию обновления Linux-ядра без перезагрузки
  5. OpenNews: Выпуск CRIU 1.0, системы для заморозки и восстановления состояния процессов в Linux
  6. OpenNews: Компания Red Hat работает над собственной технологией обновления ядра Linux на лету
Лицензия: CC-BY
Тип: Интересно / Программы
Ключевые слова: ksplice, kpatch, patch, linux, kernel
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | RSS
 
  • 1.1, pavlinux, 21:05, 04/03/2014 [ответить] [смотреть все]
  • +/
    Опердили SuSE :)

    ---
    Пара патчей

    https://github.com/pavlinux/kpatch/commit/041c7ccae68e36b771156896776ccbb3b862
    https://github.com/pavlinux/kpatch/commit/db9c6e989b7c1a5005633291f7bb2eebd949
    ---

     
     
  • 2.14, FractalizeR, 23:26, 04/03/2014 [^] [ответить] [смотреть все] [показать ветку]
  • +8 +/
    Патчи гениальны. Они изменят судьбу мира Linux.
     
     
  • 3.17, pavlinux, 23:41, 04/03/2014 [^] [ответить] [смотреть все]
  • –3 +/
    Ты как большой специалист знаешь же, где найти руткит на неправильные спецификат... весь текст скрыт [показать]
     
     
  • 4.23, анонимус, 01:07, 05/03/2014 [^] [ответить] [смотреть все]  
  • +2 +/
    руткит — это немного не о том, наверное эксплойт
     
     
  • 5.46, pavlinux, 17:09, 05/03/2014 [^] [ответить] [смотреть все]  
  • +/
    руткит - это цель, эксплойт - это инструмент, как черепно-мозговая травма тупым ... весь текст скрыт [показать]
     
  • 2.29, Аноним, 03:56, 05/03/2014 [^] [ответить] [смотреть все] [показать ветку]  
  • –6 +/
    Нафиг нужны твои патчи?
     
     
  • 3.42, pavlinux, 14:25, 05/03/2014 [^] [ответить] [смотреть все]  
  • –1 +/
    > Нафиг нужны твои патчи?

    лохов раздражать

     
  • 2.31, Аноним, 06:24, 05/03/2014 [^] [ответить] [смотреть все] [показать ветку]  
  • +5 +/
    Так вот ты какой, северный pavlinux https identicons github com 35a2ad62b28e3c... весь текст скрыт [показать] [показать ветку]
     
  • 2.36, qwerty, 08:45, 05/03/2014 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    >Type coeection

    *facepalm*

     
     
  • 3.47, pavlinux, 17:10, 05/03/2014 [^] [ответить] [смотреть все]  
  • +1 +/
    Да, вот так, не хватило сил дотянуть палец до соседней кнопки -P ... весь текст скрыт [показать]
     
  • 1.2, umbr, 21:19, 04/03/2014 [ответить] [смотреть все]  
  • +/
    Новые фичи - новые дыры.
    Вопрос к специалистам: не повлияет-ли это на совместимость ядер?
     
     
  • 2.3, pavlinux, 21:34, 04/03/2014 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Кроме как CONFIG_FTRACE и CONFIG_FUNCTION_TRACER вроде ничего волшебного не прос... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.5, umbr, 21:58, 04/03/2014 [^] [ответить] [смотреть все]  
  • +5 +/
    Теперь бэкдоры можно пихать прямо в работающее ядро И никаких следов, разве что... весь текст скрыт [показать]
     
     
  • 4.16, pavlinux, 23:37, 04/03/2014 [^] [ответить] [смотреть все]  
  • +3 +/
    Да, от рута всё можно ... весь текст скрыт [показать]
     
  • 3.21, pavlinux, 00:38, 05/03/2014 [^] [ответить] [смотреть все]  
  • +/
    А с этой фичей, оверхед проца-то вырос, прим на 10 C В общем, поюзал глюкало... весь текст скрыт [показать]
     
     
  • 4.28, Геннадий Кернес, 02:50, 05/03/2014 [^] [ответить] [смотреть все]  
  • +/
    Что _проще_ - никто и не спорил Только дороговато некоторые сервисы останавлива... весь текст скрыт [показать]
     
     
  • 5.33, Anonymus, 08:41, 05/03/2014 [^] [ответить] [смотреть все]  
  • +2 +/
    тщательнее надо проектировать, остановка сервера не должна приводить к остановке... весь текст скрыт [показать]
     
     
  • 6.39, Маленькая Серая Мышка, 13:54, 05/03/2014 [^] [ответить] [смотреть все]  
  • +3 +/
    То есть вы предлагаете перепроектировать этот мир вместо того чтобы использовать... весь текст скрыт [показать]
     
     ....нить скрыта, показать (7)

  • 1.8, Аноним, 22:05, 04/03/2014 [ответить] [смотреть все]  
  • +4 +/
    Господа, а как на счет безопасности для параноикрв?
     
     
  • 2.11, backbone, 22:17, 04/03/2014 [^] [ответить] [смотреть все] [показать ветку]  
  • +2 +/
    Безопасности, в смысле, security или безопасности процесса применения патча Рад... весь текст скрыт [показать] [показать ветку]
     
  • 2.25, Аноним, 01:48, 05/03/2014 [^] [ответить] [смотреть все] [показать ветку]  
  • +6 +/
    Для параноиков ее нет.
     
  • 2.43, Нанобот, 15:33, 05/03/2014 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    для параноиков ничего не изменилось - всё как было опасно, так и остаётся
     
  • 1.12, AlexAT, 22:40, 04/03/2014 [ответить] [смотреть все]  
  • +1 +/
    >>> Не вызовет удивления, если компания Oracle откроет свежий исходный код KSplice и также подключится к борьбе за upstream

    Поздновато. У редхата большой опыт по пропихиванию разработок в апстрим. В отличие от.

     
  • 1.13, AlexAT, 22:43, 04/03/2014 [ответить] [смотреть все]  
  • +1 +/
    Блин, в который раз редхату эпическое шпасибо за следование GPL. У меня даже есть место для применения этой штуки, весьма специфичное, но реальное.
     
     
  • 2.18, pavlinux, 00:06, 05/03/2014 [^] [ответить] [смотреть все] [показать ветку]  
  • –1 +/
    This script currently only works on Fedora and will need to be adapted to wo... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.24, anonymous, 01:38, 05/03/2014 [^] [ответить] [смотреть все]  
  • +/
    Да там три с половиной строки поправить Кто не сможет - тому рано пока это испо... весь текст скрыт [показать]
     
  • 2.26, Аноним, 02:08, 05/03/2014 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    секретничает, какое?
     
     
  • 3.32, AlexAT, 08:36, 05/03/2014 [^] [ответить] [смотреть все]  
  • +/
    Есть определенная операторская сетевая платформа, которой возможность проапдейти... весь текст скрыт [показать]
     
  • 1.22, Аноним, 01:01, 05/03/2014 [ответить] [смотреть все]  
  • –1 +/
    delirium Ага, значит наклепали за 5 минут, дабы пропихнуть побыстрее своё, чтоб... весь текст скрыт [показать]
     
     
  • 2.30, Мегазаычы, 05:22, 05/03/2014 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    5 лет не уходили (см. ksplice) а тут вдруг подорвались.
     
  • 1.34, Anonymus, 08:42, 05/03/2014 [ответить] [смотреть все]  
  • +/
    неужто великим умищам нечем боле заняться чем костыли клепать?
     
     
  • 2.35, AlexAT, 08:45, 05/03/2014 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Это очень нужные и важные костыли, которые могут в отдельных случаях сократить д... весь текст скрыт [показать] [показать ветку]
     
     
     
    Часть нити удалена модератором

  • 4.50, Аноним, 21:59, 05/03/2014 [^] [ответить] [смотреть все]  
  • +1 +/
    И что делать если даунтайм запланирован на следующей неделе, а проблему надо исп... весь текст скрыт [показать]
     
  • 3.40, Маленькая Серая Мышка, 13:56, 05/03/2014 [^] [ответить] [смотреть все]  
  • +2 +/
    Ну да, помнится вот у Сбербанка не встал ... весь текст скрыт [показать]
     
  • 1.52, Аноним, 17:54, 07/03/2014 [ответить] [смотреть все]  
  • +/
    IBM K24 же
     
     
  • 2.53, Аноним, 17:55, 07/03/2014 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    K42 (:
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor TopList