Site categories All
#linux
После двух месяцев разработки Линус Торвальдс представил релиз ядра Linux 6.3. Среди наиболее заметных изменений: чистка устаревших ARM-платформ и графических драйверов, продолжение интеграции поддержки языка Rust, утилита hwnoise, поддержка древовидных структур red-black в BPF, режим BIG TCP для IPv4, встроенный тест производительности Dhrystone, возможность запрета исполнения в memfd, поддержка создания HID-драйверов, используя BPF, в Btrfs приняты изменения для уменьшения фрагментации групп блоков.

В новую версию принято 15637 исправлений от 2055 разработчиков; размер патча - 76 МБ (изменения затронули 14296 файлов, добавлено 1023183 строк кода, удалено 883103 строк). Для сравнения в прошлой версии было предложено 16843 исправлений от 2178 разработчиков; размер патча - 62 МБ. Около 39% всех представленных в ядре 6.3 изменений связаны с драйверами устройств, примерно 15% изменений имеют отношение к обновлению кода, специфичного для аппаратных архитектур, 10% связано с сетевым стеком, 5% - с файловыми системами и 3% c внутренними подсистемами ядра.
После двух месяцев разработки Линус Торвальдс представил релиз ядра Linux 6.0. Значительное изменение номера версии произведено из эстетических соображений и является формальным шагом, снимающим дискомфорт из-за накопления большого числа выпусков в серии (Линус пошутил, что причина смены номера ветки скорее в том, что у него заканчиваются пальцы на руках и ногах считать номера версий). Среди наиболее заметных изменений: поддержка асинхронной буферизированной записи в XFS, блочный драйвер ublk, оптимизация планировщика задач, механизм верификации корректности работы ядра, поддержка блочного шифра ARIA.
Rust будет принят в состав ядра Linux 6.1. Создан Rust-драйвер для Ethernet-чипов Intel

На мероприятии Kernel Maintainers Summit Линус Торвальдс объявил, что, если не всплывут непредвиденные проблемы, патчи для поддержки разработки драйверов на языке Rust будут включены в состав ядра Linux 6.1, релиз которого ожидается в декабре.

Из преимуществ появления поддержки Rust в ядре называется упрощение написания безопасных драйверов устройств за счёт снижения вероятности совершения ошибок при работе с памятью и мотивирование новых разработчиков включаться в работу над ядром. "Rust - это одна из тех вещей, которые, как я думаю, привлекут новые лица... мы стареем и седеем" сказал Линус.
Компания Oracle опубликовала стабильные выпуски дистрибутива Oracle Linux 9 и ядра Unbreakable Enterprise Kernel 7 (UEK R7), позиционируемого для использования в дистрибутиве Oracle Linux в качестве альтернативы штатному пакету с ядром из Red Hat Enterprise Linux. Дистрибутив Oracle Linux 9 создан на основе пакетной базы Red Hat Enterprise Linux 9 и полностью бинарно совместим с ней.

Для загрузки без ограничений предложены установочные iso-образы, размером 8.6 ГБ и 840 МБ, подготовленные для архитектур x86_64 и ARM64 (aarch64). Для Oracle Linux 9 открыт неограниченный и бесплатный доступ к yum-репозиторию с бинарными обновлениями пакетов с устранением ошибок (errata) и проблем безопасности. Для загрузки также подготовлены отдельно поддерживаемые репозитории с наборами пакетов Application Stream и CodeReady Builder.

