Представен е издаването на свободната кросплатформена UNIX-подобна операционна система OpenBSD 6.9. Отбелязва се, че това е 50-то издание на проекта, който тази година навършва 26 години. Проектът OpenBSD е основан от Тео де Раадт (Theo de Raadt) през 1995 г. след конфликт с разработчиците на NetBSD, в резултат на който Тео изгубил достъпа до CVS репозитория на NetBSD. След това Тео де Раадт, заедно с група съмишленици, създаде нова отворена операционна система на базата на дървото с изходни кодове на NetBSD, чиито основни цели за развитие са преносимост (поддържат се 13 хардуерни платформи), стандартизация, коректност, активна безопасност и интегрирани криптографски средства. Размерът на пълния инсталационен ISO образ на базовата система OpenBSD 6.9 е 544 МБ.
Освен основната операционна система, проектът 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.
Основни подобрения:
- В драйвера softraid е добавен режим RAID1C с реализация на софтуерен RAID1 с криптиране на данните.
- Включени са два нови фонови процеса — dhcpleased и resolvd, които работят заедно с slaacd и unwind за автоматична конфигурация на мрежовите интерфейси и определяне на имената в DNS. В dhcpleased е реализиран протоколът DHCP за получаване на IP адреси, а в resolvd се осигурява управление на съдържанието на resolv.conf на базата на данни за сървърите за имена, получени от dhcpleased, slaacd и драйвери като umb.
- Добавена е начална поддръжка на устройства Apple с процесор M1. Включително е реализирано разпознаване на arm64 ядра Apple Icestorm/Firestorm и е добавена поддръжка на безжични чипове BCM4378, използвани в SoC Apple M1.
- Подобрена е поддръжката на платформата powerpc64, разработвана за 64-битови системи на базата на процесори POWER8 и POWER9. В сравнение с предходната версия, за powerpc64 е реализирана поддръжка на механизма за защита RETGUARD, добавен е драйвер astfb за рамката Aspeed BMC, решени са проблеми с работата на драйверите radeondrm и amdgpu на системи с GPU AMD, в изграждането на ядрото за ram-диск е добавена възможност за мрежово зареждане, добавена е поддръжка на режими за пестене на енергия за CPU POWER9, добавена е поддръжка на изключения, генерирани при операции с плаваща запетая, реализирана е поддръжка на IPMI за системи PowerNV.
- За платформите ARM64 е осигурена поддръжка на CPU Cortex-A78AE, Cortex-X1 и Neoverse V1, реализирани са оптимизирани за ARM64 варианти на извикванията copyin, copyout и kcopy, добавен е драйвера cryptox за поддръжка на крипторазширения ARMv8, както и драйвера smmu за RM System MMU с поддръжка на Guard Page. Подобрена е поддръжката на устройства Raspberry Pi, Rock Pi N10, NanoPi и Pinebook Pro.
- В драйвера video е добавен sysctl-параметър kern.video.record, който, по аналогия с kern.audio.record, управлява включването на изхода на празна картинка при опит за захват на видео (за разрешение на захвата е необходимо да се промени стойността на 1). На процесите е разрешено многократно отваряне на устройството video (решава проблемите с използването на уеб камери в Firefox и BigBlueButton).
- Добавени са точки на трасировка за извикванията malloc и free, позволяващи да се проследява свързаната с разпределението на паметта активност чрез dt и btrace. В btrace е добавена опция ‘-n’ за парсване на програмата без изпълнение на каквито и да било действия.
- Подобрена е поддръжката на многоядрени системи (SMP). От общата блокировка на ядрото е изведена реализация на UNIX-сокети, добавен е общ mutex за сериализация на операции с msgbuf, прехвърлен е в категорията mp-safe извикването uvm_pagealloc, премахнати са блокировките на извикванията getppid и sendsyslog.
- Коригирани са проблеми в компонентите DRM (Direct Rendering Manager), включително се отстраниха сривовете в драйвера radeondrm на системи Powerbook5/6 и RV350, осигурена е поддръжка на DRI3 в драйверите amdgpu и ati, за съвместимост с Linux е реализирано създаването на устройства в каталога /dev/dri/.
- Внесени са подобрения в хипервизора VMM. В бекенда за управление на виртуални машини vmd е добавена поддръжка на зареждане от компресирани RAM-дискове.
- Внесени са подобрения в звуковата подсистема. Осигурена е възможност за отделно закрепване на звукови устройства sndio само за възпроизвеждане и само за запис. В sndiod е включен нискочестотен филтър с краен импулс на характеристика (КИХ-филтър) осми ред, което е позволило да се премахнат шумовете поради наложение на спектри при Ресемплиране. По подразбиране е деактивирана функцията за автоматично намаляване на силата на звука, когато нова програма започва възпроизвеждане (autovolume), като за стойност по подразбиране е зададено ниво на звука 127. Разрешено е смесване на звук от алтернативни устройства, различаващи се по ниво на поддържаната във sndiod функционалност.
- По подразбиране е активирано сглобяването и инсталирането на отладчика LLDB.
- В rcctl, rc.subr и rc.d е добавена поддръжка на обработчика logger, позволяваща организирането на извеждането на логовете от фоновите процеси, изпращащи данни в stdout/stderr.
- За тъчпадовете е предоставена възможност за настройка на разположението на бутоните чрез wsconsctl. В wscons е подобрена обработката на множество докосвания.
- За устройствата ARM64 е реализирана възможност за използване на APM за получаване на данни за разход на енергия и заряда на батерията. За ограничаване на достъпа на процеса apmd до файловата система е използвано извикване на unveil.
- Поддръжката на хардуер е разширена. Добавени са нови драйвери acpige (за обработка на ACPI събития, като натискане на бутона за захранване), pchgpio (за GPIO контролери, с които са снабдени съвременните Intel PCH), ujoy (за игрови контролери), uhidpp (за устройства Logitech HID++). Добавена е поддръжка на разширения AMD Vi и Intel VTD IOMMU за изолация на PCI устройства и блокиране на неправилен достъп до паметта. Добавена е поддръжка за компютри Lynloong LM9002/9003 и LM9013. За драйверите pcamux и imxiic е добавена поддръжка на ACPI.
- Поддръжката на мрежови адаптери е подобрена: mvpp (SFP+ и 10G за Marvel Armada Ethernet), mvneta (1000base-x и 2500base-x), mvsw (Marvel SOHO комутатори), rge (поддръжка на Wake on LAN), Netgear ProSecure UTM25. За безжичните драйвери iwm, iwn и athn е добавена поддръжка на RA (802.11n Tx Rate Adaptation). В безжичния стек е установен автоматичен избор на режими 11a/b/g/n/ac при използване на мрежов интерфейс под формата на точка за достъп.
- В мрежовия стек е реализиран драйвер veb (Virtual Ethernet Bridge). Поддържа се режим на мониторинг, при който получените на мрежовия интерфейс пакети не преминават през мрежовия стек за обработка, но могат да бъдат анализирани с механизми за анализ на трафик, като BPF. Добавен е нов тип мрежови интерфейси — etherbridge. Осигурена е възможност (команда route sourceaddr) за презаписване на източника. IP адреси Гарантирано е автоматичното захващане на мрежовите интерфейси при включване на режима за автоматична настройка (AUTOCONF4 и AUTOCONF6).
- В инсталатора е реализирана доставката на компресиран образ на ram-диск (bsd.rd) на всички платформи, които поддържат подобна зареждане.
- Реализиран е изход през syslog с предупреждение за използване на форматиращия шаблон ‘%n’ в printf.
- В демонa за маршрутизация OpenBGPD е добавена поддръжка за протокола RTR (Resource Public Key Infrastructure (RPKI) to Router Protocol). За показване на основната информация за RTR сеансите е добавена команда ‘bgpctl show rtr’.
- Извършена реструктуризация на кода на ospfd и ospf6d с цел обединяване с други демони за маршрутизиране и опростяване на поддръжката. Възможна е поддръжка на мрежови интерфейси в режим точка-точка.
- Вграденият HTTP сървър httpd е реализирал нови опции ‘location (found|notfound)’ за проверка на съществуването на ресурси.
- В утилитата rpki-client е добавена поддръжка на протокола RRDP (The RPKI Repository Delta Protocol, RFC 8182). Реализирана е възможност за указване на повече от един URI в TAL файла.
- В утилитата dig е реализирана поддръжка на RFC 8914 (Extended DNS Error) и RFC 8976 (ZONEMD).
- В dhclient е добавена възможност за задаване на опции в файловете hostname.if, използвайки редове ‘dhcp’.
- В демона snmpd е реализирана пълна поддръжка на преобразуването Trapv1 в Trapv2 (RFC 3584). В snmpd.conf са добавени нови ключови думи read, write и notify. В утилитата snmp е реализирана поддръжка на изброения SMI.
- В DNS резолвер unwind е добавена поддръжка на DNS64 и приемане на връзки през TCP порт.
- В утилитата ftp е добавена поддръжка на постоянни пренасочвания (RFC 7538) и възможност за изпращане на заглавка If-Modified-Since при изпращане на заявки по HTTP/HTTPS.
- В OpenSMTPD е добавена опция ‘-a’ за извършване на аутентикация преди изпращане на съобщението. Шифровъчните средства са адаптирани за използване на библиотеката libtls. В слушащите сокети за TLS е реализирана възможност за настройка на няколко сертификата, избираеми в зависимост от името. домейн (SNI).
- В LibreSSL е добавена поддръжка за протокола DTLSv1.2. Реализирана е възможността за сглобяване само на libtls (‘—enable-libtls-only’) без libcrypto и libssl.
- Обновен е пакетът OpenSSH. Подробен преглед на подобренията можете да видите тук: OpenSSH 8.5, OpenSSH 8.6.
- Броят на портовете за архитектурата AMD64 е 11310, за aarch64 — 10943, за i386 — 10468. Сред версиите на приложенията в портовете: Xfce 4.16, Asterisk 18.3.0, Chromium 90.0.4430.72, FFmpeg 4.3.2, GCC 8.4.0, GNOME 3.38, Go 1.16.2, KDE Applications 20.12.3, Krita 4.4.3, LLVM/Clang 10.0.1, LibreOffice 7.0.5.2, Lua 5.3.6, MariaDB 10.5.9, Firefox 88.0 и ESR 78.10.0, Thunderbird 78.10.0, Node.js 12.16.1, PHP 8.0.3, Postfix 3.5.10, PostgreSQL 13.2, Python 3.9.2, Ruby 3.0.1, Rust 1.51.0.
Обновени са компонентите от трети страни, включени в OpenBSD 6.9:
- Графичният стек Xenocara, базиран на X.Org 7.7 с xserver 1.20.10 + пачове, freetype 2.10.4, fontconfig 2.12.4, Mesa 20.0.8, xterm 367, xkeyboard-config 2.20, fonttosfnt 1.2.1.
- LLVM/Clang 10.0.1 (+ пачове)
- GCC 4.2.1 (+ пачове) и 3.3.6 (+ пачове)
- Perl 5.32.1 (+ пачки)
- NSD 4.3.6
- Unbound 1.13.1
- Ncurses 5.7
- Binutils 2.17 (+ патчи)
- Gdb 6.3 (+ пач)
- Awk 18.12.2020
- Expat 2.2.10
В изданието на OpenBSD 6.9 е съпроводена новата песен „Vetera Novis“.
Източник: opennet.ru
