The OpenNET Project / Index page

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

10.02.2015 23:20  Red Hat и SUSE объединили усилия в продвижении механизмов обновления ядра без перезагрузки

Разработчики из компаний Red Hat и SUSE объединили свои усилия по продвижению в ядро Linux технологии динамического применения к работающему ядру патчей, которая позволяет на лету устранять уязвимости и некоторые типы ошибок без перезагрузки и без остановки работы приложений. Изначально обстоятельства сложились так, что Red Hat и SUSE практически одновременно предложили сообществу конкурирующие между собой технологии обновления ядра без перезагрузки - kPatch и kGraft, которые очень близки по своим возможностям и характеристикам, и отличаются лишь в деталях реализации.

Подобная ситуация поставила разработчиков ядра в замешательство из-за невозможности отдать предпочтение одной из этих технологий. К счастью, восторжествовал здравый смысл и разработчики kPatch и kGraft встали на путь сотрудничества. Для включения в ядро 3.20 подготовлена базовая инфраструктура, предоставляющая универсальный API для горячего наложения патчей на ядро, который не привязан к конкретным реализациям. После включения патча в состав ядра разработчики SUSE и Red Hat согласились задействовать данный API в своих продуктах вместо специфичного для kPatch и kGraft кода на уровне ядра.

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

При этом в kPatch и kGraft используются разные механизмы для защиты от вызова подменяемого кода в пограничные моменты (задача может быть переключена на исправленную функцию только в момент, когда она не использует данную функцию). В kPatch для обеспечения непротиворечивости обращения к заменяемой функции из разных потоков применяется вызов stop_machine() с последующим анализом стека на предмет влияния подмены функции на выполняемые в текущий момент процессы. В kGraft применяется модель оценки непротиворечивости каждой отдельной нити, путём перебора всех процессов ядра и переноса нитей от старого варианта функции к исправленному варианту в безопасные для подмены моменты.

Предлагаемый для ядра 3.20 базовый API не касается методов обеспечения непротиворечивости, но для ядра 3.21 уже предложена реализация гибридной модели, комбинирующей метод отслеживания непротиворечивости через анализ стека (kPatch) с механизмом оценки отдельных задач (kGraft). По сравнению с kPatch гибридная модель позволяет избежать задержек во время наложения патча, может применяться в ситуациях выполнения подменяемой функции и предоставляет более предсказуемый прогноз успешности выполнения операции. По сравнению с kGraft гибридный метод более прост в реализации и оказывает меньшее влияние на процессы (не требует отправки сигнала спящим задачам). Из недостатков гибридной модели по сравнению с kPatch отмечаются более высокие требования к оформлению модуля ядра с патчем.