Помимо пакета с ядром из состава RHEL (на базе ядра 5.14) в Oracle Linux предложено собственное ядро Unbreakable Enterprise Kernel 7, основанное на ядре Linux 5.15 и оптимизированное для работы с промышленным программным обеспечением и оборудованием Oracle. Исходные тексты ядра, включая разбивку на отдельные патчи, доступны в публичном Git-репозитории Oracle. Ядро Unbreakable Enterprise Kernel устанавливается по умолчанию, позиционируется в качестве альтернативы штатному пакету с ядром RHEL и предоставляет ряд расширенных возможностей, таких как интеграция DTrace и улучшенная поддержка Btrfs. Кроме дополнительного ядра по функциональности выпуски Oracle Linux 9 и RHEL 9 полностью идентичны (список изменений можно посмотреть в анонсе RHEL9).
В дистрибутивах впроваджується nftables, а разом з ним, нібито для швидкого переходу, firewalld.
Провівши два роки (чи більше, хто ж рахує) з firewalld, зробив для себе висновок - користуватися firewalld я не буду.
Тому, для швидкого входу в nftables, виділив основні моменти, які потрібні особисто мені.
Компания iXsystems, развивающая дистрибутив для быстрого развёртывания сетевых хранилищ FreeNAS и основанные на нём коммерческие продукты TrueNAS, опубликовала первый стабильный релиз дистрибутива TrueNAS SCALE, примечательный использованием ядра Linux и пакетной базы Debian, в то время как все ранее выпускаемые продукты данной компании, в том числе TrueOS (бывший PC-BSD), основывались на FreeBSD. Как и TrueNAS CORE (FreeNAS) новый продукт может быть загружен и использован бесплатно. Размер iso-образа 1.5 ГБ. Разработка специфичных для TrueNAS SCALE сборочных сценариев, web-интерфейса и прослоек ведётся на GitHub.

Разработка и поддержка TrueNAS CORE (FreeNAS) на базе FreeBSD будет продолжена - решения на основе FreeBSD и Linux будут сосуществовать и дополнять друг друга, используя общую кодовую базу инструментария и типовой web-интерфейс. В качестве файловой системы в TrueNAS SCALE применяется ZFS (OpenZFS). Предоставление дополнительной редакции на базе ядра Linux объясняется желанием реализовать некоторые идеи, недостижимые при использовании FreeBSD. Примечательно, что это не первая подобная инициатива - в 2009 году от FreeNAS уже отделился дистрибутив OpenMediaVault, который был переведён на ядро Linux и пакетную базу Debian.
 
Компания Qualys выявила уявзвимость (CVE-2021-4034) в системном компоненте Polkit (бывший PolicyKit), используемом в дистрибутивах для организации выполнения непривилегированными пользователями действий, требующих повышенных прав доступа. Уязвимость позволяет непривилегированному локальному пользователю повысить свои привилегии до пользователя root и получить полный контроль за системой. Проблема получила кодовое имя PwnKit и примечательная подготовкой рабочего эксплоита, работающего в конфигурации по умолчанию в большинстве дистрибутивов Linux.

Проблема присутствует во входящей в состав PolKit утилите pkexec, поставляемой с флагом SUID root и предназначенной для запуска команд с привилегиями другого пользователя в соответствии с заданными правилами PolKit. Из-за некорректной обработки передаваемых в pkexec аргументов командной строки непривилегированный пользователь мог обойти аутентификацию и добиться запуска своего когда с правами root, независимо от установленных правил доступа. Для атаки не важно какие настройки и ограничения в PolKit заданы, достаточно чтобы для исполняемого файла с утилитой pkexec был выставлен признак SUID root.
Представлен выпуск дистрибутива CentOS 2111, вобравший в себя изменения из Red Hat Enterprise Linux 8.5. Дистрибутив полностью бинарно совместим с RHEL 8.5. Сборки CentOS 2111 подготовлены (8 ГБ DVD и 600 МБ netboot) для архитектур x86_64, Aarch64 (ARM64) и ppc64le. Пакеты SRPMS, на основе которых произведена сборка бинарных файлов, и debuginfo доступны через vault.centos.org.

Помимо новых возможностей, появившихся в RHEL 8.5, в CentOS 2111 изменено содержимое 34 пакетов, среди которых anaconda, dhcp, firefox, grub2, httpd, kernel, PackageKit и yum. Внесённые в пакеты изменения, как правило, сводятся к ребрендингу и замене художественного оформления. Удалены специфичные для RHEL пакеты, такие как redhat-*, insights-client и subscription-manager-migration*. Как и в RHEL 8.5 для CentOS 8.5 сформированы дополнительные AppStream-модули с новыми версиями OpenJDK 17, Ruby 3.0, nginx 1.20, Node.js 16, PHP 7.4.19, GCC Toolset 11, LLVM Toolset 12.0.1, Rust Toolset 1.54.0 и Go Toolset 1.16.7.

