Представен е новият свободен кросплатформен UNIX-подобен операционна система OpenBSD 7.0. Забелязва се, че това е 51-вото издание на проекта, който на 18 октомври ще навърши 26 години. Проектът OpenBSD е основан от Тэо де Раадтом (Theo de Raadt) през 1995 година след конфликт с разработчиците на NetBSD, в резултат на който достъпът на Тэо до CVS репозитория на NetBSD беше затворен. След това Тэо де Раадт и група съратници създадоха нова отворена операционна система на базата на изходния код на NetBSD, с основни цели за развитие, които включват преносимост (поддържа 13 хардуерни платформи), стандартизация, коректна работа, проактивна сигурност и интегрирани криптографски средства. Размерът на пълния инсталационен ISO образ на базовата система OpenBSD 7.0 е 554 MB.
Освен самата операционна система, проектът OpenBSD е известен със своите компоненти, които са получили разпространение в други системи и са се утвърдили като едни от най-сигурните и качествени решения. Сред тях: LibreSSL (форк на OpenSSL), OpenSSH, пакетният филтър PF, демоните за маршрутизация OpenBGPD и OpenOSPFD, NTP-сървър OpenNTPD, пощенски сървър OpenSMTPD, мултиплексор на текстови терминали (аналог на GNU screen) tmux, демон идентификация идентификации с реализация на протокола IDENT, BSDL-алтернатива на пакета GNU groff — mandoc, протокол за организиране на отказоустойчиви системи CARP (Common Address Redundancy Protocol), лек http-сървър, утилита за синхронизация на файлове OpenRSYNC.
Основни подобрения:
- Добавен е порт за 64-битови системи на базата на архитектура RISC-V. В момента се поддържа работа на платки HiFive Unmatched и частично на PolarFire SoC Icicle Kit.
- Поддръжката на ARM64 порт за устройства Apple с процесор M1 е подобрена, но все още не е завършена. В текущия му вариант, поддържа инсталация на OpenBSD на диск с GPT и има драйвери за USB 3, NVME, GPIO и SPMI. Освен M1, поддръжката на Raspberry Pi 3 Model B+ и платки на базата на SoC Rockchip RK3399 също е разширена.
- За архитектура AMD64 компилаторът GCC е деактивиран по подразбиране (остава само Clang). По-рано GCC беше деактивиран за архитектурите armv7 и i386.
- Поддръжката на платформата SGI е прекратена.
- За платформите amd64, arm64, i386, sparc64 и powerpc64 компилацията на ядрото с поддръжка на системата за динамично трасирване dt е активирана по подразбиране. Добавен е доставчик kprobes за събиране на информация за събития на ниво ядрото.
- В btrace е реализирана поддръжка на операторите "" в филтрите и е осигурен изход на времето в пространството на потребителя при анализ на стека на ядрото.
- Добавен е конфигурационен файл /etc/bsd.re-config, който може да се използва за настройка на ядрото по време на зареждане и включване/изключване на определени устройства.
- Осигурено е откритие на устройства TPM 2.0 и правилно изпълнение на командите за преминаване в режим на заспиване (решава проблема с пробуждането на лаптопите ThinkPad X1 Carbon Gen 9 и ThinkPad X1 Nano).
- Реализацията на kqueue е преместена на използване на mutex-и.
- Възможността за настройка на размера на буфера за сокети PF_UNIX чрез sysctl е реализирана. Стандартният размер на буфера е увеличен до 8 КБ.
- Поддръжката на многопроцесорни системи (SMP) е усъвършенствана. Функцията pmap_extract() е преведена в клас mp-safe на системите hppa и amd64. Кодът за изчисление на референциите на анонимни обекти, част от обработчика за изключения и функциите lseek, connect и setrtable, е изнесен от общата блокировка на ядрото. Реализирани са отделни буфери за съобщения при срив за всяко ядро CPU.
- Прилагането на рамката drm (Direct Rendering Manager) е синхронизирано с ядрото на Linux 5.10.65. В драйвера inteldrm е подобрена поддръжката на чиповете Intel на базата на микроархитектура Tiger Lake. В драйвера amdgpu е реализирана поддръжка на GPU Navi 12, Navi 21 «Sienna Cichlid», Arcturus и APU Cezanne «Green Sardine» Ryzen 5000.
- Добавена е поддръжка на ново оборудване, включително Aquantia AQC111U/AQC112U USB Ethernet, Aquantia 1/2.5/5/10Gb/s PCIe Ethernet, Cadence GEM, Broadcom BCM5725, RTL8168FP/RTL8111FP/RTL8117. Подобренa е поддръжката на платформите Intel, базирани на микроархитектура Tiger Lake. Добавен е драйвер ucc за клавиатури с интерфейс USB HID Consumer Control, в които се използват бутони за извикване на приложения, контрол на възпроизвеждане на звук и промяна на силата на звука.
- В хипервизора VMM са внесени подобрения. Добавен е лимит от 512 VCPU на виртуална машина. Проблемите с блокировките на VCPU са решени. В бекенда за управление на виртуални машини vmd е добавена поддръжка за защита от злонамерени драйвъри virtio в гостите.
- От NetBSD е пренесена утилитата timeout, която позволява ограничаване на времето за изпълнение на команди.
- В утилитата за синхронизация на файлове openrsync са реализирани опциите «include» и «exclude».
- В утилитата ps е осигурен изход на информация за съпътстващите групи.
- В текстовия редактор mg е добавена команда «dired-jump».
- В утилитите fdisk и newfs е подобрена поддръжката на дискове с размер на сектора 4K. В fdisk е преработен кодът за инициализация на MBR/GPT и е добавено разпознаване на GPT-раздели «BIOS Boot», «APFS», «APFS ISC», «APFS Recovery» (sic), «HiFive FSBL» и «HiFive BBL». Добавена е опция «-A» за инициализиране на GPT без изтриване на стартови раздели.
- В утилитата traceroute за ускоряване на работа е реализирана обработка на проверъчни пакети и DNS запитвания в асинхронен режим.
- В утилитата doas е предоставена три опита за въвеждане на парола.
- В xterm е осигурена изолация на достъпа до файловата система чрез системния повик unveil(). Процесите ftpd са защитени чрез pledge.
- Логът вече съдържа информация за неправилно използване на форматиращия параметър «%n» във функцијата printf.
- В реализирането на IPsec в iked е добавена поддръжка за конфигуриране на DNS от страна на клиента.
- В snmpd по подразбиране е деактивирана поддръжката на протоколите SNMPv1 и SNMPv2c в полза на използването на SNMPv3.
- По подразбиране са активирани процесите dhcpleased и resolvd, които позволяват конфигуриране на IPv4 адреси чрез DHCP. Утилитата dhclient остава в системата като опция. В утилитата route е добавена команда «nameserver» за предаване на информация за DNS сървъри на resolvd.
- В LibreSSL е добавена поддръжка на TLSv3 API OpenSSL 1.1.1 и е активиран нов валидатор X.509, който поддържа коректна проверка на взаимно подписани сертификати.
- В OpenSMTPD е добавена поддръжка на TLS опции «cafile=(path)», «nosni», «noverify» и «servername=(name)». В smtp е разрешено избор на криптографски параметри и TLS протоколи.
- Обновен е пакетът OpenSSH. Подробен преглед на подобренията може да бъде видян тук: OpenSSH 8.7, OpenSSH 8.8. Поддръжката на цифрови подписи rsa-sha е деактивирана.
- Броят на портовете за архитектурата AMD64 е 11325, за aarch64 — 11034, за i386 — 10248. Сред версиите на приложения в портовете: FFmpeg 4.4, GCC 8.4.0 и 11.2.0, GNOME 40.4, Go 1.17, JDK 8u302, 11.0.12 и 16.0.2, KDE Applications 21.08.1, KDE Frameworks 5.85.0, LLVM/Clang 11.1.0, LibreOffice 7.2.1.2, Lua 5.1.5, 5.2.4 и 5.3.6, MariaDB 10.6.4, Node.js 12.22.6, PHP 7.3.30, 7.4.23 и 8.0.10, Postfix 3.5.12, PostgreSQL 13.4, Python 2.7.18, 3.8.12 и 3.9.7, Qt 5.15.2 и 6.0.4, Ruby 2.6.8, 2.7.4 и 3.0.2, Rust 1.55.0, SQLite 3.35.5, Xfce 4.16.
- Актуализирани компоненти от трети страни, включени в OpenBSD 7.0:
- Графичният стек Xenocara на базата на X.Org 7.7 с xserver 1.20.13 + пачове, freetype 2.10.4, fontconfig 2.12.4, Mesa 21.1.8, xterm 367, xkeyboard-config 2.20, fonttosfnt 1.2.2.
- LLVM/Clang 11.1.0 (+ пачове)
- GCC 4.2.1 (+ пачове) и 3.3.6 (+ пачове)
- Perl 5.32.1 (+ пачки)
- NSD 4.3.7
- Unbound 1.13.3
- Ncurses 5.7
- Binutils 2.17 (+ патчи)
- Gdb 6.3 (+ пач)
- Awk 18.12.2020
- Expat 2.4.1
Източник: opennet.ru
