Выпуск OpenBSD 7.2

Прадстаўлены выпуск вольнай UNIX-падобнай аперацыйнай сістэмы OpenBSD 7.2. Праект OpenBSD быў заснаваны Тэа дэ Раадтам (Theo de Raadt) у 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.

Асноўныя паляпшэнні:

  • Палепшана падтрымка сістэм на базе архітэктуры 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-запісаў і route timer. Рэалізавана магчымасць паралельнага выканання такіх аперацый, як перазборка пакетаў 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-інтэрфейсу, каб выключыць вонкавыя злучэнні з серверам.
  • Размешчаныя ў каталогу /sbin праграмы hcpleased, mountd, nfsd, pflogd, resolvd, slaacd і unwind перакладзены на выкарыстанне дынамічнага звязвання для задзейнічання дадатковых сродкаў абароны, якія ўжываюцца да дынамічна злучаных выкананых файлаў.
  • У сеткавым стэку рэалізаваны сістэмныя выклікі 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 (Route Leak Prevention and Detection Using Roles in UPDATE and OPEN Messages), забяспечана поўная падтрымка RFC 7911 (Advertisement of Multiple Paths in BGP) -дрэвы для павышэння прадукцыйнасці буйных сістэм. Дададзены працэс bgplgd з рэалізацыяй сервера FastCGI, які прадстаўляе REST API для каманд bgpctl.
  • У rpki-client дазволена выкарыстанне больш аднаго CRL URI у сертыфікатах, рэалізаваны параметр skiplist для ігнаравання даменаў, дададзена магчымасць праверкі ASPA (Autonomous System Provider Authorization) і sig-файлаў, рэалізавана дэкадаванне TAL (RFC 8630), узмоцнена праверка EE- сумяшчальнасць са спецыфікацыямі HTTP.
  • У snmpd дазволена выкарыстанне ў snmpd.conf імёнаў аб'ектаў, акрамя OID. Рэалізавана магчымасць задання чорнага спісу для выключэння паддрэўаў з вываду. У рэалізацыю пратаколу AgentX дададзеная падтрымка агента master.
  • У httpd прапанаваны новыя азначэнні MIME-тыпаў.
  • Утыліта ftp пераведзена на выкарыстанне злучэнняў, якія апрацоўваюцца ў неблакіруючым рэжыме пры дапамозе ppoll.
  • У tmux ("terminal multiplexer") дададзена магчымасць выкарыстання 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
    • хром 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
    • перайсці 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
    • Мона 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
    • Іржа 1.63.0
    • SQLite 3.39.3
    • Shotcut 22.06.23
    • Sudo 1.9.11.2
    • Сурыкат 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

Дадаць каментар