Представен е новият свободен крос-платформен UNIX-подобен операционен система OpenBSD 6.9. Подчертава се, че това е 50-ият брой на проекта, който тази година навършва 26 години. Проектът OpenBSD е основан от Тео де Раадт (Theo de Raadt) през 1995 г. след конфликт с разработчиците на NetBSD, в резултат на който достъпът на Тео до CVS репозитория на NetBSD е блокиран. След това Тео де Раадт и група съмишленици създават на базата на дървото с изходен код на NetBSD нова отворена операционна система, чийто основни цели за развитие са преносимост (поддържат се 13 хардуерни платформи), стандартизация, коректна работа, активна сигурност и интегрирани криптографски средства. Размерът на пълния инсталационен ISO образ на базовата система OpenBSD 6.9 е 544 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.
Основни подобрения:
- В драйвера 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. Подобренa е поддръжката на устройствата 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.
- Добавена е поддръжка на обработчика logger в rcctl, rc.subr и rc.d, което позволява организиране на логовете от фоновите процеси, изпращащи данни в 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 на предупреждение за използване в printf подмяна на форматиращи низове «%n».
- В демона на маршрутизация 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
