Выпуск OpenBSD 7.1

Прадстаўлены выпуск вольнай крос-платформавай UNIX-падобнай аперацыйнай сістэмы OpenBSD 7.1. Праект OpenBSD быў заснаваны Тэа дэ Раадтам (Theo de Raadt) у 1995 годзе пасля канфлікту з распрацоўшчыкамі NetBSD, у выніку якога для Тэа быў зачынены доступ да CVS рэпазітара NetBSD. Пасля гэтага Тэа дэ Раадт з групай аднадумцаў стварыў на базе дрэва зыходных тэкстаў NetBSD новую адкрытую аперацыйную сістэму, галоўнымі мэтамі развіцця якой сталі пераноснасць (падтрымліваецца 13 апаратных платформ), стандартызацыя, карэктная праца, проактивная бяспека і інтэграваныя крыптаграфічныя сродкі. Памер поўнага ўсталявальнага ISO-выявы базавай сістэмы OpenBSD 7.1 складае 580 МБ.

Акрамя непасрэдна аперацыйнай сістэмы, праект 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.

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

  • Абвешчаная гатовай да выкарыстання падтрымка кампутараў Mac, абсталяваных ARM-чыпам Apple M1 (Apple Silicon), такіх як Apple M1 Pro/Max і Apple T2 Macs. Дададзеныя драйверы для SPI, I2C, кантролера DMA, клавіятуры, тачпада, кіравання харчаваннем і прадукцыйнасцю. Забяспечана падтрымка Wi-Fi, GPIO, framebuffer, USB, экрана, назапашвальнікаў NVMe.
  • Палепшана падтрымка архітэктуры ARM64. Дададзеныя драйверы gpiocharger, gpioleds і gpiokeys, якія забяспечваюць падтрымку зарадак, падсветак і кнопак, якія падключаюцца да GPIO (напрыклад, так зроблена ў Pinebook Pro). Дададзены новыя драйверы: mpfclock (PolarFire SoC MSS гадзіннік controller), cdsdhc (Cadence SD / SDIO / eMMC host controller), mpfiic (PolarFire SoC MSS I2C controller) і mpfgpio (PolarFire SoC MSS GPIO).
  • Палепшана падтрымка архітэктуры RISC-V 64, для якой уключаны драйверы uhid і fido, забяспечана падтрымка ўстаноўкі на дыскі з GPT.
  • Ва ўтыліце mount_msdos па змаўчанні ўключана выкарыстанне доўгіх імёнаў файлаў.
  • Перапрацаваны код зборшчыка смецця для unix-сокетаў.
  • sysctl hw.perfpolicy пр змаўчанні выстаўлены ў значэнне "auto", якое разумее ўключэнне рэжыму поўнай прадукцыйнасці пры падлучэнні стацыянарнага сілкавання і выкарыстанне адаптыўнага алгарытму пры сілкаванні ад акумулятара.
  • Удасканалена падтрымка шматпрацэсарных сістэм (SMP). Перакладзены ў разрад mp-safe фільтры падзей неназваных каналаў, kqread, гуку і сокетаў, а таксама механізм BPF. Сістэмныя выклікі poll, select, ppoll і pselect перапісаны і зараз рэалізаваны па-над kqueue. Пазбаўлены ад блакіровак сістэмныя выклікі kevent, getsockname, getpeername, accept і accept4. Дададзены інтэрфейс ядра для атамарных функцый load і store, якія дазваляюць выкарыстоўваць тыпы int і long у элементах структур, да якіх ужываецца падлік спасылак.
  • Рэалізацыя фрэймворка drm (Direct Rendering Manager) сінхранізаваная з ядром Linux 5.15.26 (у мінулым выпуску – 5.10.65). У драйвер inteldrm дададзеная падтрымка чыпаў Intel на базе мікраархітэктур Elkhart Lake, Jasper Lake і Rocket Lake. У драйверы amdgpu рэалізавана падтрымка APU / GPU Van Gogh, Rembrandt "Yellow Carp" Ryzen 6000, Navi 22 "Navy Flounder", Navi 23 "Dimgrey Cavefish" і Navi 24 "Beige Goby".
  • У бібліятэцы FreeType уключаны субпіксэльны рэндэрынг шрыфтоў.
  • Дададзена ўтыліта realpath для вываду абсалютнага шляху да файла.
  • Ва ўтыліту rcctl дададзена каманда "ls rogue" для паказу фонавых працэсаў, якія запушчаны, але не ўключаны ў rc.conf.local.
  • BPFtrace рэалізавана падтрымка зменных для праверак. У btrace дададзены скрыпты kprofile.bt для прафілявання стэка ядра і runqlat.bt для выяўлення затрымак у працы планавальніка.
  • У libc дададзеная падтрымка RFC6840, вызначальнага падтрымку сцяга AD і налады 'trust-ad' для DNSSEC.
  • У apm і apmd уключаны паказ прагназуемага часу перазарадкі акумулятара.
  • Дадзеная магчымасць захоўвання БД capability у /etc/login.conf.d для спрашчэння дадання з пакетаў уласных класаў уліковых запісаў.
  • У malloc забяспечана кэшаванне рэгіёнаў памяці памерам ад 128k да 2M.
  • У архіватары pax рэалізавана падтрымка пашыраных загалоўкаў з дадзенымі mtime, atime і ctime.
  • Ва ўтыліты gzip і gunzip дададзена опцыя "-k" для захавання зыходнага файла.
  • Ва ўтыліту openrsync дададзены опцыі: "-compare-dest" для праверкі наяўнасці файлаў у дадатковых каталогах; "-max-size" і "-min-size" для абмежавання памеру файлаў.
  • Дададзена каманда seq для вываду паслядоўнасцей лікаў.
  • З FreeBSD 13 перанесена ўніверсальная праграмная рэалізацыя трыганаметрычных функцый (рэалізацыі на асэмблеры для x86 адключаныя).
  • З FreeBSD перанесена рэалізацыя функцый lrint, lrintf, llrint і llrintf (раней ужывалася рэалізацыя з NetBSD).
  • Ва ўтыліце fdisk адзначаны шматлікія змены і выпраўленні, злучаныя з працай з дыскавымі часткамі.
  • Дададзена падтрымка новага абсталявання, у тым ліку кантролера Intel PCH GPIO (для платформаў Cannon Lake H і Tiger Lake H), NXP PCF85063A / TP RTC, Synopsys Designware UART, Intel 2.5Gb Ethernet, SIMCom SIM7600, RTL8156B, MediaTek7601 wifi.
  • У склад уключаны пераліцэнзаваныя прашыўкі для бесправадных чыпаў Realtek, якія дазваляюць выкарыстоўваць драйверы rsu, rtwn і urtwn без ручной загрузкі прашывак.
  • У драйверах ixl (Intel Ethernet 700), ix (Intel 82598/82599/X540/X550) і aq (Aquantia AQC1xx) уключаная падтрымка апаратнай апрацоўкі VLAN-тэгаў і вылічэнні/праверкі кантрольных сум для IPv4, TCP4/6.
  • Дададзены гукавы драйвер для чыпаў Intel Jasper Lake. Дададзена падтрымка гульнявога кантролера XBox One.
  • У бесправадным стэку IEEE 802.11 рэалізавана падтрымка каналаў 40MHz для рэжыму 802.11n і пачатковая падтрымка стандарту 802.11ac (VHT). Для драйвераў дададзены апцыянальны апрацоўшчык фонавага сканавання. Пры выбары кропкі доступу прыярытэтнымі зараз з'яўляюцца кропкі з каналамі 5GHz, а ўжо потым выбіраюцца кропкі з каналамі 2GHz.
  • Перапісаная рэалізацыя драйвера vxlan, які зараз працуе незалежна ад падсістэмы bridge.
  • Ва ўсталёўніку перапрацавана логіка выкліку ўтыліты pkg_add для скарачэння інтэнсіўнасці перасоўванняў файлаў падчас абнаўленняў. У файле install.site дакументаваны працэс налады ўстаноўкі і абнаўлення. Для ўсіх архітэктур у склад дабаўлены прашыўкі, распаўсюджванне якіх дазволена ў іншых прадуктах. Для ўсталёўкі прапрыетарных прашывак, даступных на ўсталявальным носьбіце, задзейнічана ўтыліта fw_update.
  • У xterm з меркаванняў бяспекі адключана па змаўчанні адсочванне мышы.
  • У usbhidctl і usbhidaction забяспечана ізаляцыя доступу да файлавай сістэмы пры дапамозе сістэмнага выкліку unveil.
  • У dhcpd па змаўчанні забяспечана прымацаванне і да сеткавых інтэрфейсаў, змешчаным у неактыўным стане ('down'), для таго каб забяспечыць прыём пакетаў адразу пасля таго як сеткавы інтэрфейс будзе актываваны.
  • У OpenSMTPD (smtpd) уключана па змаўчанні праверка TLS для выходных падлучэнняў "smtps://" і "smtp+tls://".
  • У httpd рэалізавана праверка версіі пратакола, дададзена магчымасць вызначэння ўласных файлаў з тэкстамі памылак і палепшана апрацоўка дадзеных у сціснутым выглядзе, у тым ліку ў httpd.conf дададзена опцыя gzip-static для дастаўкі папярэдне сціснутых файлаў з выстаўленнем сцяга gzip у загалоўку content-encoding.
  • У IPsec у параметры proto з iked.conf дазволена ўказанне спісу пратаколаў. Ва ўтыліту ikectl дададзена каманда «show certinfo» для паказу цэнтраў, якія заслугоўваюць даверу, і сертыфікатаў. У iked палепшана апрацоўка фрагментаваных паведамленняў.
  • У rpki-client дададзена падтрымка праверкі адкапаных ключоў BGPsec Router і палепшана праверка сертыфікатаў X509. Дададзены кэш верыфікаваных файлаў. Палепшана сумяшчальнасць з RFC 6488.
  • bgpd дададзены параметр "port", які можна выкарыстоўваць у секцыях "listen on" і "neighbor" для прывязкі да нестандартнага нумара сеткавага порта. Праведзены рэфактарынг кода для працы з RIB (Routing Information Base), выкананы з аглядкай на забеспячэнне ў будучыні падтрымкі multipath.
  • У кансольным аконным мэнэджары tmux («terminal multiplexer») пашыраны магчымасці для каляровай высновы. Дададзены каманды pane-border-format, cursor-colour і cursor-style.
  • У LibreSSL выканана партаванне з OpenSSL падтрымкі RFC 3779 (пашырэння X.509 для IP-адрасоў і аўтаномных сістэм) і механізму Certificate Transparency (незалежны публічнага лога ўсіх выдадзеных і адкліканых сертыфікатаў, які дае магчымасць праводзіць незалежны аўдыт усіх змен і дзеянняў якія сведчаць цэнтраў дазваляе адразу адсочваць любыя спробы ўтоенага стварэння падробленых запісаў). Значна палепшана сумяшчальнасць з OpenSSL 1.1 і задзейнічаны ідэнтычныя з OpenSSL імёны шыфраў для TLSv1.3. Многія функцыі пераведзены на выкарыстанне calloc(). У libssl і libcrypto дададзеная вялікая порцыя новых выклікаў.
  • Абноўлены пакет OpenSSH. Падрабязны агляд паляпшэнняў можна паглядзець у аглядах OpenSSH 8.9 і OpenSSH 9.0. Утыліта scp перакладзена па змаўчанні на выкарыстанне SFTP замест састарэлага пратаколу SCP/RCP.
  • Колькасць партоў для архітэктуры AMD64 склала 11301 (было 11325), для aarch64 – 11081 (было 11034), для i386 – 10136 (было 10248). Сярод версій прыкладанняў у партах: Asterisk 16.25.1, 18.11.1 і 19.3.1 Audacity 2.4.2 CMake 3.20.3 Chromium 100.0.4896.75 Emacs 27.2 FFmpeg 4.4.1 GCC 8.4.0 GCC .11.2.0 JDK 41.5u1.17.7, 8 і 322 KDE Applications 11.0.14 KDE Frameworks 17.0.2 Krita 21.12.2 LLVM/Clang 5.91.0 LibreOffice 5.0.2 Lua 13.0.0, 7.3.2.2. Mono 5.1.5 Firefox 5.2.4 і ESR 5.3.6 Thunderbird 10.6.7 Mutt 6.12.0.122 і NeoMutt 99.0 Node.js 91.8.0 OpenLDAP 91.8.0 PHP 2.2.2. PostgreSQL 20211029 Python 16.14.2, 2.4.59, 7.4.28 і 8.0.17 Qt 8.1.4 і 3.5.14 R 14.2 Ruby 2.7.18, 3.8.13 і 3.9.12 Rust 3.10.4 SQLite 5.15.2 .6.0.4 Shotcut 4.1.2 Sudo 2.7.5 Suricata 3.0.3 Tcl/Tk 3.1.1 і 1.59.0 TeX Live 2.8.17 Vim 3.38.2 і Neovim 21.10.31 Xfce 1.9.10
  • Абноўлены кампаненты ад іншых распрацоўнікаў, якія ўваходзяць у склад OpenBSD 7.1:
    • Графічны стэк Xenocara на базе X.Org 7.7 з xserver 1.21.1 + патчы, freetype 2.11.0, fontconfig 2.12.94, Mesa 21.3.7, xterm 369, 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.4.0
    • Unbound 1.15.0
    • Ncurses 5.7
    • Binutils 2.17 (+ патчы)
    • Gdb 6.3 (+ патч )
    • Awk 12.10.2021
    • Expat 2.4.7

Крыніца: opennet.ru

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