OpenBSD 8.0 включает в себя сервер кэширования данных RPKI-RTR, поддержку виртуальных машин с возможностью использования до 64 виртуальных процессоров, а также GEFS — легковесную файловую систему Copy-on-Write (CoW), пока что доступную только в виде прототипа.

Содержание.

OpenBSD 8.0 вышла: Команда опытных разработчиков BSD во главе с Тео де Раадтом, работающая по всему миру, выпустила 61-ю версию своей операционной системы Open Source, разработанной с максимальным упором на безопасность. OpenBSD обычно выпускается дважды в год, и номера версий увеличиваются до x.9, поэтому версия 8.0 – это не специальный крупный релиз, а выпуск, соответствующий обычному циклу разработки.

При первом взгляде на список изменений, опытные пользователи OpenBSD сразу заметят значительный объем обновлений по сравнению с версией 7.9, который, кажется, увеличился вдвое. Это может быть связано главным образом с большим количеством ошибок – часто не самых серьезных – которые были обнаружены с помощью систем искусственного интеллекта. Как обычно, к выпуску прилагаются художественные работы: на этот раз это песня "The Simps on AI" и анимация, созданная ИИ под псевдонимами "yvaneht nioj" (если читать задом наперед) и "clanker" (название говорит само за себя), с типичными для ИИ артефактами. В списке изменений есть ссылка на песню вместе с текстом и еще одним изображением.

Новые разработки в области архитектур RISC-V, sparc64 и luna88k.

Виртуальное адресное пространство ядра для архитектуры amd64 было увеличено в 128 раз, с 4 ГБ до 512 ГБ. Кроме того, новая функция случайного размещения Direct Map в pmap(9) обещает повысить безопасность. Доступ к зашифрованным разделам подкачки теперь ускоряется с помощью инструкций AES, реализованных в процессорах как для amd64, так и для arm64. Теперь системы на базе архитектуры arm64 могут переходить в спящий режим (Hibernate) и затем снова активироваться.

В ядре OpenBSD 8.0, при работе с архитектурой riscv64, происходит распознавание дополнительных функций, поддерживаемых процессором, и определение того, какие из них могут быть использованы пользовательскими программами. Например, это касается векторного расширения "V", которое присутствует в некоторых процессорах RISC-V и позволяет отдельным инструкциям выполнять вычисления с несколькими значениями данных одновременно. Это может быть полезно для научных вычислений, обработки изображений и сигналов, а также для математических библиотек. Улучшенная аппаратная совместимость при работе с riscv64 обеспечивается благодаря "буферным областям", которые представляют собой временные области памяти для передачи данных между устройствами и основной памятью. Современные системы на базе RISC-V могут эффективно управлять прерываниями с помощью расширенной архитектуры управления прерываниями (AIA). OpenBSD 8.0 поддерживает это через драйверы imsic(4) и aplic(4).

Архитектура sparc64 перешла на инструментальную цепочку LLVM, а также были внесены оптимизации памяти для архитектуры SPARC-V9. Поскольку китайская платформа Loongson, основанная на процессорах MIPS (на китайском: "Dragon Core"), не может быть скомпилирована с помощью Clang 22, OpenBSD прекратит поддержку этой платформы. Порт hppa (архитектура Hewlett-Packard Precision Architecture HP/PA) получил несколько исправлений ошибок. В версии OpenBSD/luna88k для компьютеров японской компании Oki Electric Industry, основанных на семействе процессоров Motorola 88000 (m88k), было внесено несколько улучшений в работу CMMU (модуля управления кэшем и памятью).

Поддержка оборудования была расширена для множества платформ, а также были улучшены существующие драйверы. В частности, сенсорный экран Samsung Galaxy Book4 Edge и функция мультитач HONOR MagicBook теперь работают более стабильно. Для RISC-V систем на кристалле (SoC) SpacemiT K1 и K3 добавлены дополнительные функции PCIe, USB, Ethernet, тактирования и прерываний. Также поддерживаются другие чипы Qualcomm и Rockchip, а также добавлены новые драйверы для функций BIOS Samsung, аккумуляторов ноутбуков и памяти OTP Rockchip. В системах Apple улучшена поддержка IOMMU для контроллеров USB. Дополнительные идентификаторы устройств расширяют совместимость оборудования с устройствами, оснащенными процессорами AMD. Кроме того, исправлены ошибки в обработке прерываний, при переполнении буферов и при работе DMA, а также устранены утечки памяти и проблемы при восстановлении программных RAID-массивов.

Больше драйверов для сетевых устройств Intel и улучшенный пакетный фильтр pf(4).

В новой версии OpenBSD 8.0 появилась поддержка чипсетов Intel Panther Lake и Wildcat Lake для Ethernet-соединений через драйвер em(4), а также чипсетов Intel E610 через драйвер ix(4). Значительные улучшения были внесены в область беспроводных сетей, с акцентом на чипсеты Qualcomm для драйвера qwx(4) (поддерживающего стандарты 802.11a/ac/ax/b/g/n) и драйвера qwz(4) для WiFi 7.

В OpenBSD 8.0 разработчики улучшили надежность и безопасность встроенной файрвола pf(4) (Packet Filter), в частности, устранили ошибки, связанные с доступом к памяти, и повысили защиту интерфейсов ядра. Были устранены такие проблемы, как обращение к нулевому указателю в пути обработки исходящих пакетов, а также выход за границы массива при вызове функции pf_rule_copyin(). Кроме того, интерфейсы ioctl файрвола pf теперь не принимают строки без завершающего символа, что снижает потенциальные уязвимости. Устранены состояния гонки (race conditions) в счетчиках соединений, которые могли приводить к переполнению счетчиков. Подготовленные TCP-пакеты сброса больше не могут удалять допустимые состояния соединений.

