Представен е релизът на свободната UNIX-подобна операционна система OpenBSD 7.2. Проектът OpenBSD е основан от Тео де Раадт през 1995 година след конфликт с разработчиците на NetBSD, в резултат на което Тео е бил лишен от достъп до CVS репозиторията на NetBSD. След това Тео де Раадт с група съмишленици е създал нова отворена операционна система на базата на изходните кодове на NetBSD, основни цели на която са преносимост (поддържат се 13 хардуерни платформи), стандартизация, точна работа, проактивна сигурност и интегрирани криптографски средства. Размерът на пълния инсталационен ISO-образ на базовата система OpenBSD 7.2 е 556 МБ.
Освен основната операционна система, проектът 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.
Основни подобрения:
- Подобренa е поддръжката на системи, базирани на архитектурата 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) е усъвършенствана. Функции за ограничаване на пропускната способност (rate limit), търсене на ARP записи и таймери за маршрутизация са преведени в режим mp-safe. Реализирана е възможност за паралелно изпълнение на операции, като повторно компилиране на 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 е добавен изход за статистика на успешни и неуспешни връзки към iked.
- В bgpd е добавен филтър max-communities за ограничаване на броя на разрешените community, реализиран е 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 е добавена подкрепа за master агент.
- В 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
