Zaprezentowano wydanie bezpłatnego, wieloplatformowego, uniksopodobnego systemu operacyjnego OpenBSD 6.9. Należy zauważyć, że jest to 50. wydanie projektu, który w tym roku obchodzi 26. rocznicę. Projekt OpenBSD został założony przez Theo de Raadta w 1995 roku po konflikcie z twórcami NetBSD, w wyniku którego Theo utracił dostęp do repozytorium CVS NetBSD. Następnie Theo de Raadt i grupa podobnie myślących osób stworzyli nowy, otwarty system operacyjny oparty na drzewie źródłowym NetBSD, którego głównymi celami rozwojowymi były przenośność (obsługiwanych jest 13 platform sprzętowych), standaryzacja, poprawne działanie, aktywne zabezpieczenia i zintegrowane narzędzia kryptograficzne. Rozmiar pełnego obrazu instalacyjnego ISO systemu bazowego OpenBSD 6.9 wynosi 544 MB.
Oprócz samego systemu operacyjnego projekt OpenBSD znany jest ze swoich komponentów, które rozpowszechniły się w innych systemach i okazały się jednymi z najbezpieczniejszych i wysokiej jakości rozwiązań. Wśród nich: LibreSSL (fork OpenSSL), OpenSSH, filtr pakietów PF, demony routingu OpenBGPD i OpenOSPFD, serwer OpenNTPD NTP, serwer poczty OpenSMTPD, multiplekser terminali tekstowych (analogicznie do ekranu GNU) tmux, demon identd z implementacją protokołu IDENT, alternatywa BSDL Pakiet GNU groff - mandoc, protokół organizacji systemów odpornych na uszkodzenia CARP (Common Address Redundancy Protocol), lekki serwer http, narzędzie do synchronizacji plików OpenRSYNC.
Główne ulepszenia:
- Sterownik softraid został zaktualizowany o tryb RAID1C, który implementuje programowy RAID1 z szyfrowaniem danych.
- Dodano dwa nowe procesy działające w tle: dhcpleased i resolvd, które współpracują ze slaacd i unwind w celu automatycznej konfiguracji interfejsów sieciowych i rozwiązywania nazw DNS. dhcpleased implementuje protokół DHCP w celu uzyskiwania adresów IP, a resolvd zarządza zawartością pliku resolv.conf na podstawie informacji o serwerze nazw otrzymanych z dhcpleased, slaacd i sterowników, takich jak umb.
- Dodano wstępną obsługę urządzeń Apple z procesorem M1. Obejmuje to obsługę rdzeni arm64 Apple Icestorm/Firestorm oraz dodaną obsługę układów bezprzewodowych BCM4378 używanych w układzie SoC Apple M1.
- Ulepszona obsługa platformy powerpc64, opracowana dla systemów 64-bitowych opartych na procesorach POWER8 i POWER9. W porównaniu z poprzednią wersją zaimplementowano obsługę mechanizmu ochronnego RETGUARD dla platformy powerpc64, dodano sterownik astfb dla bufora ramki Aspeed BMC, rozwiązano problemy ze sterownikami radeondrm i amdgpu w systemach z procesorami graficznymi AMD, do jądra dla dysku RAM dodano możliwość rozruchu sieciowego, dodano obsługę trybów oszczędzania energii procesora POWER9, dodano obsługę wyjątków generowanych podczas operacji zmiennoprzecinkowych oraz zaimplementowano obsługę IPMI dla systemów PowerNV.
- Dla platform ARM64 dodaliśmy obsługę procesorów Cortex-A78AE, Cortex-X1 i Neoverse V1, zaimplementowaliśmy zoptymalizowane pod kątem ARM64 wywołania copyin, copyout i kcopy, dodaliśmy sterownik Cryptox do obsługi rozszerzeń kryptograficznych ARMv8 oraz sterownik smmu dla jednostki MMU systemu RM z obsługą strony ochronnej. Ulepszono obsługę urządzeń Raspberry Pi, Rock Pi N10, NanoPi i Pinebook Pro.
- Do sterownika wideo dodano parametr sysctl kern.video.record, który, podobnie jak kern.audio.record, kontroluje, czy włączyć pusty obraz wyjściowy podczas próby przechwytywania wideo (aby włączyć przechwytywanie, zmień wartość na 1). Procesy mogą otwierać urządzenie wideo wielokrotnie (rozwiązuje to problemy z korzystaniem z kamery internetowej w przeglądarkach Firefox i BigBlueButton).
- Dodano punkty śledzenia dla wywołań malloc i free, umożliwiając funkcjom dt i btrace śledzenie aktywności alokacji pamięci. Dodano opcję „-n” do btrace, aby analizować program bez wykonywania żadnych czynności.
- Ulepszona obsługa systemów wieloprocesorowych (SMP). Usunięto implementację gniazd UNIX z ogólnej blokady jądra, dodano ogólny mutex do serializacji operacji z msgbuf, przeniesiono wywołanie uvm_pagealloc do kategorii mp-safe, a wywołania getppid i sendsyslog zostały uwolnione od blokad.
- Naprawiono problemy w komponentach DRM (Direct Rendering Manager), w tym awarie sterownika radeondrm w systemach Powerbook 5/6 i RV350 oraz ulepszono obsługę DRI3 w sterownikach amdgpu i ati w celu zapewnienia zgodności z Linux Wprowadzono tworzenie urządzeń w katalogu /dev/dri/.
- Wprowadzono ulepszenia w hiperwizorze VMM. Zaplecze do zarządzania maszynami wirtualnymi vmd obsługuje teraz ładowanie skompresowanych dysków RAM.
- Wprowadzono ulepszenia w podsystemie audio. Teraz dostępna jest możliwość oddzielnego przypisywania urządzeń audio sndiod do odtwarzania i nagrywania. sndiod wykorzystuje filtr dolnoprzepustowy FIR ósmego rzędu, który pomaga wyeliminować aliasing podczas resamplingu. Funkcja automatycznej redukcji głośności po rozpoczęciu odtwarzania nowego programu (autovolume) jest domyślnie wyłączona, a domyślny poziom głośności jest ustawiony na 127. Możliwe jest teraz miksowanie dźwięku z alternatywnych urządzeń o różnych poziomach funkcjonalności obsługiwanych przez sndiod.
- Kompilacja i instalacja debugera LLDB są domyślnie włączone.
- rcctl, rc.subr i rc.d obsługują teraz obsługę rejestratora, która umożliwia porządkowanie wyników logów z procesów w tle, które wysyłają dane do stdout/stderr.
- W przypadku touchpadów dostępna jest możliwość dostosowania układu przycisków za pomocą polecenia wsconsctl. W wscons ulepszono obsługę jednoczesnego dotknięcia.
- W urządzeniach ARM64 zaimplementowano możliwość wykorzystania APM do uzyskania danych o zużyciu energii i poziomie naładowania baterii. Wywołanie reveal służy do ograniczenia dostępu procesu apmd do systemu plików.
- Rozszerzona obsługa sprzętu. Dodano nowe sterowniki: acpige (do obsługi zdarzeń ACPI, takich jak naciśnięcie przycisku zasilania), pchgpio (do kontrolerów GPIO wyposażonych w nowoczesny układ Intel PCH), ujoy (do kontrolerów gier), uhidpp (do urządzeń Logitech HID++). Dodano obsługę rozszerzeń AMD Vi i Intel VTD IOMMU w celu izolowania urządzeń PCI i blokowania nieprawidłowego dostępu do pamięci. Dodano obsługę komputerów Lynloong LM9002/9003 i LM9013. Dodano obsługę ACPI do sterowników pcamux i imxiic.
- Ulepszona obsługa kart sieciowych: mvpp (SFP+ i 10G dla Marvel Armada Ethernet), mvneta (1000base-x i 2500base-x), mvsw (przełączniki Marvel SOHO), rge (obsługa Wake on LAN), Netgear ProSecure UTM25. Do sterowników bezprzewodowych iwm, iwn i athn dodano obsługę RA (802.11n Tx Rate Adaptation). W stosie bezprzewodowym wprowadzono automatyczny wybór trybów 11a/b/g/n/ac podczas korzystania z interfejsu sieciowego jako punktu dostępowego.
- Stos sieciowy zawiera teraz sterownik web (Virtual Ethernet Bridge). Wprowadzono obsługę trybu monitorowania, co oznacza, że pakiety docierające do interfejsu sieciowego nie są przekazywane do stosu sieciowego w celu przetworzenia, lecz można zastosować do nich mechanizmy analizy ruchu, takie jak BPF. Dodano nowy typ interfejsu sieciowego – etherbridge. Wprowadzono możliwość nadpisywania adresu źródłowego (polecenie route sourceaddr). Adresy IP W przypadku programów, pomijając standardowy algorytm wyboru adresu. Interfejsy sieciowe są teraz automatycznie włączane po włączeniu trybu autokonfiguracji (AUTOCONF4 i AUTOCONF6).
- Instalator implementuje dostarczanie skompresowanego obrazu dysku RAM (bsd.rd) na wszystkich platformach obsługujących takie ładowanie.
- Wprowadzono wyjście do syslogu ostrzeżenia dotyczącego użycia zamiennika formatowania ciągu "%n" w printf.
- Demon routingu OpenBGPD został zaktualizowany w celu obsługi protokołu RTR (Resource Public Key Infrastructure). Dodano polecenie „bgpctl show rtr”, które wyświetla podstawowe informacje o sesjach RTR.
- Kod ospfd i ospf6d został przebudowany w celu ujednolicenia ich z innymi demonami routingu i uproszczenia konserwacji. Wprowadzono obsługę interfejsów sieciowych w trybie punkt-punkt.
- Wbudowany serwer HTTP httpd ma nowe opcje „lokalizacja (znaleziono|nieznaleziono)” umożliwiające sprawdzanie istnienia zasobów.
- Narzędzie rpki-client obsługuje teraz protokół RRDP (protokół Delta repozytorium RPKI, RFC 8182). Zaimplementowano możliwość określenia więcej niż jednego URI w pliku TAL.
- Narzędzie dig implementuje obsługę RFC 8914 (Extended DNS Error) i RFC 8976 (ZONEMD).
- dhclient pozwala teraz na określenie opcji w plikach hostname.if przy użyciu ciągów „dhcp”.
- Demon snmpd w pełni obsługuje teraz konwersję Trapv1 do Trapv2 (RFC 3584). Do pliku snmpd.conf dodano nowe słowa kluczowe: read, write i notification. Narzędzie snmp obsługuje teraz wyliczenia SMI.
- Do programu do rozpoznawania nazw domen (DNS) unwind dodano obsługę DNS64 i akceptację połączeń portu TCP.
- Narzędzie ftp obsługuje teraz stałe przekierowania (RFC 7538) i możliwość wysyłania nagłówka If-Modified-Since podczas wysyłania żądań przez HTTP/HTTPS.
- Do OpenSMTPD dodano opcję „-a” do uwierzytelniania przed wysłaniem wiadomości. Narzędzia szyfrujące zostały przeniesione do biblioteki libtls. Gniazda nasłuchujące TLS obsługują teraz konfigurowanie wielu certyfikatów, wybieranych na podstawie nazwy. domena (SNI).
- LibreSSL obsługuje teraz protokół DTLSv1.2. Możliwe jest teraz kompilowanie tylko bibliotek libtls (opcja „--enable-libtls-only”) bez libcrypto i libssl.
- Pakiet OpenSSH został zaktualizowany. Szczegółowy przegląd ulepszeń można znaleźć tutaj: OpenSSH 8.5, OpenSSH 8.6.
- Liczba portów dla architektury AMD64 wynosiła 11310, dla aarch64 – 10943, dla i386 – 10468. Wśród wersji aplikacji w portach znajdują się: 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 i 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.
Zaktualizowane komponenty innych firm zawarte w OpenBSD 6.9:
- Stos graficzny Xenocara oparty na X.Org 7.7 z xserver 1.20.10 + łatki, 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 (+ poprawki)
- GCC 4.2.1 (+ łatki) i 3.3.6 (+ łatki)
- Perl 5.32.1 (+ poprawki)
- NSD4.3.6
- Bez ograniczeń 1.13.1
- Nkursy 5.7
- Binutils 2.17 (+ poprawki)
- Gdb 6.3 (+ łatka)
- Awk 18.12.2020
- Ekspatriant 2.2.10
Nowy utwór „Vetera Novis” został wydany równocześnie z wydaniem OpenBSD 6.9.
Źródło: opennet.ru