Дополнение: Линус Торвальдс принял в ядро 3.20 базовый API для обновления ядра без перезагрузки.

  1. Главная ссылка к новости (https://lkml.org/lkml/2015/2/9...)
  2. OpenNews: Для SUSE Enterprise Linux началось распространение обновлений ядра, не требующих перезагрузки
  3. OpenNews: Для ядра Linux предложен livepatch, механизм обновления без перезагрузки
  4. OpenNews: Компания SUSE открыла код kGraft, системы для обновления ядра Linux без перезагрузки
  5. OpenNews: Компания Red Hat открыла код kpatch для организации обновления на лету ядра Linux
Лицензия: CC-BY
Тип: Интересно / К сведению
Ключевые слова: kgraft, kpatch
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | RSS
 
  • 1.1, Аноним, 23:26, 10/02/2015 [ответить] [смотреть все]
  • +13 +/
    Ну наконец-то они договорились, почти год прошёл.
     
     
  • 2.12, soarin, 09:37, 11/02/2015 [^] [ответить] [смотреть все] [показать ветку]
  • +/
    Ну собственно у них мало выбора Canonical очень много у них отхапала доли и отх... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.14, EHLO, 09:58, 11/02/2015 [^] [ответить] [смотреть все]  
  • +3 +/
    Вот такая толстая правда.
     
  • 3.26, SU, 21:08, 11/02/2015 [^] [ответить] [смотреть все]  
  • +2 +/
    Они договорились и выработали по сути стандарт, теперь эта технология появится и... весь текст скрыт [показать]
     
  • 3.30, Анжелика, 22:50, 12/02/2015 [^] [ответить] [смотреть все]  
  • +/
    В Ынтерпрайз сегменте?!
    А кроме вас кто-нибудь в курсе этого?
     
  • 3.34, Аноним, 20:46, 13/02/2015 [^] [ответить] [смотреть все]  
  • +/
    Вы еще скажите, что она перестала быть убыточной xD... весь текст скрыт [показать]
     
  • 3.40, AlexAT, 20:53, 15/02/2015 [^] [ответить] [смотреть все]  
  • +/
    [толстота]Canonical? А что это?[/толстота]
     
  • 1.2, Аноним, 23:30, 10/02/2015 [ответить] [смотреть все]  
  • –2 +/
    Когда читаю про такие хаки мне дико хочется шотганом поотстреливать программисти... весь текст скрыт [показать]
     
     
  • 2.5, Аноним, 00:10, 11/02/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • +2 +/
    Не надо их отстреливать. На фоне г-на нормальные программисты лучше видны...
     
     
  • 3.38, Аноним, 20:51, 13/02/2015 [^] [ответить] [смотреть все]  
  • +/
    Они в нем теряются Иногда даже тонут ... весь текст скрыт [показать]
     
  • 1.3, Аноним, 23:32, 10/02/2015 [ответить] [смотреть все]  
  • –1 +/
    >ядро 3.20

    Обещали же после 3.19 перейти к разработке 4.0. В чем дело?

     
     
  • 2.11, кверти, 08:49, 11/02/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • +3 +/
    Обещать - не значит жениться
     
  • 1.13, EHLO, 09:57, 11/02/2015 [ответить] [смотреть все]  
  • –1 +/
    Уже не первый и не второй раз и возможно не третий раз пытаются подобное светлое будущее изобрести.
    Пусть конечно пилят, главное чтобы опцию оставили собирать без этих костылей. В 99.9% случаев оно того не стоит.
     
     
  • 2.16, SkyRanger, 10:40, 11/02/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Ну что-то путное выйдет, на десктопе не проблема, а вот когда у вас ферма сервер... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.18, Crazy Alex, 14:42, 11/02/2015 [^] [ответить] [смотреть все]  
  • +/
    Не пойму Что за ситуация такая, что ребутать нельзя Либо вы спокойно переживёт... весь текст скрыт [показать]
     
     
  • 4.27, Аноним, 23:57, 11/02/2015 [^] [ответить] [смотреть все]  
  • +1 +/
    Почему нельзя Можно В ночь со первого января на второе ... весь текст скрыт [показать]
     
     
  • 5.32, Crazy Alex, 00:49, 13/02/2015 [^] [ответить] [смотреть все]  
  • +/
    С перепою, что ли Кроме шуток - крики у меня критичный сервис, я не могу перез... весь текст скрыт [показать]
     
     
  • 6.41, AlexAT, 20:56, 15/02/2015 [^] [ответить] [смотреть все]  
  • +/
    Очень много а вдруг , даже с боевым тестированием Любой вывод системы из штатн... весь текст скрыт [показать]
     
     
  • 7.43, EHLO, 21:52, 15/02/2015 [^] [ответить] [смотреть все]  
  • +/
    Думаешь неведомая фигня, применяющая патчи налету, ковыряющаяся в стеке и подмен... весь текст скрыт [показать]
     
     
  • 8.44, AlexAT, 21:54, 15/02/2015 [^] [ответить] [смотреть все]  
  • +/
    Почему неведомая Она вполне себе логично работает Другое дело, что ковыряние в... весь текст скрыт [показать]
     
     
  • 9.51, EHLO, 10:29, 17/02/2015 [^] [ответить] [смотреть все]  
  • +/
    Если ты боишься перезагрузки в режиме обслуживания, пока все сервисы продолжают ... весь текст скрыт [показать]
     
     ....нить скрыта, показать (8)

  • 1.15, Аноним, 10:05, 11/02/2015 [ответить] [смотреть все]  
  • +1 +/
    Можно будет внедрить в ядро бэкдор без перезагрузки!
     
     
  • 2.17, kuku, 11:58, 11/02/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    1 Ага Повышение автоматизации напрямую помогает автоматизировать неблаговидно... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.19, Аноним, 16:36, 11/02/2015 [^] [ответить] [смотреть все]  
  • +1 +/
    очевидно что в ядро нужно встроить антивирус.
     
     
  • 4.23, Аноним, 19:45, 11/02/2015 [^] [ответить] [смотреть все]  
  • –1 +/
    Анон не тупи, антивирус - эта софт для вытягивания бабла домохозяек которая эффе... весь текст скрыт [показать]
     
  • 4.31, Ilya Indigo, 23:00, 12/02/2015 [^] [ответить] [смотреть все]  
  • +1 +/
    Тссс...
    Сейчас же Лёня это услышит и займётся этим.
     
  • 4.33, Andrey Mitrofanov, 14:35, 13/02/2015 [^] [ответить] [смотреть все]  
  • +1 +/
    >в ядро нужно встроить антивирус

    Doh, http://lwn.net/Articles/318705/?

     
  • 3.20, Аноним, 16:46, 11/02/2015 [^] [ответить] [смотреть все]  
  • –1 +/
    А ещё нужно отключаемость такой фишки при компиляции ядра
     
     
  • 4.29, Аноним, 18:43, 12/02/2015 [^] [ответить] [смотреть все]  
  • –3 +/
    В ядре отключаемость будет, но системд будет обязательно требовать ядра с kpatch... весь текст скрыт [показать]
     
  • 4.36, Аноним, 20:48, 13/02/2015 [^] [ответить] [смотреть все]  
  • –1 +/
    Она уже есть Disable LKM, если я правильно помню название ... весь текст скрыт [показать]
     
  • 2.35, Аноним, 20:47, 13/02/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Эта возможность существует уже четверть века google rootkit... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.42, AlexAT, 21:02, 15/02/2015 [^] [ответить] [смотреть все]  
  • +/
    С ядром есть маленькая проблема - руткит должен быть собран под конкретную верси... весь текст скрыт [показать]
     
  • 1.22, Аноним, 17:32, 11/02/2015 [ответить] [смотреть все]  
  • –1 +/
    определенно нужна функция перезагрузки без перезагрузки ядра
     
     
  • 2.25, Аноним, 20:27, 11/02/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Рекурсивная ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.28, Капитан, 16:44, 12/02/2015 [^] [ответить] [смотреть все]  
  • –1 +/
    JIT
     
  • 2.37, Аноним, 20:50, 13/02/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    systemctl isolate emergency systemctl isolate default, не ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.45, Andrey Mitrofanov, 10:33, 16/02/2015 [^] [ответить] [смотреть все]  
  • +/
    Pid 1 перезапускает А то ж динамически линкованные glibc, openssl, xorg и апач... весь текст скрыт [показать]
     
     
  • 4.48, AlexAT, 22:41, 16/02/2015 [^] [ответить] [смотреть все]  
  • +/
    kexec - перезапускает всё И очень даже быстро, поскольку бут ядра и запуск се... весь текст скрыт [показать]
     
     
  • 5.49, Andrey Mitrofanov, 09:46, 17/02/2015 [^] [ответить] [смотреть все]  
  • +/
    А без перезапуска сервисов I 1 I http opennews art shtml num 41592 ... весь текст скрыт [показать]
     
     
  • 6.50, AlexAT, 09:50, 17/02/2015 [^] [ответить] [смотреть все]  
  • +/
    > А без перезапуска сервисов[I]!1?[/I]

    Скомбинируйте с criu :)

     
  • 2.47, AlexAT, 22:36, 16/02/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    kexec?
     
  • 1.39, Илья, 05:41, 15/02/2015 [ответить] [смотреть все]  
  • –1 +/
    Вот только не понимаю, зачем федоры запихнули "обновление при  перезагрузке в дистр"
     
  • 1.46, count0krsk, 12:52, 16/02/2015 [ответить] [смотреть все]  
  • +1 +/
    Реквестирую отключение по-умолчанию данной "фичи" для не-серверных ядер. Ибо локалхост заведомо слабее защищен, чем "критический сервис", и это может привести к появлению нового ботнета.
     

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


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