Спустя полгода после выхода OpenBSD 7.3 представлен следующий выпуск OpenBSD, теперь с версией 7.4. Размер дистрибутива, установочного ISO-образа базовой системы OpenBSD 7.4 составляет всего 630 МБ. Давайте посмотрим, что изменилось, добавлено или было удалено. Все подробности — под катом.
Главные обновления
На данный момент увеличилось число портов для архитектуры AMD64 и других. Так, для AMD64 — 11845 (было 11764), для aarch64 — 11508 (было 11561), для i386 — 10603 (было 10572). Среди версий приложений в портах:
- Asterisk 16.30.1, 18.19.0б, 20.4.0
- Audacity 3.3.3
- CMake 3.27.5
- Chromium 117.0.5938.149
- Emacs 29.1
- FFmpeg 4.4.4
- GCC 8.4.0 и 11.2.0
- GHC 9.2.7
- GNOME 44
- Go 1.21.1
- JDK 8u382, 11.0.20 и 17.0.8
- KDE Applications 23.08.0
- KDE Frameworks 5.110.0
- Krita 5.1.5
- LLVM/Clang 13.0.0 и 16.0.6
- LibreOffice 7.6.2.1
- Lua 5.1.5, 5.2.4, 5.3.6 и 5.4.6
- MariaDB 10.9.6
- Mono 6.12.0.199
- Mozilla Firefox 118.0.1 и ESR 115.3.1
- Mozilla Thunderbird 115.3.1
- Mutt 2.2.12 и NeoMutt 20230517
- Node.js 18.18.0
- OpenLDAP 2.6.6
- PHP 7.4.33, 8.0.30, 8.1.24 и 8.2.11
- Postfix 3.7.3
- PostgreSQL 15.4
- Python 2.7.18, 3.9.18, 3.10.13 и 3.11.5
- Qt 5.15.10 и 6.5.2
- R 4.2.3
- Ruby 3.0.6, 3.1.4 и 3.2.2
- Rust 1.72.1
- SQLite 3.42.0
- Shotcut 23.07.29
- Sudo 1.9.14.2
- Suricata 6.0.12
- Tcl/Tk 8.5.19 и 8.6.13
- TeX Live 2022
- Vim 9.0.1897 и Neovim 0.9.1
- Xfce 4.18
Кроме того, обновлены многие компоненты от сторонни разработчиков. Среди обновленных стоит упомянуть:
- Графический стек Xenocara на базе X.Org 7.7 с xserver 21.1.8 + патчи, freetype 2.13.0, fontconfig 2.14.2, Mesa 22.3.7, xterm 378, xkeyboard-config 2.20, fonttosfnt 1.2.2.
- LLVM/Clang 13.0.0 (+ патчи)
- GCC 4.2.1 (+ патчи) и 3.3.6 (+ патчи)
- Perl 5.36.1 (+ патчи)
- NSD 4.7.0
- Unbound 1.18
- Ncurses 5.7
- Binutils 2.17 (+ патчи)
- Gdb 6.3 (+ патч )
- Awk 12.9.2023
- Expat 2.5.0.
- Обновлены и пакеты LibreSSL с OpenSSH. Если нужен список обновлений, то он доступен по ссылкам: для LibreSSL 3.8.0, OpenSSH 9.4 и OpenSSH 9.5.
- Что касается других улучшений, стоит отметить появление компонентов для обновления микрокода к чипам AMD для архитектур amd64 и i386. Хорошая новость в том, что все это устанавливается автоматически еще при загрузке. Для установки нужно воспользоваться штатной утилитой fw_update.
- Для архитектуры arm64 тоже есть нововведения. Так, для того, чтобы защитить пространство пользователя, по дефолту теперь включена аутентификация указателей (Pointer Authentication). Технология позволяет использовать специализированные инструкции ARM64 для проверки адресов возврата при помощи цифровых подписей, которые хранятся в неиспользуемых верхних битах самого указателя.
- Соответственно, изменены и настройки системного компилятора clang, а также clang и gcc из портов. Это позволило улучшить защиту основных приложений от эксплоитов, которые задействовали методы возвратно-ориентированного программирования (ROP — Return-Oriented Programming). Заключается этот метод в том, что злоумышленник не размещает код в памяти, а использует фрагменты машинных инструкций, которые уже есть в загруженных библиотеках. Работа эксплоита заключается в построении целой цепочки вызовов таких блоков для того, чтобы получить нужные функции.
- Еще для архитектур amd64 и i386 реализована поддержка псевдоустройства dt для организации динамической трассировки системы и приложений. Для вставки пользовательских записей в лог ktrace добавлен системный вызов utrace.
- Также перенесены исправления, которые устраняют неопределённое поведение при использовании файловых систем MS-DOS из FreeBSD.
- Для архитектуры ARM64 задействована возможность перехода в глубокие состояния неактивности (idle), доступные в чипах Apple M1/M2, для экономии энергии и реализации ждущего режима.
- Еще одно нововведение в плане безопасности — добавление обходной защиты от уязвимости Zenbleed в процессорах AMD.
- Удалось также оптимизировать поддержку многопроцессорных систем. В частности, от блокировок теперь избавлены функция arprequest(), код обработки входных ARP-пакетов и реализация определения соседних узлов в стеке IPv6.
- В утилиту make добавлена поддержка переменной ${.VARIABLES} для вывода имён всех выставленных глобальных переменных.
- В cron и crontab добавлена поддержка случайных смещений при указании диапазонов значений с заданным шагом, что позволяет избежать одновременного запроса ресурса с разных машин, имеющих одинаковые правила в cron. Например, указание «0~59/30» или "~/30" в поле с минутами приведёт к запуску команды два раза в час через последовательные случайно выбранные интервалы.
- Стоит также упомянуть поддержку загрузки файлов из из системного раздела EFI (EFI System Partition).
- Также в инсталляторе оптимизировали поддержку программных RAID (softraid). Так, добавлена возможность размещения корневого раздела в softraid на системах riscv64 и arm64. Ну а Softraid добавлен в ramdisk для архитектуры powerpc64. Для arm64 реализована поддержка шифрования дисков (Guided Disk Encryption).
- Для выполнения команды shutdown теперь требуется добавление пользователя в группу "_shutdown", что позволяет разделить полномочия, связанные с завершением работы и прямого чтения с дисковых устройств.
C остальными апдейтами можно ознакомиться на странице OpenBSD 7.4. Если вы уже опробовали дистрибутив — пишите, как он вам. Есть ли проблемы, или, возможно, все работает гладко и хорошо, как никогда прежде.
Другие интересные материалы
Автор: Aleksandr