В встроенном веб-сервере OpenBSD httpd(8) было внесено несколько улучшений. Теперь можно напрямую задавать пользовательские HTTP-заголовки – функцию, для которой ранее часто требовался промежуточный прокси-сервер, такой как relayd(8) или nginx. Кроме того, по умолчанию набор шифров TLS в файле httpd.conf(5) был изменен с режима "совместимости" на режим "безопасности", что может привести к тому, что очень старые клиенты не смогут установить соединение. Также была усилена проверка запросов: httpd(8) теперь отклоняет запросы, использующие формат CL.TE в соответствии с RFC 9112, и отказывает в обработке "obs-fold" с кодом ошибки HTTP 400. Помимо этого, были внесены различные исправления, касающиеся стабильности и безопасности, включая расширение диапазона значений серверных флагов до 64-битных целых чисел, применение ограничения максимального размера тела запроса для Chunked-запросов к FastCGI, отказ в использовании совместно используемых TLS-серверов с разными сертификатами CA/CRL для клиентов, а также устранение дублирования параметров FastCGI и обрезания сообщений об ошибках.

rtrd(8): Новый сервер кэширования маршрутной информации (RTR) для данных RPKI.

В новой версии OpenBSD 8.0 появился демон rtrd(8), предназначенный для протокола RPKI-to-Router (RTR). Он действует как сервер кэширования между валидатором RPKI, rpki-client(8), и маршрутизаторами BGP, такими как bgpd(8). Это позволяет избежать необходимости каждому маршрутизатору BGP самостоятельно получать и обрабатывать проверенные данные RPKI (Resource Public Key Infrastructure). Вместо этого, одна или несколько централизованных инстанций rtrd(8) могут централизованно и последовательно распространять данные, сгенерированные rpki-client(8). Управление демоном rtrd(8), как это обычно делается в OpenBSD, осуществляется через утилиту командной строки rtrctl(8). С помощью этой утилиты можно импортировать данные RPKI из файла, использующего синтаксис bgpd(8), определить индивидуальный сокет для связи или выводить статистику в формате OpenMetrics. Демон поддерживает версии протокола RTR 0, 1 и 2 (последняя версия представлена в виде интернет-черновика).

Системы vmd(8) и vmm(4) поддерживают работу виртуальных машин с использованием нескольких процессоров.

Майк Ларкин расширил возможности встроенной виртуализации OpenBSD, добавив поддержку многопроцессорных систем: теперь такие компоненты, как vmm(4) и управляющий демон vmd(8), могут запускать виртуальные машины с несколькими процессорами. Если ранее гостевая операционная система была в основном ограничена использованием одного виртуального процессора, то в OpenBSD 8.0 можно выделить до 64 виртуальных процессоров (vCPU) на одну виртуальную машину. Для этого были реализованы такие функции, как инициализация дополнительных процессоров через локальный контроллер прерываний (APIC) и межпроцессорные прерывания (IPI). Необходимые настройки также доступны в утилитах vmctl(8) и файле конфигурации vm.conf(5).

Гостевые операционные системы, поддерживающие технологию SMP, получают выгоду от параллельного выполнения на нескольких виртуальных процессорах (vCPUs). Реализация включает не только распределение vCPU, но и необходимые механизмы запуска и синхронизации внутри гостевой операционной системы. Эта реализация была протестирована с различными гостевыми системами и расширяет область применения vmm/vmd: из простого решения для виртуализации однопроцессорных систем, особенно в виде сервисов, она постепенно превращается в платформу для более сложных виртуальных машин.

В дополнение к этому, были добавлены недостающие режимы работы LAPIC/IOAPIC, что особенно важно для поддержки гостевых операционных систем GNU/Linux с 32-битной архитектурой. Устройства virtio теперь могут использовать прерывания MSI/MSI-X. Также была улучшена поддержка формата QCOW (QEMU Copy On Write), разработанного компанией QEMU.

Современная поддержка графических процессоров и удобное звуковое сопровождение.

В OpenBSD 8.0 поддержка видеокарт теперь осуществляется через модифицированные драйверы DRM, основанные на версии Linux 6.18.53. Драйвер Intel DRM (inteldrm(4)) поддерживает графические процессоры серии Intel Arc A (DG2/Alchemist), а также была устранена проблема с тайм-аутом GuC на некоторых системах Alder Lake. Благодаря увеличению адресного пространства ядра до 512 ГБ, системы amd64 в OpenBSD 8.0 теперь могут использовать более 4 ГБ видеопамяти (VRAM).

В операционной системе OpenBSD обработка аудио и MIDI осуществляется с помощью фреймворка sndio(7), который известен своей низкой задержкой. Управление sndio(7) – как это обычно делается в OpenBSD – осуществляется через утилиту sndioctl(1), которая в версии OpenBSD 8.0 получила ряд улучшений и расширений: теперь можно управлять портами midithru, добавлять или удалять элементы из списка и динамически изменять настройку sndiod(8) server.mode.

Первоисточник — Heise

Автор оригинала — Michael Plura

Нашли неточность?

Сообщите редакции. Существенные исправления мы отмечаем в материале