Недавно Линус Торвальдс, создатель и сопровождающий ядра Linux, объявили о выпуске версии 6.6, после исчерпания всех оправданий, чтобы отложить работу. Эта новая версия содержит несколько новых функций и улучшений, особенно с точки зрения безопасности, аппаратной поддержки и производительности. Одной из наиболее заметных новых функций Linux 6.6 является планировщик EEVDF., который заменяет планировщик CFS.
Среди основных особенностей Linux 6.6 — реализация Intel Shadow Stack (который, несмотря на свое название, также приносит пользу некоторым чипам AMD), технологии аппаратной безопасности, которая защищает приложения от атак возвратно-ориентированного программирования (ROP). на процессорах Intel Tiger Lake и более поздних версиях.
Основные новые возможности Linux 6.6
В представленной новой версии Linux 6.6Добавлены дополнительные конфигурации для независимых рабочих очередей. для повышения эффективности повторного использования кэша процессора в больших системах с несколькими кэшами третьего уровня (L3). Ядро также включает утилиту Tools/workqueue/wq_dump.py. для проверки текущей конфигурации рабочих очередей.
Еще одно важное изменение: добавлена поддержка числовых параметров в настройки /sys/устройства/система/процессор/смт/ элементы управления, определяющие количество потоков, доступных для каждого ядра ЦП (ранее поддерживались только значения «вкл» и «выкл» для включения или отключения поддержки симметричной многопоточности). новую функцию можно использовать на некоторых процессорах PowerPC которые поддерживают симметричную многопоточность с горячим подключением («горячее подключение SMT») для выборочного включения SMT на определенных ядрах во время работы.
Со стороны файловой системы В Linux 6.6 улучшены поддержка зональных устройств и сжатие для F2FS., поддержка общих mmap в режиме без кэша для FUSE, исправления для netfilter и BPF, многочисленные исправления для драйвера AMDGPU, исправления регрессии для поддержки MIDI 2.0 и улучшенное управление питанием Intel RAPL.
Linux 6.6 также добавляет компилятор BPF как раз вовремя для архитектуры PA-RISC., поддержка горячего подключения SMT для архитектуры PowerPC, новый флаг для API монтирования, который предотвращает совместное использование суперблоков в памяти монтированием с другими монтированиями, поддержка SEV-Guests SNP и TDX в Hyper-V и операции, поддерживающие начальные сетевые значения. для подсистемы io_uring. В подсистему BPF добавлена поддержка дефрагментации пакетов IPv4 и IPv6, а также возможность фильтрации фрагментированных пакетов. В BPF был добавлен новый обработчик update_socket_protocol, позволяющий программам BPF изменять запрошенный протокол для новых сокетов.
Кроме того, информация добавлена в файл /proc/pid/smaps для диагностики эффективности механизма слияния идентичных страниц памяти (KSM: Kernel Samepage Merging).
Удален Frontswap API, позволяющий размещать раздел подкачки в памяти, к которой нельзя обратиться напрямую и который не предоставляет оперативную информацию о наличии свободного места. Этот API использовался только в zswap, поэтому было решено использовать этот функционал непосредственно в zswap, исключив ненужные слои.
XFS подготовлена для возможности использования утилиты fsck. проверять и устранять выявленные проблемы онлайн, не размонтируя файловую систему. Кроме того, в XFS реализована возможность использования больших записей в кэше страниц и добавлены некоторые связанные оптимизации, которые значительно повысили производительность для некоторых типов рабочих нагрузок.
Файловая система в tmpfs добавлена поддержка расширенных атрибутов пользователя. (пользовательские xattrs), прямой ввод-вывод, а также квоты пользователей и групп. Стабилизированы смещения каталогов, что позволило решить проблемы с экспортом tmpfs через NFS.
В дополнение к этому было добавлено реализация механизма Shadow Stack, позволяющий блокировать работу многих эксплойтов, использование аппаратных возможностей процессоров Intel для защиты от перезаписи адреса возврата функции в случае переполнения буфера в стеке.
La Esencia защита заключается в том, что После передачи управления функции процессор сохраняет адреса возврата не только в обычном стеке, но и в отдельном «Теневом» стеке. которые нельзя изменить напрямую. Перед выходом из функции адрес возврата извлекается из скрытого стека и сравнивается с адресом возврата в основном стеке. Несовпадающие адреса вызывают возникновение исключения, блокирующего ситуации, когда эксплойту удалось перезаписать адрес в основном стеке. Аппаратный теневой стек поддерживается только в 64-битных сборках, а программная эмуляция используется в 32-битных сборках.
Из другие изменения, которые выделяются этой новой версии:
- Добавлена первоначальная поддержка инструкций ARM SME (расширение масштабируемой матрицы).
- Расширены возможности утилиты perf.
- В подсистему VFIO для управления устройствами VFIO добавлен новый символьный интерфейс (/dev/vfio/devices/vfioX), позволяющий пользователю напрямую открывать файл устройства без доступа к устаревшему групповому интерфейсу /dev/vfio/$ groupID .
- Сервер NFS больше не поддерживает устаревшие типы шифрования Kerberos, использующие алгоритмы DES и 3DES.
- Реализация семейства адресов AF_XDP (eXpress Data Path) была расширена для работы с пакетами, хранящимися в нескольких буферах.
- Программы, использующие сокеты AF_XDP, теперь могут получать и передавать пакеты из нескольких буферов одновременно.
- Флаг экспериментальной разработки был удален из модуля ksmbd, обеспечивающего реализацию файлового сервера на уровне ядра на основе протокола SMB3.
- Добавлена поддержка объединения операций чтения (запросы «составное чтение»).
Наконец, если вы заинтересованы в том, чтобы узнать больше об этом, вы можете ознакомиться с подробностями в по следующей ссылке.