
Canonical Livepatch теперь официально поддерживает архитектуру ARM64. Системные администраторы получают больше возможностей для автоматизации, а обновления безопасности будут интегрироваться в систему чаще и без задержек — не придется каждый раз ждать удобного момента для рестарта высоконагруженной системы.
Поддержка начинается с релиза Ubuntu Core 26 для ARM-архитектуры и с версии Core 20 для AMD64.
Ubuntu Core — это специальная, максимально облегченная версия Ubuntu. Она разработана не для серверов или обычных домашних компьютеров, а для устройств «интернета вещей» (IoT), робототехники, «умных» плат и промышленных систем. Характерная черта — идеальная оптимизация для работы на ARM64.
Нововведение серьезно повышает безопасность систем, у которых нет окон регулярного обслуживания — скажем, раз в день или неделю. Непрерывный патчинг очень важен и для компаний, которым необходимо соответствовать жестким требованиям европейского закона о киберустойчивости (Cyber Resilience Act).
Новость еще примечательна тем, что за ней стоит колоссальная проделанная работа.
К проекту в Canonical приступили в конце 2023 года. Ubuntu предоставляла сборки ARM64 почти для каждого выпущенного ядра, однако к поддержке автоматического обновления экосистема была не готова.
Чтобы накладывать обновления «на лету», ядро должно безошибочно определять момент, когда текущую задачу безопасно перевести на исправленный код. Главную роль в этом механизме играют надежные трассировки стека — такие, как параметр CONFIG_HAVE_RELIABLE_STACKTRACE. И именно здесь крылась проблема: в апстриме ядра для ARM64 долгое время не было стабильной и всеми признанной реализации этой функции.
Вдобавок хромал и сам инструментарий для сборки и побайтового сравнения оригинальных и пропатченных ядер. Те же GCC, objdump и Kpatch не могли похвастаться зрелой поддержкой ARM-архитектуры. Различные патчи и пулл-реквесты предлагались энтузиастами еще с 2021 года, но эти наработки вязли в горячих спорах комьюнити и так и не сливались с основной веткой.
Массовое внедрение мощных ARM-процессоров в облаках и усложнение периферийных устройств не оставили выбора — решать эту головоломку пришлось всей индустрии. Потребовалась усердная кооперация инженеров, ведущих разработчиков ОС, облачных гигантов, вендоров железа и широкого опенсорс-сообщества.
В какой‑то момент пазл сложился. В апстрим наконец-то влили нужные доработки для использующихся инструментов, модели консистентности ядра для Arm64 и механизма проверок надежности трассировки стека. Появилась та самая критически важная «страховочная сетка», которая позволяет официально и безопасно подменять код прямо «на живом» ядре.
Пришло время для масштабного тестирования и проверки сборочной инфраструктуры на прочность.
Сборка лайв-патчей требует компиляции сразу двух копий ядра Linux. Учитывая, что обновления проверяются кумулятивно для огромного парка ядер, версий Ubuntu и различных архитектур, процесс быстро превращается в непростую вычислительную задачу. Инженерам приходится оперировать целыми сборочными фермами, где код компилируется непосредственно на целевых платформах и ровно тем же компилятором, что и само ядро.

Мобильная ферма Selectel
Запустите тесты на реальных Android- или iOS-устройствах.
При этом никакой эмуляции, тесты идут только нативно — все ради максимальной производительности и стопроцентной корректности сборки. Важно было железобетонно гарантировать, что лайв-патчи для ARM64 ни в чем не уступают по стабильности проверенным решениям на AMD64.
В завершение команда основательно перетряхнула сеть дистрибуции и сами клиенты,тем самым обеспечила бесшовную мультиархитектурную доставку.
Усилия принесли результат: уже в конце февраля клиент Livepatch под ARM64 успешно накладывал обновления ядра «на живую» в тестовых средах для Ubuntu 26.04 LTS и Ubuntu Core 26. Сегодня же поддержка стала официальной.
ссылка на оригинал статьи https://habr.com/ru/articles/1050822/