Это последний выпуск ветки 8.x, которую в конце года заменит непрерывно обновляемая редакция дистрибутива CentOS Stream. Выпуск обновлений для CentOS Linux 8 будет прекращён 31 декабря. 31 января или раньше, в случае выявления критических уязвимостей, связанное с веткой CentOS Linux 8 содержимое будет удалено с зеркал и перемещено в архив vault.centos.org.
Специалисты компании Qualys сообщили о новой уязвимости в ОС Linux, которая позволяет получить права суперпользователя на большинстве дистрибутивов, в частности, Ubuntu, Debian и Fedora.

Проблема (CVE-2021-33909), получившая название Sequoia, содержится в файловой системе Linux и представляет собой уязвимость чтения за пределами буфера (out-of-bounds read). По словам экспертов, проблема связана с некорректной обработкой длины имени файла. С ее помощью непривилегированный локальный пользователь может запустить код с правами суперпользователя.

Экспертам удалось успешно проэксплуатировать проблему на системах с установленными дистрибутивами Ubuntu 20.04, Ubuntu 20.10, Ubuntu 21.04, Debian 11 и Fedora 34 Workstation. Отмечается, что и Linux другие дистрибутивы Linux, скорее всего, подвержены данной уязвимости.
Состоялся релиз дистрибутива Rocky Linux 8.4, нацеленного на создание новой свободной сборки RHEL, способной занять место классического CentOS, после того как компания Red Hat приняла решение прекратить поддержку ветки CentOS 8 в конце 2021 года, а не в 2029 году, как предполагалось изначально. Это первый стабильный релиз проекта, признанный готовым для рабочих внедрений. Сборки Rocky Linux подготовлены для архитектур x86_64 и aarch64.

Дистрибутив полностью бинарно совместим с Red Hat Enterprise Linux 8.4. Как и в классическом CentOS внесённые в пакеты изменения сводятся к избавлению от привязки к бренду Red Hat. Проект развивается под руководством Грегори Курцера (Gregory Kurtzer), основателя CentOS. Параллельно для развития расширенных продуктов на базе Rocky Linux и поддержки сообщества разработчиков данного дистрибутива создана коммерческая компания Ctrl IQ, которая получила 4 млн долларов инвестиций. Сам дистрибутив Rocky Linux обещают развивать независимо от компании Ctrl IQ под управлением сообщества. К разработке и финансированию проекта также присоединилась такие компании, как Google, Amazon Web Services, GitLab, MontaVista, 45Drives, OpenDrives и NAVER Cloud.
Спустя девять лет с момента прошлого выпуска сформирован релиз набора GNU inetutils 2.0 с коллекцией сетевых программ, большая часть которых перенесена из BSD-систем. В частности, в состав входят inetd и syslogd, серверы и клиенты для ftp, telnet, rsh, rlogin, tftp и talk, а также типовые утилиты, такие как ping, ping6, traceroute, whois, hostname, dnsdomainname, ifconfig, logger и т.п.

Среди изменений:
  • В traceroute и ping реализован метод отправки запросов ICMP ECHOREQUEST, требующий меньших привилегий в GNU/Linux.
  • В ifconfig добавлена поддержка смены MAC-адреса в GNU/Linux, добавлен вывод дополнительной статистики для BSD-систем и улучшена поддержка GNU/Hurd.
  • В ftp добавлена поддержка формата "user@host" и осуществлено портирование для платформы Android.
  • В tftpd добавлена поддержка платформы AIX.
  • В telnetd улучшена поддержка ОС Solaris.
После двух месяцев разработки Линус Торвальдс представил релиз ядра Linux 5.7. Среди наиболее заметных изменений: новая реализация ФС exFAT, модуль bareudp для создания UDP-туннелей, защита на основе аутентификации указателей для ARM64, возможность прикрепления BPF-программ к LSM-обработчикам, новая реализация Curve25519, детектор "split-lock", совместимость BPF с PREEMPT_RT, снятие ограничения на 80-символьный размер строки в коде, учёт показателей температуры CPU в планировщике задач, возможность использования clone() для порождения процессов в другом cgroup, защита от записи в память при помощи userfaultfd.

