Дата публикации:Tue, 08 Oct 2024 23:06:32 +0300
Представлен выпуск свободной UNIX-подобной операционной системы OpenBSD 7.6. Проект OpenBSD был основан Тэо де Раадтом (Theo de Raadt) в 1995 году после конфликта с разработчиками NetBSD, в результате которого для Тэо был закрыт доступ к CVS репозиторию NetBSD. После этого Тэо де Раадт с группой единомышленников создал на базе дерева исходных текстов NetBSD новую открытую операционную систему, главными целями развития которой стали переносимость (поддерживается 13 аппаратных платформ), стандартизация, корректная работа, проактивная безопасность и интегрированные криптографические средства. Размер полного установочного ISO-образа базовой системы OpenBSD 7.6 составляет 702 МБ.
Кроме непосредственно операционной системы, проект OpenBSD известен своими компонентами, которые получили распространение в других системах и зарекомендовали себя как одни из наиболее безопасных и качественных решений. Среди них: LibreSSL (форк OpenSSL), OpenSSH, пакетный фильтр PF, демоны маршрутизации OpenBGPD и OpenOSPFD, NTP-сервер OpenNTPD, почтовый сервер OpenSMTPD, мультиплексор текстового терминала (аналог GNU screen) tmux, демон identd с реализацией протокола IDENT, BSDL-альтернатива пакету GNU groff - mandoc, протокол для организации отказоустойчивых систем CARP (Common Address Redundancy Protocol), легковесный http-сервер, утилита синхронизации файлов OpenRSYNC.
Основные улучшения:
- Расширена поддержка архитектуры 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 для перебора содержимого каталогов.
<!--
Добавлен sysctl-параметр "net.inet.tcp.nodelay" для отключения алгоритма Нейгла, используемого для агрегирования мелких сообщений с целью снижения трафика. В современных высокоскоростных сетях использование алгоритма Нейгла может принести больше вреда чем пользы. Параметр действует на уровне всей системы и избавляет разработчиков приложений от выставления флага TCP_NODELAY для отдельных сокетов. -->
Из базовой системы удалён старый DHCP-клиент dhclient, вместо которого предлагается использовать постоянно запущенный фоновый процесс dhcpleased, поставляющийся начиная с OpenBSD 6.9 и использующий утилиту ifconfig для включения автоконфигурации сетевых интерфейсов через DHCP (включается через запуск "ifconfig $if autoconf" или добавление "inet autoconf" в /etc/hostname.$if).
Запрещено использование символа с нулевым кодом в 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. Список изменений можно посмотреть в анонсах OpenSSH 9.8 и OpenSSH 9.9.
Число портов для архитектуры AMD64 составило 12312 (было 12309), для aarch64 - 12148 (было 12145), для i386 - 10534 (было 10830). Среди версий приложений в портах:
- Asterisk 16.30.1, 18.24.3, 20.9.3
- Audacity 3.6.3
- CMake 3.30.1
- Chromium 128.0.6613.137
- Emacs 29.4
- FFmpeg 4.4.5
- GCC 8.4.0 и 11.2.0
- GHC 9.6.6
- GNOME 46
- Go 1.23.1
- JDK 8u402, 11.0.24, 17.0.12 и 21.0.4
- KDE Applications 24.05.2
- KDE Frameworks 6.5.0
- KDE Plasma 6.1.4
- Krita 5.2.3
- LLVM/Clang 13.0.0, 16.0.6 и 17.0.6
- LibreOffice 24.8.1.2
- Lua 5.1.5, 5.2.4, 5.3.6 и 5.4.7
- MariaDB 10.9.8
- Mono 6.12.0.199
- Mozilla Firefox 130.0.1 и ESR 128.2.0
- Mozilla Thunderbird 128.2.3
- Node.js 20.17.0
- OpenLDAP 2.6.8
- PHP 8.1.29, 8.2.23 и 8.3.11
- Postfix 3.9.0
- PostgreSQL 16.4
- Python 2.7.18, 3.11.10
- Qt 5.15.13 (+ патчи от kde) и 6.6.3
- R 4.4.1
- Ruby 3.1.6, 3.2.5 и 3.3.5
- Rust 1.81.0
- SQLite 3.44.2
- Shotcut 24.04.28
- Sudo 1.9.15.5
- Suricata 7.0.6
- Tcl/Tk 8.5.19 и 8.6.13
- TeX Live 2023
- Vim 9.1.707 и Neovim 0.10.1
- Xfce 4.18.1
Обновлены компоненты от сторонних разработчиков, входящие в состав OpenBSD 7.6:
- Графический стек Xenocara на базе X.Org 7.7 с xserver 21.1.13 + патчи, freetype 2.13.2, fontconfig 2.14.2, Mesa 23.3.6, xterm 393, xkeyboard-config 2.20, fonttosfnt 1.2.3.
LLVM/Clang 16.0.6 (+ патчи)
GCC 4.2.1 (+ патчи) and 3.3.6 (+ патчи)
Perl 5.38.2 (+ патчи)
NSD 4.9.1
Unbound 1.21.0
Ncurses 6.4
Binutils 2.17 (+ патчи)
Gdb 6.3 (+ патчи)
Awk от 28 июля 2024 г.
Expat 2.6.3
zlib 1.3.1 (+ патчи)
Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=62018