8 октября 2024 года состоялся релиз свободной UNIX-подобной операционной системы OpenBSD 7.6. Предыдущая стабильная версия проекта вышла в апреле этого года. Версию OpenBSD 7.0 выпустили в октябре 2021 года.
По информации OpenNET, основные изменения и доработки в OpenBSD 7.6:
• расширена поддержка архитектуры ARM64. Включена поддержка ARM8-расширения EPAN (Enhanced Privileged Access Never), блокирующего привилегированный доступ к страницам памяти, используемым только для исполнения кода. Добавлена поддержка процессора Qualcomm Snapdragon X Elite (X1E80100) и реализовано определение CPU Cortex-A520AE (Hayes AE) и Cortex-A720AE (Hunter AE). Для систем на базе архитектуры ARM64 реализована защита от уязвимостей класса Spectre-V4, а также улучшена защита от уязвимостей Spectre-BHB;
• для систем на базе архитектуры AMD64 добавлена поддержка инструкций AVX-512. Реализована защита от уязвимости RFDS в процессорах Intel Atom;
• добавлена поддержка платы Milk-V Pioneer на базе архитектуры RISC-V;
• удалён механизм msyscall, применяемый для пометки областей памяти из которых допускается выполнение системных вызовов. На смену msyscall пришли системные вызовы mimmutable и pinsyscalls;
• проведена работа по улучшению поддержи энергосберегающих состояний S0 и перехода в спящий режим на современном оборудовании. На системах amd64 реализован режим suspend-to-idle, который можно применять на оборудовании без поддержки спящего режима S3. Решены многие проблемы в драйверах, мешавшие использованию спящего режима;
• в системный вызов readdir добавлена проверка на наличие символа ‘/’ в именах файлов для блокирования возможных атак на приложения при работе с не заслуживающими доверия файловыми системами;
• усовершенствована поддержка многопроцессорных систем (SMP). Добавлены возможности по параллельной обработке на разных ядрах CPU входящих UDP-пакетов и raw-сокетов IPv4/IPv6. Улучшена работа с блокировками для сокетов unix4 и UDP. Переведены на новую схему работы с блокировками сокеты AF_ROUTE. Избавлены от глобальной блокировки системные вызовы shutdown, sigsuspend и kbind, а также таймеры TCP и многие sysctl;
• внесены улучшения в гипервизор VMM. Добавлена поддержка механизма AMD SEV (Secure Encrypted Virtualization) для защиты виртуальных машин от вмешательства со стороны гипервизора или администратора хост-системы. Улучшен доступ к возможностям CPU из виртуальных машин. В vmctl добавлена команда «status -r» для показа состояния только запущенных виртуальных машин;
• реализация фреймворка drm (Direct Rendering Manager) синхронизирована с ядром Linux 6.6.52 (в прошлом выпуске — 6.6.19). В драйвере inteldrm реализована поддержка GPU, применяемого в процессорах Intel на базе микроархитектуры Meteor Lake;
• из FreeBSD перенесена функция scandirat для перебора содержимого каталогов. Из базовой системы удалён старый DHCP-клиент dhclient, вместо которого предлагается использовать постоянно запущенный фоновый процесс dhcpleased, поставляющийся начиная с OpenBSD 6.9 и использующий утилиту ifconfig для включения автоконфигурации сетевых интерфейсов через DHCP;
• запрещено использование символа с нулевым кодом в shell-скриптах, обрабатываемых используемым по умолчанию командным интерпретатором ksh. Наличие нулевых символов в скриптах теперь будет приводить к завершению выполнения с выводом ошибки, за исключением случаев их размещения среди данных, прикреплённых в конце файла следом за кодом. Утилита tar переведена на использование по умолчанию формата PAX при создании архивов. Использование формата PAX даст возможность сохранять более длинные имена файлов, обрабатывать ссылки, использовать точные сведения о времени и помещать в архив файлы очень большого размера;
• в состав X11-стека Xenocara, применяемого в OpenBSD для формирования графического окружения, добавлена библиотека libva, позволяющая использовать программный интерфейс VA-API (Video Acceleration API) для аппаратного ускорения кодирования и декодирования видео в различных форматах. Работа аппаратного ускорения протестирована с драйверами для GPU Intel и AMD при использовании браузера Firefox и видеопроигрывателя mpv. Необходимые для работы драйверы для GPU Intel предложены в портах graphics/intel-media-driver и graphics/intel-vaapi-driver, а для работы с GPU AMD используются штатные компоненты из состава Mesa. Предоставлена возможность запуска среды рабочего стола KDE Plasma 6;
• добавлена поддержка нового оборудования и включены в состав новые драйверы, связанные с компонентами различных SoC и поддержкой Ethernet-контроллеров. В драйверы igc и dwqe добавлена поддержка аппаратного тэггирования VLAN, а в драйверах dwqe, vmx, igc и vio(4) обеспечен вынос выполнения сетевых операций на сторону сетевых карт;
• в компилятор добавлена опция -fret-clean, выполняющая очистку адреса возврата в стеке после завершения вызова;
• обеспечена работа PPP-интерфейсов в домене маршрутизации (rdomain);
• для IPv6 добавлен режим sysctl net.inet6.ip6.forwarding = 2, разрешающий перенаправление пакетов только для IPsec;
• в функцию getsockopt() добавлена поддержка флага SO_ACCEPTCONN, позволяющего проверить был ли выполнен для сокета вызов функции listen();
• в iked, реализации протокола IKEv2 для IPsec, добавлена поддержка аутентификации, авторизации и аккаунтинга через протокол RADIUS;
• в RADIUS-сервер radiusd добавлена поддержка DAE (Dynamic Authorization Extensions), а также возможность размещения настроек аккаунтинга в radiusd.conf. Добавлены модули: radiusd_ipcp для настройки пула IP-адресов, radiusd_file для аутентификации через локальный файл. В radiusctl добавлена команда ipcp delete для удаления определённого сеанса без разрыва соединения;
• в OpenSMTPD добавлен API smtpd-tables для использования таблиц в smtpd и реализован сервис K_AUTH для извлечения учётных данных из таблиц;
• добавлен фоновый процесс dhcp6leased для получения префиксов IPv6 от серверов DHCPv6;
• обновлёны OpenSSH и компоненты от сторонних разработчиков.
Источник: habr.com