Библиотека девопса | DevOps, SRE, Sysadmin
Все самое полезное для девопсера в одном канале. По рекламе: @proglib_adv Учиться у нас: https://proglib.io/w/25874ec4 Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/6798b4e4509aba56522d1787
نمایش بیشتر📈 تحلیل کانال تلگرام Библиотека девопса | DevOps, SRE, Sysadmin
کانال Библиотека девопса | DevOps, SRE, Sysadmin (@devopsslib) در بخش زبانی روسی بازیگری فعال است. در حال حاضر جامعه شامل 10 421 مشترک است و جایگاه 11 884 را در دسته فناوری و برنامهها و رتبه 63 030 را در منطقه روسيا دارد.
📊 شاخصهای مخاطب و پویایی
از زمان ایجاد در невідомо، پروژه رشد سریعی داشته و 10 421 مشترک جذب کرده است.
بر اساس آخرین دادهها در تاریخ 05 ژوئن, 2026، کانال فعالیت پایداری دارد. در ۳۰ روز گذشته تغییر اعضا برابر -4 و در ۲۴ ساعت گذشته برابر 1 بوده و همچنان دسترسی گستردهای حفظ شده است.
- وضعیت تأیید: تأیید نشده
- نرخ تعامل (ER): میانگین تعامل مخاطب 8.39% است و در ۲۴ ساعت نخست پس از انتشار، محتوا معمولاً 5.41% واکنش نسبت به کل مشترکان کسب میکند.
- دسترسی پستها: هر پست به طور میانگین 874 بازدید دریافت میکند. در اولین روز معمولاً 564 بازدید جمعآوری میشود.
- واکنشها و تعامل: مخاطبان بهطور فعال حمایت میکنند؛ میانگین واکنش به هر پست 3 است.
- علایق موضوعی: محتوا بر موضوعات کلیدی مانند devops'a, навигация, скрипт, docker, git تمرکز دارد.
📝 توضیح و سیاست محتوایی
نویسنده این فضا را محل بیان دیدگاههای شخصی توصیف میکند:
“Все самое полезное для девопсера в одном канале.
По рекламе: @proglib_adv
Учиться у нас: https://proglib.io/w/25874ec4
Для обратной связи: @proglibrary_feeedback_bot
РКН: https://gosuslugi.ru/snet/6798b4e4509aba56522d1787”
به لطف بهروزرسانیهای پرتکرار (آخرین داده در تاریخ 06 ژوئن, 2026)، کانال همواره بهروز و دارای دسترسی بالاست. تحلیلها نشان میدهد مخاطبان بهطور فعال با محتوا تعامل دارند و آن را به نقطه اثرگذاری مهم در دسته فناوری و برنامهها تبدیل کردهاند.
.ks файл. Компилятор по атрибутам: @xdp, @tc, @kfunc, @helper; определяет, какая функция относится к какому домену, и генерирует соответствующий C-код. XDP-функции уходят в eBPF-бинарник, обычные функции становятся userspace-кодом, @kfunc превращается в модуль ядра.
Вот минимальный пример XDP-программы на KernelScript:
@xdp fn packet_filter(ctx: *xdp_md) -> xdp_action {
var packet_size = ctx->data_end - ctx->data
if (packet_size > 1500) {
return XDP_DROP
}
return XDP_PASS
}
Для сравнения — та же логика на чистом C заняла бы раза в три больше строк, включая boilerplate для секций, лицензии и привязки к хукам.
Что решает
Главная проблема eBPF-разработки — это количество ручной работы. KernelScript автоматизирует несколько вещей, которые обычно приходится делать руками.
Tail calls. Вместо ручной настройки program arrays и вызовов bpf_tail_call() достаточно написать return other_xdp_func(ctx). Компилятор сам сгенерирует нужный код.
Разделяемые map-ы. Объявляете map один раз, и он доступен во всех программах как обычная переменная:
pin var shared_counter : hash<u32, u32>(1024)
@xdp fn counter(ctx: *xdp_md) -> xdp_action {
shared_counter[1] = shared_counter[1] + 1
return XDP_PASS
}
Lifecycle программ. Тип программы проверяется на этапе компиляции — нельзя вызвать attach() до load().
Генерация kfunc-модулей. Достаточно пометить функцию @kfunc, и компилятор создаст .mod.c файл с модулем ядра и регистрацией BTF-символов.
Как запустить
Зависимости для Debian/Ubuntu:
sudo apt install libbpf-dev libelf-dev zlib1g-dev opam bpftool
Установка:
git clone https://github.com/multikernel/kernelscript.git
cd kernelscript
opam init
opam install . --deps-only --with-test
eval $(opam env) && dune build && dune install
Создание проекта:
kernelscript init xdp my_filterЭто сгенерирует каталог
my_filter/ с файлом my_filter.ks и README.
После редактирования .ks файла — компиляция и сборка:
kernelscript compile my_filter/my_filter.ks
cd my_filter/
make
sudo ./my_filter
На выходе получится структура:
my_filter/ ├── my_filter.ks # исходник KernelScript ├── my_filter.c # userspace-программа ├── my_filter.ebpf.c # eBPF C-код ├── my_filter.mod.c # модуль ядра (если есть @kfunc) ├── Makefile └── README.mdПоддерживаемые типы программ KernelScript поддерживает основные типы eBPF-программ:
@xdp для обработки пакетов, @tc для traffic control, @probe для трассировки функций ядра, @tracepoint для точек трассировки. Отдельно поддерживается struct_ops для TCP congestion control.
Система типов включает type aliases, структуры, enum-ы, фиксированные массивы (u8[64]) и указатели на функции. Всё это спроектировано с учётом ограничений верификатора eBPF, то есть нет сложных дженериков, которые могут сломать верификацию.
Итого
KernelScript не заменяет знание eBPF. Вам всё ещё нужно понимать, что такое XDP, как работают map-ы и зачем нужен bpf_probe_read. Но он убирает рутину и позволяет сосредоточиться на логике, а не на boilerplate. Проект пока в бете, API может меняться. Но если вы работаете с eBPF и устали от связки из трёх языков и пяти make-файлов, попробовать стоит.
➡️ Репозиторий
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#арсенал_инженераpterm падал при записи в utmp и не находил шрифт по умолчанию.
➡️ Источник
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#пульс_индустрииHost *.work.example.com
IdentityFile ~/.ssh/id_ed25519_work
IdentitiesOnly yes
Host github.com
User git
IdentityFile ~/.ssh/id_ed25519_personal
IdentitiesOnly yes
IdentitiesOnly yes запрещает SSH перебирать все ключи из агента. Без этой директивы можно получить отказ на серверах с низким MaxAuthTries.
Если на одной машине два GitHub-аккаунта, создайте алиасы github-personal и github-work с HostName github.com и разными ключами. В remote репозитория укажите алиас вместо github.com:
git remote set-url origin git@github-work:org/repo.git
Общие настройки
ControlMaster переиспользует открытое TCP-соединение вместо нового хендшейка. Keepalive не даёт файрволам закрывать неактивные сессии. ConnectTimeout ограничивает ожидание при подключении к недоступному хосту. Для медленных каналов (VPN, мобильный интернет) добавьте Compression yes.
Host *
ControlMaster auto
ControlPath ~/.ssh/sockets/%r@%h:%p
ControlPersist 4h
ServerAliveInterval 60
ServerAliveCountMax 3
ConnectTimeout 10
Не забудьте mkdir -p ~/.ssh/sockets.
Отладка
ssh -G staging покажет итоговую конфигурацию без подключения. ssh -vvv staging выдаст подробный лог с информацией о том, какой блок совпал и какой ключ используется.
Частые проблемы: конфиг игнорируется из-за прав 644 вместо 600, SSH берёт не тот ключ без IdentitiesOnly yes, ControlMaster падает из-за несуществующей директории для сокетов. Правильные права:
chmod 700 ~/.ssh/
chmod 600 ~/.ssh/config
chmod 600 ~/.ssh/id_*
~/.ssh/config окупается за полчаса настройки. Этот файл стоит хранить в dotfiles-репозитории и обновлять при изменениях в инфраструктуре. По сути это рабочая документация о том, как устроен доступ к вашим серверам.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#root_promptРуководил разработкой ML-моделей в финтехе с экономическим эффектом более 100 млн ₽🟣 Запуск продуктов на 6.000+ пользователей
Антон строит сервисы, которыми пользуются тысячи людей в реальном проде.🟣 Ускоряет разработку
Оптимизировал ML-пайплайны и кратно сократил время от начала разработки до релиза📚 Где Антон черпает знания (рекомендации эксперта): - X (Twitter) — главный источник новостей. Рекомендую блог Бориса Черни (создателя Claude Code) — там база про использование ИИ в разработке. - Нетворкинг в ТГ: чаты LLM под капотом и AI-чат — здесь можно найти ответ почти на любой технический вопрос. - Новости AI: каналы Сиолошная и Denis Sexy IT. На курсе Agentops Антон учит строить «неубиваемый» бэкенд: работать с очередями, таймаутами и балансировкой нагрузки, чтобы ваши агенты работали стабильно 24/7. 🎁 Майские СКИДКИ в Proglib Academy! До конца мая на все курсы академии (включая AgentOps и разработку ИИ-агентов) действует скидка -40%. Это лучший момент, чтобы войти в AI-разработку под присмотром практиков. Узнать больше о программе и обучении у Антона: 👉 Курс о том, как внедрять AI-логику в бэкенд и сохранять стабильность сервиса Продолжаем знакомить вас с командой? 👍 — Да, ждем новых лиц 🔥 — Пойду подпишусь на каналы из списка Антона 🏃♀️ Proglib Academy
~/.ssh/config решает эту проблему. Он позволяет описать все параметры подключения один раз и обращаться к серверу по короткому имени. Но это только начало. Через тот же файл настраиваются jump-хосты, автовыбор ключей, переиспользование соединений и многое другое.
В первой части разберём основы: алиасы, шаблоны и ProxyJump.
Как это устроено
~/.ssh/config читается при каждом вызове ssh, scp, sftp или rsync. Файл состоит из блоков Host, каждый из которых задаёт параметры для конкретного хоста или группы хостов по шаблону.
Если файла ещё нет, создайте его:
mkdir -p ~/.ssh
touch ~/.ssh/config
chmod 600 ~/.ssh/config
Структура простая:
Host staging
HostName 203.0.113.50
User ubuntu
Port 2222
IdentityFile ~/.ssh/id_ed25519_work
IdentitiesOnly yes
Теперь вместо длинной команды с кучей флагов достаточно написать:
ssh staging
То же самое работает с scp и rsync:
scp staging:/var/log/app.log ./
rsync -avz staging:/var/www/html/ ./backup/
Шаблоны и подстановки
Блок Host поддерживает wildcards. Например, чтобы задать настройки для всех продакшн-серверов:
Host *.prod.example.com
User ec2-user
IdentityFile ~/.ssh/id_ed25519_prod
ServerAliveInterval 60
Символ ? работает как подстановка одного символа. Host web-? совпадёт с web-1, web-a, но не с web-10.
Можно указать несколько имён в одном блоке:
Host web db cache
User ubuntu
IdentityFile ~/.ssh/id_ed25519_work
А через ! исключить конкретный хост:
Host * !bastion.prod.example.com
ServerAliveInterval 30
Блок Host * применяется ко всем подключениям и удобен для общих настроек. Важный момент: SSH читает файл сверху вниз и применяет первое совпавшее значение для каждой директивы. Поэтому конкретные блоки размещайте выше общих.
ProxyJump. Прозрачный доступ через bastion
Продакшн-серверы обычно закрыты от прямого доступа. Подключение идёт через bastion-хост. Без конфига это два шага: сначала SSH на bastion, потом оттуда на целевой сервер. С конфигом всё прозрачно:
Host bastion
HostName bastion.prod.example.com
User ubuntu
IdentityFile ~/.ssh/id_ed25519_prod
Host *.prod.internal
User ubuntu
IdentityFile ~/.ssh/id_ed25519_prod
ProxyJump bastion
Теперь ssh db.prod.internal автоматически пойдёт через bastion. Работает и с scp, и с rsync.
Для цепочки из нескольких jump-хостов перечислите их через запятую:
Host deep.internal
ProxyJump bastion.example.com,internal-gateway.example.com
В старых конфигах можно встретить ProxyCommand ssh -W %h:%p bastion.example.com. Это делает то же самое, но ProxyJump короче и понятнее. Для новых конфигов используйте его.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#root_promptsudo minstall --tui
Помимо этого, в установщике улучшена навигация по клавиатуре в TUI-режиме, добавлено редактирование форматов дисков, исправлена работа GRUB с повреждёнными директориями локалей и убрана опция установки ESP GRUB при отсутствии ESP boot-папки.
Из остального: улучшена работа chroot-rescue-scan с Btrfs и зашифрованными разделами, переработана загрузка live-системы (boot-скрипты вынесены из rc.local), добавлена ручная выборка ядра при запуске, обновлены MX Tools, темы и обои. Также вернулся RPI Respin для Raspberry Pi.
Доступны ISO с Xfce, KDE Plasma и Fluxbox. Пользователям MX 25 переустановка не нужна, все обновления приходят через стандартный канал:
sudo apt update && sudo apt full-upgrade
➡️ Анонс
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#пульс_индустрииsudo minstall --tui
Помимо этого, в установщике улучшена навигация по клавиатуре в TUI-режиме, добавлено редактирование форматов дисков, исправлена работа GRUB с повреждёнными директориями локалей и убрана опция установки ESP GRUB при отсутствии ESP boot-папки.
Из остального: улучшена работа chroot-rescue-scan с Btrfs и зашифрованными разделами, переработана загрузка live-системы (boot-скрипты вынесены из rc.local), добавлена ручная выборка ядра при запуске, обновлены MX Tools, темы и обои. Также вернулся RPI Respin для Raspberry Pi.
Доступны ISO с Xfce, KDE Plasma и Fluxbox. Пользователям MX 25 переустановка не нужна, все обновления приходят через стандартный канал:
sudo apt update && sudo apt full-upgrade
➡️ Анонс
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#пульс_индустрииslumber.yml. Это значит, что её можно коммитить в репозиторий и шарить между разработчиками. Не нужно экспортировать коллекции, пересылать JSON-файлы или синхронизировать через облако.
Проект написан на Rust, распространяется под лицензией MIT и останется бесплатным. На GitHub у него около 870 звёзд.
Как начать
Установка через Homebrew:
brew install LucasPickering/tap/slumber
Или через Cargo:
cargo install slumber --locked
Для быстрого старта достаточно сгенерировать шаблон коллекции:
slumber newПосле этого запускаем TUI одной командой:
slumberПример коллекции Допустим, мы работаем с API на двух окружениях — локальном и продакшене. Файл
slumber.yml будет выглядеть так:
profiles:
local:
data:
host: http://localhost:5000
production:
data:
host: https://myfishes.fish
requests:
create_fish:
method: POST
url: "{{ host }}/fishes"
body:
type: json
data: { "kind": "barracuda", "name": "Jimmy" }
list_fish:
method: GET
url: "{{ host }}/fishes"
query:
big: true
Переменная {{ host }} подставляется из текущего профиля. Переключение между local и production делается прямо в TUI без правок файла.
Что ещё умеет
Slumber поддерживает шаблоны (templates), которые позволяют собирать запросы динамически — из результатов других запросов, файлов или вывода shell-команд. Ответы можно фильтровать через JSONPath прямо в интерфейсе. Если вы переезжаете с Insomnia, есть встроенный импорт коллекций. Также Slumber можно использовать как Python-пакет для интеграции в свои инструменты.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#арсенал_инженераinitialDelaySeconds: 25 на каждом сервисе. А serverless с таким холодным стартом вообще не вариант.
GraalVM Native Image компилирует Java-приложение в нативный бинарник ещё на этапе сборки. Никакого JVM внутри, никакой интерпретации байткода. На выходе получаем старт за 60–90 мс и 55 МБ памяти в idle вместо 280.
Как это работает
GraalVM делает AOT-компиляцию (Ahead-of-Time). Статический анализатор проходит по всему коду и собирает в бинарник только то, что реально используется. Это называется closed-world assumption: всё, что не видно анализатору на этапе сборки, в бинарник не попадает. Мёртвый код, неиспользуемые библиотеки, весь JIT-компилятор — всё отсекается.
Отсюда же и главная проблема. Java активно использует рефлексию, динамическую загрузку классов и runtime-генерацию прокси. Статический анализатор этого не видит. Код соберётся, а в рантайме упадёт с ClassNotFoundException.
Spring Boot 3.x решает это через собственный AOT-движок: он заранее обрабатывает метаданные, подменяет динамические вызовы статическими и генерирует код регистрации бинов до компиляции.
Как собрать
В pom.xml добавляем плагин:
<build>
<plugins>
<plugin>
<groupId>org.graalvm.buildtools</groupId>
<artifactId>native-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
Собираем нативный образ:
mvn -Pnative native:compile
Или через Docker (удобнее для CI/CD, не нужен локальный GraalVM):
mvn -Pnative spring-boot:build-image
Сборка занимает 3–8 минут даже для небольших сервисов. Это нормально — статический анализ и AOT-компиляция делают много работы. В пайплайне это отдельный шаг, не для быстрого фидбека.
Когда это нужно
JVM не устарела. Для сервисов с постоянной нагрузкой, где важен максимальный throughput после прогрева, обычный JVM с JIT по-прежнему лучший выбор.
GraalVM Native Image — для другого сценария: serverless-функции, сервисы, которые скейлятся до нуля ночью, event-driven обработчики с пиковой нагрузкой и долгими паузами, batch-задачи, которые запускаются раз в сутки.
➡️ Больше Java тут
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#арсенал_инженераaws_bedrockagent_agent, и это работает.
Где граница
Спор сводится к одному вопросу: где заканчивается инфраструктура и начинается приложение?
Terraform хорошо управляет тем, что декларативно, стабильно и должно быть одинаковым между окружениями. IAM-роли, сетевые политики, секреты, очереди — всё это ложится в .tf файлы без вопросов.
Но системный промпт, набор MCP-инструментов, логика планирования — это части, которые меняются часто и зависят от контекста. Класть их в Terraform значит получить медленный цикл обратной связи: plan → apply на каждое изменение промпта.
Единственного правильного ответа пока нет. Но сам факт, что DevOps-сообщество обсуждает управление агентами как инфраструктурную задачу, говорит о том, что количество агентов в продакшене растёт.
Агенты как ресурсы может и спорно, но наша рассылка точно только в плюс.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#арсенал_инженераsystemctl и отправкой уведомлений в Telegram.
Базовая версия
Создаём файл:
nano check_services.sh
Содержимое:
#!/bin/bash
SERVICES=("nginx" "postgresql" "redis" "ssh")
echo "===== СТАТУС СЕРВИСОВ ====="
echo ""
for SERVICE in "${SERVICES[@]}"; do
STATUS=$(systemctl is-active "$SERVICE" 2>/dev/null)
if [ "$STATUS" = "active" ]; then
echo "[OK] $SERVICE"
else
echo "[УПАЛ] $SERVICE"
fi
done
Даём права и запускаем:
chmod +x check_services.sh
./check_services.sh
Массив SERVICES правите под свой стек. Вывод будет примерно таким:
===== СТАТУС СЕРВИСОВ ===== [OK] nginx [OK] postgresql [УПАЛ] redis [OK] sshВерсия с уведомлением в Telegram Базовая версия показывает результат в консоли. Но если скрипт работает по cron, вы его вывод не увидите. Добавим отправку сообщения в Telegram при обнаружении упавшего сервиса. Для этого понадобится бот и chat_id. Бота создаёте через
@BotFather, chat_id получаете через @userinfobot или из API бота после отправки ему любого сообщения.
#!/bin/bash
SERVICES=("nginx" "postgresql" "redis" "ssh")
BOT_TOKEN="123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11"
CHAT_ID="987654321"
FAILED=""
for SERVICE in "${SERVICES[@]}"; do
STATUS=$(systemctl is-active "$SERVICE" 2>/dev/null)
if [ "$STATUS" != "active" ]; then
FAILED="${FAILED} ${SERVICE}\n"
fi
done
if [ -n "$FAILED" ]; then
HOSTNAME=$(hostname)
MESSAGE=" Проблема на ${HOSTNAME}\n\nУпавшие сервисы:\n${FAILED}"
curl -s -X POST "https://api.telegram.org/bot${BOT_TOKEN}/sendMessage" \
-d chat_id="$CHAT_ID" \
-d text="$(echo -e "$MESSAGE")" \
-d parse_mode="HTML" > /dev/null
fi
Скрипт отправляет сообщение только когда что-то упало. Если все сервисы работают, он молчит и не спамит в чат.
Добавляем в cron
Открываем crontab:
crontab -e
Добавляем строку для проверки каждые 5 минут:
*/5 * * * * /path/to/check_services.sh
Что можно доработать
Скрипт намеренно простой, но его легко расширить. Например, добавить автоматический перезапуск упавшего сервиса через systemctl restart "$SERVICE" прямо в блоке проверки. Или писать результаты в лог-файл для истории. Если серверов несколько, можно запускать скрипт удалённо через ssh в цикле по списку хостов.
Для продакшена с десятками сервисов и серверов лучше смотреть в сторону полноценных решений. Но для пары серверов этот скрипт закрывает задачу за пять минут настройки.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#root_promptgoose с поддержкой стриминга и MCP. Обновились тулсеты: Go 1.26, Python 3.14, Ruby 4.0, OpenJDK 25, PostgreSQL 18, MariaDB 11.8.
— Шумахер посчитал строки кода в KDE
— В Linux добавили правила для AI-репортов
— OpenBSD 7.9
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#дайджест_неделиtoggle_window_title_bars.
Авто-перезагрузка конфига
Появилась опция auto_reload_config. Больше не нужно вручную перезагружать kitty после правки конфигурации — изменения применяются сами.
Прогресс-бар
Kitty теперь отображает прогресс-бар в верхней части окна, когда программа сообщает о прогрессе через escape-последовательность OSC 9;4. Поведение управляется через опцию progress_bar.
Генерация палитры
Новая опция palette_generate автоматически строит 256-цветную палитру на основе первых 16 цветов. Полезно, если вы настраиваете тему и хотите согласованную палитру без ручной работы.
Скроллинг
Действия scroll_line_up и scroll_line_down теперь по умолчанию используют плавный скроллинг. Если нужно вернуть старое поведение, пересоздайте маппинг без аргумента smooth. На Wayland жест удержания (hold) теперь останавливает инерционный скроллинг при касании трекпада.
Фоновые изображения
Можно указать несколько записей background_image, и все они хранятся на GPU. Переключение между фонами стало быстрее.
Фокус
Опция focus_follows_mouse теперь переключает активное окно только при переходе курсора в другое окно, а не при любом движении мыши.
Платформенные изменения
На Linux kitty учитывает fontconfig matrix для fake slant шрифтов без курсива. Исправлена проблема с искажением цветов на Nvidia после выхода из suspend. На X11 устранён краш при отключении устройства ввода. На macOS — новая иконка в стиле Tahoe с отдельными фонами для светлой и тёмной темы, исправлены фантомные курсоры и работа аргументов через open --args.
Прочее
В выводе kitten @ ls появились поля session_name и last_focused_at. В diff kitten'е добавились sticky-заголовки. Улучшена производительность рендеринга таб-бара при использовании данных активных процессов. Добавлена поддержка отрисовки Unicode-символов из блока Symbols for Legacy Computing Supplement.
➡️ Полный список изменений
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#пульс_индустрииinitramfs убирает лишние перезагрузки, а значит устройства быстрее вводятся в строй.
Сборка образов теперь работает через Chisel. Каждый файл в файловой системе привязан к конкретному slice и исходному пакету. Это даёт точную трассировку зависимостей и упрощает проверку целостности. В сравнении с Yocto, где зависимости скрыты в слоях рецептов, подход Core 26 делает происхождение каждого компонента явным. Бонусом базовый образ похудел на 7%.
Для шифрования дисков (FDE) ключи TPM теперь хранятся прямо в заголовке LUKS2, что снижает риск повторного использования ключей между состояниями устройства. Появилась нативная интеграция с OP-TEE для ARM TrustZone — ключи шифрования запечатываются и распечатываются внутри Trusted Execution Environment.
Livepatch впервые работает на ARM64, обеспечивая патчинг ядра без перезагрузки. На AMD64 Livepatch официально поддерживается для всех версий, начиная с Ubuntu Core 20.
Из инструментария: Ubuntu Frame теперь поддерживает несколько графических приложений на одном дисплее с настраиваемой раскладкой. Появился интерфейс gpu-2604 для аппаратного ускорения графики.
В Snapcraft добавили компоненты — способ распространять крупные или опциональные ресурсы: драйверы, символы отладки, переводы; отдельно от основного snap-пакета.
Релиз важен для тех, кто готовится к EU Cyber Resilience Act. Canonical берёт на себя обязанности «производителя» по CRA в рамках жизненного цикла ОС и обеспечивает мониторинг CVE, координированное раскрытие уязвимостей и соответствие IEC 62443-4-1.
➡️ Источник
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#пульс_индустрии
اکنون در دسترس! پژوهش تلگرام ۲۰۲۵ — مهمترین بینشهای سال 
