Випуск OpenBSD 6.9

Представлено випуск вільної крос-платформної 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 MRM. Поліпшено підтримку пристроїв Raspberry Pi, Rock Pi N10, NanoPi та Pinebook Pro.
  • У драйвер video доданий sysctl-параметр kern.video.record, який за аналогією з kern.audio.record управляє включенням виведення порожньої картинки при спробі захоплення відео (для дозволу захоплення потрібно змінити значення на 1). Процесам дозволено багаторазове відкриття пристрою video (вирішує проблеми з використанням web-камери у 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 ProS. Для бездротових драйверів iwm, iwn та athn додано підтримку RA (25n Tx Rate Adaptation). У бездротовому стеку налагоджено автоматичний вибір режимів 802.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) до 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, 4.3.2. .8.4.0, Go 3.38, KDE Applications 1.16.2, Krita 20.12.3, LLVM/Clang 4.4.3, LibreOffice 10.0.1, Lua 7.0.5.2, MariaDB 5.3.6, Firefox 10.5.9 та ESR 88.0, Thr. , Node.js 78.10.0, PHP 78.10.0, Postfix 12.16.1, PostgreSQL 8.0.3, Python 3.5.10, Ruby 13.2, Rust 3.9.2.

    Оновлено компоненти від сторонніх розробників, які входять до складу 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 (+ патчі)
    • 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

Додати коментар або відгук