Линус Торвальдс объявил о выпуске Linux 5.18 — новой серии стабильных ядер с улучшенной поддержкой оборудования. Релиз появился ровно через два месяца после 5.17 и прошёл семь стадий RC, за которые разработчики исправляли ошибки и доводили новые функции.

Среди заметных изменений — переход на стандарт C11, поддержка пользовательских событий в трассировке и много новых устройств. Разберём, что это значит и как обновиться.

C11 вместо C89

Ядро долго следовало стандарту C89, чтобы обеспечить совместимость с компиляторами. Переход к C11 открывает новые возможности языка, включая выравнивание по требованию и атомарные операции.

Для пользователей это невидимо: производительность не меняется, но разработчики получают более удобные инструменты и меньше ручной работы.

# проверить версию компилятора
gcc --version | head -1
# версия ядра
uname -r
uname -v
# стандарт, с которым собрано ядро (в исходниках)
grep -rn "std=gnu" Makefile 2>/dev/null | head

Пользовательские события (user_events)

User events — механизм, который позволяет пользовательскому пространству писать события в отладочный трейсинг ядра. Это упрощает инструменты мониторинга и разработку трассировок без пересборки ядра.

Для администратора полезно тем, что улучшает диагностику: события приложений и системные события становятся видны в одном месте.

# проверить поддержку tracefs
ls /sys/kernel/tracing/ 2>/dev/null | head
# или legacy-путь
ls /sys/kernel/debug/tracing/ 2>/dev/null | head
# доступные события
cat /sys/kernel/tracing/available_events 2>/dev/null | head -20
# пользовательские события
ls /sys/kernel/tracing/user_events_data 2>/dev/null

Для работы может потребоваться включить tracefs и иметь права root.

# смонтировать tracefs
sudo mount -t tracefs tracefs /sys/kernel/tracing 2>/dev/null
# включить лёгкую трассировку на короткое время
sudo tracing_on=1 2>/dev/null || echo 1 | sudo tee /sys/kernel/tracing/tracing_on
# выключить после сбора
echo 0 | sudo tee /sys/kernel/tracing/tracing_on

Оборудование

5.18 приносит поддержку новых Wi-Fi-адаптеров, GPU, звуковых карт и контроллеров хранения. Для владельцев свежих ноутбуков это частая причина обновления.

lspci -nnk | grep -A3 -iE "vga|network|audio"
lsusb
dmesg | grep -iE "firmware|failed" | head -20
# версия прошивок
sudo fwupdmgr get-devices 2>/dev/null | head -30

Новые драйверы иногда бывают сырыми. Если устройство нестабильно, проверьте, не появилась ли более свежая версия в репозитории.

Планировщик и память

Каждый релиз приносит изменения в планировщик и управление памятью. На большинстве систем они незаметны, но под параллельными нагрузками могут менять время отклика.

# текущее состояние памяти
free -h
cat /proc/pressure/memory 2>/dev/null
# нагрузка по ядрам
mpstat -P ALL 2 3 2>/dev/null | tail -12
# топ процессов
ps -eo pid,comm,%cpu,%mem --sort=-%cpu | head -10

Обновление

Способ зависит от дистрибутива. В rolling-релизах ядро обновляется автоматически, в стабильных — отдельным пакетом.

# Ubuntu/Debian
sudo apt update && sudo apt full-upgrade
# Fedora
sudo dnf upgrade --refresh kernel
# Arch
sudo pacman -Syu linux
sudo reboot
uname -r

Для серверов выберите окно обслуживания: перезагрузка обязательна. Перед обновлением сохраните список модулей и версии.

dkms status > ~/dkms-before.txt
uname -r > ~/kernel-before.txt
ls /boot/vmlinuz-* > ~/kernels.txt

Что проверить после перезагрузки

  1. Загрузку и графику.
  2. Сон и гибернацию.
  3. Wi-Fi, Ethernet, Bluetooth.
  4. Звук и микрофон.
  5. Внешние диски и файловые системы.
  6. Контейнеры и виртуальные машины.
  7. Сторонние модули (NVIDIA, VirtualBox, ZFS).
systemctl --failed
journalctl -k -b -p err | tail -40
ip -br a
df -h
dkms status
docker ps 2>/dev/null | head

Если система не загрузилась, выберите предыдущее ядро в GRUB и сохраните журнал для разбора.

journalctl -k -b -1 | tail -100
lsmod | grep -E "nvidia|vbox|zfs"

Срок жизни ветки

5.18 не LTS: её поддержка продлится до выхода следующих веток. Для долгосрочных систем используйте ядро дистрибутива с поддерживаемой базой.

# проверить ветку в репозитории
apt-cache policy linux-image-generic 2>/dev/null | head
dnf info kernel 2>/dev/null | head
# и срок поддержки дистрибутива
ubuntu-support-status 2>/dev/null | head -20

Трассировка на практике

С user_events инструменты могут добавлять собственные точки без пересборки ядра. Это упрощает профилирование: вы включаете сбор, воспроизводите проблему и выключаете.

# включить сбор (кратковременно)
echo 1 | sudo tee /sys/kernel/tracing/tracing_on
# собрать
sudo cat /sys/kernel/tracing/trace | head -40
# остановить
echo 0 | sudo tee /sys/kernel/tracing/tracing_on
# размер буфера
cat /sys/kernel/tracing/buffer_size_kb

Не оставляйте трассировку включённой постоянно: буфер растёт и создаёт нагрузку. После сбора выключайте и очищайте трассу.

Пользовательские события в диагностике

Точки событий помогают отследить, когда приложение вызывает системные функции. Это полезно при отладке медленных сценариев, но требует прав root и аккуратности с чувствительными данными.

# доступные точки вызовов
cat /sys/kernel/tracing/available_filter_functions | grep -i event | head -10
# включить конкретную группу событий
echo 1 | sudo tee /sys/kernel/tracing/events/initcall/initcall_start/enable
# собрать журнал событий
sudo cat /sys/kernel/tracing/trace_pipe | head -30

Проверьте также, что сторонние модули пересобрались после обновления: иначе система загрузится без графики или без сети.

Итог

Linux 5.18 пришёл с семью RC, переходом на C11, пользовательскими событиями в трассировке и поддержкой нового оборудования. Это обычный стабильный релиз без долгосрочной поддержки. Обновляйтесь штатным способом, сохраняйте старое ядро и проверяйте сеть, диски, звук и DKMS-модули после перезагрузки.

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 0 / 5. Количество оценок: 0

Оценок пока нет. Поставьте оценку первым.

Поделиться: Telegram ВКонтакте