Представено е издание на свободната UNIX-подобна операционна система OpenBSD 7.2. Проектът OpenBSD е създаден от Тео де Раадт (Theo de Raadt) през 1995 година след конфликт с разработчиците на NetBSD, в резултат на който достъпът на Тео до CVS репозитория на NetBSD е забранен. След това Тео де Раадт заедно с група съмишленици създава нова отворена операционна система на базата на дървото с изходен код на NetBSD, чиито основни цели са преносимост (поддържат се 13 хардуерни платформи), стандартизация, коректна работа, проактивна сигурност и вградени криптографски средства. Размерът на пълния инсталационен ISO образ на базовата система OpenBSD 7.2 е 556 MB.
Освен самата операционна система, проектът 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.
Основни подобрения:
- Подобрена е поддръжката на системи базирани на архитектурата ARM, включително е добавена поддръжка на ARM чиповете Apple M2 и Ampere Altra. Добавена е поддръжка за лаптопа Lenovo ThinkPad x13s и други устройства на базата на SoC Qualcomm Snapdragon 8cx Gen 3 (SC8280XP).
- Добавена е възможността за зареждане в средите на Oracle Cloud на ядрото за ram диск (bsd.rd) и ядрото за многопроцесорни системи (bsd.mp).
- Включено е устройството kstat, експортиращо статистика за работата на ядрото, която може да бъде прегледана с помощта на утилитата kstat.
- За всяко ядро на процесор с поддръжка за MPERF/APERF са реализирани сензори за честота на CPU. При работа от акумулатор е включено мащабиране на честотата на CPU в зависимост от натоварването.
- На системите ARM64 е добавена начална поддръжка на режим на сън. Лимитът на поддържаните CPU е увеличен до 256. Реализирана е възможността за превключване от конзола на базата на фреймбуфер (glass console) към конзола на базата на сериен порт (serial console).
- Премахнат е кодът за определяне на CPU 386sx/386dx, NexGen, Rise и стари процесори Cyrix, издадени преди чипа Cyrix M2.
- Подобрена е поддръжката на многопроцесорни системи (SMP). Прехвърлени в категорията mp-safe са функциите за ограничаване на пропускателната способност (rate limit), търсене на ARP записи и таймер за маршрути. Реализирана е възможност за паралелно изпълнение на операции като повторно създаване на IPv4 пакети и пренасочване на IP пакети. В функциите за обработка на входящи UDP и IP пакети са добавени блокировки на сокетите, използващи mutex. Премахнати са блокировките на системни повиквания kbind и pledge. Реализирани са блокировки на UNIX сокети, действителни на ниво отделни сокети.
- Реализация на фреймворка drm (Direct Rendering Manager) е синхронизирана с ядрото на Linux 5.15.69 (в предишната версия — 5.15.26). В драйвера inteldrm е добавена поддръжка на чиповете Intel, базирани на микроархитектурите Alder Lake и Raptor Lake. Реализирана е поддръжка на фреймбуфери, които не са подравнени по границата на страницата в паметта (използват се, например, в MacBook Pro 2021 14″ и 16″).
- Направени са подобрения в хипервизора VMM. В vmd е добавена поддръжка на обработчици в пространството на потребителя на базата на MMIO. В vmm емилирането на входно/изходни портове е преместено в пространството на потребителя. Уеднаквени са вътрешните структури и интерфейси в vmd, vmctl и vmm. Добавена е възможност за мониторинг на виртуални машини чрез SNMP AgentX, използвайки параметрите VM-MIB (RFC7666).
- Променливата $rcexec в скриптовете за инициализация rc.d е заменена с функцията rc_exec. Добавена е нова променлива daemon_execdir, позволяваща смяна на директорията преди изпълнението на функцията rc_exec. В rc.d и rcctl е добавено ново действие configtest за проверка на синтаксиса на конфигурацията.
- В комплекта е включена утилитата ts, добавяща време към редовете, получени чрез стандартен вход, отразяваща момента на постъпване на всеки ред.
- В утилитата ps е добавена опция „-f“ за дървовидна групировка на процесите, отразяваща връзката между родителските и дочерните процеси.
- В утилитата openrsync е реализирана опция „—contimeout“ за определяне на таймаута за установяване на връзка.
- В утилитата pkg_add по подразбиране е включено кеширане, оптимизирана е работата с пакети и е осигурен изход на индикатора за изпълнение по време на преноса на данни.
- В fdisk е подобрена работата с таблици GPT и MBR, добавени са предупреждения при неправилно разположение на разделите MBR и GPT.
- В утилитата disklabel е добавена поддръжка на ключовата дума raid в шаблоните за автоматично разполагане на раздели с RAID. Прекратена е поддръжката за редактиране на информацията за геометрията на диска. Прекратена е поддръжката на атрибутите ‘bs’ (размер на зареждащия блок), ‘sb’ (размер на суперблока) и d[0-4] (данни на диска).
- В директорията /usr/share/btrace е поставена подборка от полезни скриптове btrace за динамично трасирване и инспектиране на приложения.
- В звуковата библиотека sndio е добавена функция sio_flush за незабавно спиране на възпроизвеждането.
- В комплекта е включена утилитата llvm-profdata за работа с данни за профилиране.
- В утилитата wc е ускорено преброяването на думите.
- Добавена поддръжка на ново оборудване, включително нови драйвери в пакета:
- aplaudio (звукова подсистема на Apple).
- aplmca (MCA контролер на Apple).
- aplsart (Apple SART).
- alpdc, apldchidev, apldckbd, apldcms, aplrtk (клавиатура и тракпад на Apple M2).
- qcgpio, qciic (GPIO и GENI I2C контролери за Qualcomm Snapdragon).
- sfgpio, stfclock, stfpinctrl, stftemp (драйвери за GPIO, таймери и сензори на SiFive).
- sxirintc (контролер за прекъсвания за чипове на Allwinner).
- gpiorestart (драйвер за рестарт чрез GPIO).
- В ipmi е разширена поддръжката на сензори за захранване.
- В ehci е добавена поддръжка на контролер, използван в платки Marvell 3720.
- В драйвера igc за гигабитни Ethernet адаптери Intel I225 е включено хардуерно ускорение на изчисленията на контролни суми за IPv4, TCP и UDP. В драйвера ix за Ethernet адаптерите Intel 82598/82599/X540/X550 е реализирана поддръжка на хардуерно ускорение на обработката на TCP сегменти (Large Receive Offloading), активирано чрез опцията tso в ifconfig.
- В драйвера iwx е реализирана поддръжка на чипове Intel AX210/AX211 и е разширен спектърът на разпознаваните безжични устройства.
- Добавена е възможност за зареждане от софтуерни RAID 1 (softraid) дялове на системи amd64, sparc64 и arm64.
- В snmpd и xlock е реализирано разделяне на привилегиите.
- В функциите bind и connect за UNIX сокети е осигурена изолация на базата на системния повик unveil.
- Добавен е нов системен повик ypconnect за създаване на сокет за свързване с сървър YP, използващ IP адрес от блокирания файл ypbinding. В ypldap е добавен режим ‘local bind’, при който се извършва свързване на RPC сокет към интерфейса loopback, за да се изключат външни връзки със сървъра.
- Програмите hcpleased, mountd, nfsd, pflogd, resolvd, slaacd и unwind, разположени в каталога /sbin, са преминали на динамично свързване, за да се активират допълнителни средства за защита, приложими към динамично свързваните изпълними файлове.
- В мрежовия стек са реализирани системни повиквания sendmmsg и recvmmsg, които позволяват в рамките на едно системно повикване да се организира изпращането и получаването на няколко съобщения, които преди са изисквали отделни повиквания sendmsg и recvmsg.
- В пакетния филтър pf е променено обработването на IGMP и ICMP6 MLD (Multicast Listener Discovery) пакети, което позволи работа с управляващи multicast пакети в конфигурацията по подразбиране. Реализирана е по-строга проверка на IGMP/MLD съобщения.
- В IPsec е подобрена работата със сертификатите. В iked е подобрена съвместимостта с OpenIKED. Добавен е изход на статистика за успешни и неуспешни свързвания в командата ikectl show stats.
- В bgpd е добавен филтър max-communities за ограничаване на броя на разрешените общности, реализиран е RFC 9234 (Предотвратяване и откриване на рутинни изтичания с използване на роли в UPDATE и OPEN съобщения), осигурена е пълна поддръжка на RFC 7911 (Реклама на множество маршрути в BGP), статичните хешове са заменени с RB-деревя за повишаване на производителността на големи системи. Добавен е процес bgplgd с реализация на FastCGI сървър, предоставящ REST API за команди bgpctl.
- В rpki-client е разрешено използването на повече от един CRL URI в сертификатите, реализиран е параметър skiplist за игнориране на домейни, добавена е възможност за проверка на ASPA (Авторизация на автономни системни доставчици) и sig-файлове, реализирано е декодиране на TAL (RFC 8630), засилена е проверката на EE-сертификатите, подобрена е съвместимостта със спецификациите HTTP.
- В snmpd е разрешено използването на имена на обекти в snmpd.conf, освен OID. Реализирана е възможност за задаване на черен списък за изключване на поддеревья от изхода. В реализцията на протокола AgentX е добавена поддръжка на мастер агент.
- В httpd са предложени нови определения на MIME-типове.
- Утилитата ftp е преминала на използване на свързвания, обработвани в неблокиращ режим с помощта на ppoll.
- В tmux („терминален мултиплексор“) е добавена възможност за използване на ACL за организиране на свързването на няколко потребители през един сокет.
- Обновени са пакетите LibreSSL и OpenSSH. Подробен преглед на подобренията може да се види в обзора на LibreSSL 3.6.0 и OpenSSH 9.1.
- Числото на портовете за архитектурата AMD64 е 11451 (преди 11301), за aarch64 — 11261 (преди 11081), за i386 — 10225 (преди 10136). Между версиите на приложенията в портовете:
- Asterisk 16.28.0, 18.14.0 и 19.6.0
- Audacity 2.4.2
- CMake 3.24.2
- Chromium 105.0.5195.125
- Emacs 28.2
- FFmpeg 4.4.2
- GCC 8.4.0 и 11.2.0
- GHC 9.2.4
- GNOME 42.4
- Go 1.19.1
- JDK 8u342, 11.0.16 и 17.0.4
- KDE Gear 22.08.1
- KDE Frameworks 5.98.0
- Krita 5.1.1
- LLVM/Clang 13.0.0
- LibreOffice 7.4.1.2
- Lua 5.1.5, 5.2.4 и 5.3.6
- MariaDB 10.9.3
- Mono 6.12.0.182
- Mozilla Firefox 105.0.1 и ESR 102.3.0
- Mozilla Thunderbird 102.3.0
- Mutt 2.2.7 и NeoMutt 20220429
- Node.js 16.17.1
- OCaml 4.12.1
- OpenLDAP 2.6.3
- PHP 7.4.30, 8.0.23 и 8.1.10
- Postfix 3.7.2
- PostgreSQL 14.5
- Python 2.7.18, 3.9.14 и 3.10.7
- Qt 5.15.6 и 6.3.1
- R 4.2.1
- Ruby 2.7.6, 3.0.4 и 3.1.2
- Rust 1.63.0
- SQLite 3.39.3
- Shotcut 22.06.23
- Sudo 1.9.11.2
- Suricata 6.0.6
- Tcl/Tk 8.5.19 и 8.6.12
- TeX Live 2021
- Vim 9.0.0192 и Neovim 0.7.2
- Xfce 4.16
- Обновени са компонентите от трети страни, включени в OpenBSD 7.2:
- Графичният стек Xenocara, базиран на X.Org 7.7 с xserver 1.21.4 + пачове, freetype 2.12.1, fontconfig 2.13.94, Mesa 22.1.7, xterm 372, xkeyboard-config 2.20, fonttosfnt 1.2.2.
- LLVM/Clang 13.0.0 (+ пачове)
- GCC 4.2.1 (+ пачове) и 3.3.6 (+ пачове)
- Perl 5.32.1 (+ пачове)
- NSD 4.6.0
- Unbound 1.16.3
- Ncurses 5.7
- Binutils 2.17 (+ пачове)
- Gdb 6.3 (+ пач)
- Awk 12.9.2022
- Expat 2.4.9
Източник: opennet.ru