В новую версию принято 15033 исправлений от 1961 разработчиков, размер патча - 39 МБ (изменения затронули 11590 файлов, добавлено 570560 строк кода, удалено 297401 строк). Около 41% всех представленных в 5.7 изменений связаны с драйверами устройств, примерно 16% изменений имеют отношение к обновлению кода, специфичного для аппаратных архитектур, 13% связано с сетевым стеком, 4% - с файловыми системами и 4% c внутренними подсистемами ядра.
После двух месяцев разработки Линус Торвальдс представил релиз ядра Linux 5.6. Среди наиболее заметных изменений: интеграция VPN-интерфейса WireGuard, поддержка USB4, пространства имён для времени, возможность создания обработчиков перегрузки TCP при помощи BPF, начальная поддержка MultiPath TCP, избавление ядра от проблемы 2038 года, механизм "bootconfig", ФС ZoneFS.

В новую версию принято 13702 исправлений от 1810 разработчиков, размер патча - 40 Мб (изменения затронули 11577 файлов, добавлено 610012 строк кода, удалено 294828 строк). Около 45% всех представленных в 5.6 изменений связаны с драйверами устройств, примерно 15% изменений имеют отношение к обновлению кода специфичного для аппаратных архитектур, 12% связано с сетевым стеком, 4% - файловыми системами и 3% c внутренними подсистемами ядра.
Разработчики подсистемы фильтрации и модификации сетевых пакетов Netfilter опубликовали набор патчей, значительно ускоряющих обработку больших списков сопоставления (nftables set), в которых требуется проверка сочетания подсетей, сетевых портов, протокола и MAC-адресов. Патчи уже приняты в ветку nf-next, которая будет предложена для включения в состав ядра Linux 5.7. Наиболее заметного ускорения удалось добиться благодаря задействованию инструкций AVX2 (в дальнейшем планируется опубликовать подобные оптимизации на базе инструкций NEON для ARM).

Оптимизации внесены в модуль nft_set_pipapo (PIle PAcket POlicies), решающий задачу сопоставления содержимого пакета с применяемыми в правилах фильтрации произвольными диапазонами состояния полей, такими как диапазоны IP и сетевых портов (nft_set_rbtree и nft_set_hash манипулируют сопоставлением интервалов и прямым отражением значений). Векторизированная при помощи 256-разрядных инструкций AVX2 верcия pipapo на системе с процессором AMD Epyc 7402 показала прирост производительности на 420% при разборе 30 тысяч записей, включающих связки порт-протокол. Прирост при сопоставлении связки из подсети и номера порта при разборе 1000 записей составил 87% для IPv4 и 128% для IPv6.
 
Другая оптимизация, позволяющая использовать 8-битовые группы сопоставления вместо 4-битовых, также показала ощутимый прирост производительности: 66% при разборе 30 тысяч записей порт-протокол, 43% - подсеть_IPv4-порт и 61% - подсеть_IPv6-порт. В сумме, с учётом оптимизаций AVX2, производительность pipapo увеличилась в указанных тестах на 766%, 168% и 269% соответственно. Полученные для сложных сопоставлений характеристики опережают проверки единичных полей в rbtree (за исключением теста связки порт+протокол), но пока отстают от прямых проверок при помощи хэшей и drop-обработчиков на базе netdev.
 
После двух месяцев разработки Линус Торвальдс представил релиз ядра Linux 5.5. Среди наиболее заметных изменений: возможность назначения сетевым интерфейсам альтернативных имён, интеграция криптографических функций из библиотеки Zinc, возможность зеркалирования на более чем 2 диска в Btrfs RAID1, механизм отслеживания состояния Live-патчей, фреймворк unit-тестирования kunit, повышение производительности беспроводного стека mac80211, возможность доступа к корневому разделу через протокол SMB, верификация типов в BPF.

В новую версию принято 15505 исправлений от 1982 разработчиков, размер патча - 44 Мб (изменения затронули 11781 файлов, добавлено 609208 строк кода, удалено 292520 строк). Около 44% всех представленных в 5.5 изменений связаны с драйверами устройств, примерно 18% изменений имеют отношение к обновлению кода специфичного для аппаратных архитектур, 12% связано с сетевым стеком, 4% - файловыми системами и 3% c внутренними подсистемами ядра.