Byla představena verze svobodného multiplatformního UNIX-like operačního systému OpenBSD 7.1. Projekt OpenBSD založil Theo de Raadt v roce 1995 po konfliktu s vývojáři NetBSD, na jehož základě byl Theovi uzavřen přístup k CVS repozitáři NetBSD. Po tomto incidentu Theo de Raadt se skupinou spolubojovníků vytvořil na základě zdrojového kódu NetBSD nový otevřený operační systém, jehož hlavními cíli vývoje se staly přenositelnost (podporovaných je 13 hardwarových platforem), standardizace, správná funkčnost, proaktivní bezpečnost a integrované kryptografické prostředky. Velikost kompletní instalační ISO obrazu základního systému OpenBSD 7.1 je 580 MB.
Kromě samotného operačního systému je projekt OpenBSD znám svými komponenty, které se rozšířily v jiných systémech a prokázaly se jako jedno z nejbezpečnějších a nejkvalitnějších řešení. Mezi nimi: LibreSSL (fork OpenSSL), OpenSSH, paketový filtr PF, démony směrování OpenBGPD a OpenOSPFD, NTP server OpenNTPD, poštovní server OpenSMTPD, multiplexer textového terminálu (analog GNU screen) tmux, démon identd s implementací protokolu IDENT, BSDL alternativa k balíku GNU groff — mandoc, protokol pro zajištění vysoké dostupnosti systémů CARP (Common Address Redundancy Protocol), lehký http server, utilita pro synchronizaci souborů OpenRSYNC.
Hlavní vylepšení:
- Byla oznámena podpora počítačů Mac s ARM čipem Apple M1 (Apple Silicon), jako jsou Apple M1 Pro/Max a Apple T2 Macs, dostupná k použití. Byly přidány ovladače pro SPI, I2C, DMA řadič, klávesnici, touchpad, správu napájení a výkonu. Zajištěna podpora Wi-Fi, GPIO, framebufferu, USB, displeje a NVMe disků.
- Byla vylepšena podpora architektury ARM64. Byly přidány ovladače gpiocharger, gpioleds a gpiokeys, které zajišťují podporu pro nabíjecí zařízení, osvětlení a tlačítka připojená k GPIO (například v Pinebook Pro). Přidány nové ovladače: mpfclock (PolarFire SoC MSS ovladač hodin), cdsdhc (Cadence SD/SDIO/eMMC hostitel), mpfiic (PolarFire SoC MSS I2C ovladač) a mpfgpio (PolarFire SoC MSS GPIO).
- Byla vylepšena podpora architektury RISC-V 64, pro kterou byly zahrnuty ovladače uhid a fido, a zajištěna podpora instalace na disky s GPT.
- Ve utilitě mount_msdos je výchozí nastavení pro použití dlouhých názvů souborů.
- Byl přepracován kód pro garbage collector pro unixové sokety.
- sysctl hw.perfpolicy je výchozí nastavení na hodnotu „auto“, což znamená, že se zapne režim plného výkonu při připojení k napájení a používá se adaptivní algoritmus při napájení z baterie.
- Vylepšená podpora víceprocesorových systémů (SMP). Byly převedeny do kategorie mp-safe filtry událostí bez názvu, kqread, zvuku a soketů, stejně jako mechanismus BPF. Systémové volání poll, select, ppoll a pselect byly přepsány a nyní jsou realizovány na základu kqueue. Systémová volání kevent, getsockname, getpeername, accept a accept4 byla zbavena blokování. Bylo přidáno jádrové rozhraní pro atomické funkce load a store, které umožňují používat typy int a long ve strukturách s použitím počtu odkazů.
- Implementace frameworku drm (Direct Rendering Manager) byla synchronizována s jádrem Linux 5.15.26 (v předchozím vydání — 5.10.65). Do ovladače inteldrm byla přidána podpora čipů Intel na bázi mikroarchitektur Elkhart Lake, Jasper Lake a Rocket Lake. Ovladač amdgpu nyní podporuje APU/GPU Van Gogh, Rembrandt "Yellow Carp" Ryzen 6000, Navi 22 "Navy Flounder", Navi 23 "Dimgrey Cavefish" a Navi 24 "Beige Goby".
- Do knihovny FreeType byl zařazen subpixelový rendering fontů.
- Byl přidán nástroj realpath pro výstup absolutní cesty k souboru.
- Do nástroje rcctl byla přidána příkaz "ls rogue" pro zobrazení běžících, ale neaktivovaných pozadí v rc.conf.local.
- V BPFtrace byla implementována podpora proměnných pro kontroly. Do btrace byly přidány skripty kprofile.bt pro profilování zásobníku jádra a runqlat.bt pro identifikaci zpoždění při plánování.
- V libc byla přidána podpora RFC6840, která definuje podporu pro příznak AD a nastavení 'trust-ad' pro DNSSEC.
- Do apm a apmd byl přidán výstup předpokládaného času dobíjení baterie.
- Byla poskytnuta možnost ukládání DB capability do /etc/login.conf.d pro usnadnění přidávání vlastních tříd účtů z balíků.
- V malloc bylo zajištěno kešování paměťových regionů v rozsahu od 128k do 2M.
- V archivačním nástroji pax byla implementována podpora rozšířených hlaviček s daty mtime, atime a ctime.
- Do nástrojů gzip a gunzip byla přidána volba "-k" pro uložení původního souboru.
- Do nástroje openrsync byly přidány volby: "—compare-dest" pro kontrolu přítomnosti souborů v dodatečných adresářích; "—max-size" a "—min-size" pro omezení velikosti souborů.
- Byl přidán příkaz seq pro výstup sekvencí čísel.
- Z FreeBSD 13 byla převezena univerzální softwarová implementace trigonometric functions (implementace v assembleru pro x86 byla zakázána).
- Z FreeBSD byla převezena implementace funkcí lrint, lrintf, llrint a llrintf (dříve byla použita implementace z NetBSD).
- V utilitě fdisk byly zaznamenány četné změny a opravy související s prací s diskovými oddíly.
- Byla přidána podpora nového hardwaru, včetně řadiče Intel PCH GPIO (pro platformy Cannon Lake H a Tiger Lake H), NXP PCF85063A/TP RTC, Synopsys Designware UART, Intel 2.5Gb Ethernet, SIMCom SIM7600, RTL8156B, MediaTek MT7601U USB wifi, BCM4387 wifi.
- Byly zahrnuty pře licencované firmwary pro bezdrátové čipy Realtek, které umožňují používat ovladače rsu, rtwn a urtwn bez ručního načítání firmwaru.
- V ovladačích ixl (Intel Ethernet 700), ix (Intel 82598/82599/X540/X550) a aq (Aquantia AQC1xx) byla přidána podpora hardwarového zpracování VLAN tagů a výpočtu/ověření kontrolních součtů pro IPv4, TCP4/6 a UDP4/6.
- Byl přidán zvukový ovladač pro čipy Intel Jasper Lake. Přidána podpora herního ovladače XBox One.
- V bezdrátovém stacku IEEE 802.11 byla zavedena podpora kanálů 40MHz pro režim 802.11n a počáteční podpora standardu 802.11ac (VHT). Pro ovladače byl přidán volitelný zpracovatel pro pozadí skenování. Při výběru přístupového bodu jsou nyní prioritní body s kanály 5GHz, a teprve poté se vybírají body s kanály 2GHz.
- Byla přepsána implementace ovladače vxlan, která nyní funguje nezávisle na pod systému bridge.
- V instalátoru byla přepracována logika volání utility pkg_add pro snížení intenzity přesunů souborů během aktualizace. V souboru install.site je zdokumentován proces nastavení instalace a aktualizace. Pro všechny architektury byly zahrnuty firmwary, jejichž distribuce je povolena ve třetích produktech. K instalaci proprietárních firmwarů, které jsou k dispozici na instalačním médiu, byla nasazena utilita fw_update.
- V xterm bylo z bezpečnostních důvodů standardně vypnuto sledování myši.
- V usbhidctl a usbhidaction byla zajištěna izolace přístupu k souborovému systému pomocí systémového volání unveil.
- V dhcpd je standardně zajištěno připojení i k síťovým rozhraním, která jsou neaktivní (‘down’), aby bylo možné přijímat pakety hned po aktivaci síťového rozhraní.
- V OpenSMTPD (smtpd) byla standardně aktivována kontrola TLS pro odchozí připojení „smtps://“ a „smtp+tls://“.
- V httpd byla implementována kontrola verze protokolu, přidána možnost definování vlastních souborů s chybovými texty a vylepšena zpracování dat v komprimované podobě. Do souboru httpd.conf byla přidána volba gzip-static pro dodávání předkomprimovaných souborů s nastavením příznaku gzip v hlavičce content-encoding.
- V IPsec byl parametr proto v iked.conf rozšířen o možnost uvést seznam protokolů. Do nástroje ikectl byla přidána příkaz „show certinfo“ pro zobrazení důvěryhodných certifikačních autorit a certifikátů. V iked bylo vylepšeno zpracování fragmentovaných zpráv.
- V rpki-client byla přidána podpora kontroly odchozích klíčů BGPsec Router a vylepšena kontrola certifikátů X509. Přidán cache ověřených souborů. Byla zlepšena kompatibilita s RFC 6488.
- bgpd byla přidána možnost „port“, kterou lze použít v sekcích „listen on“ a „neighbor“ k vazbě na nestandardní číslo síťového portu. Byla provedena refaktoring kódu pro práci s RIB (Routing Information Base), provedený s ohledem na budoucí podporu multipath.
- V konzolovém okně správce tmux („terminal multiplexer“) byly rozšířeny možnosti pro barevný výstup. Byly přidány příkazy pane-border-format, cursor-colour a cursor-style.
- V LibreSSL byla portována z OpenSSL podpora RFC 3779 (rozšíření X.509 pro IP adress a autonomní systémy) a mechanismus Certificate Transparency (nezávislý veřejný log všech vydaných a odvolaných certifikátů, který umožňuje provádět nezávislý audit všech změn a akcí certifikačních autorit a okamžitě sledovat jakékoli pokusy o skryté vytvoření falešných záznamů). Byla výrazně vylepšena kompatibilita s OpenSSL 1.1 a byla použita identická jména šifrovaní s OpenSSL pro TLSv1.3. Mnoho funkcí bylo převedeno na využití calloc(). V libssl a libcrypto byla přidána velká část nových volání.
- Byl aktualizován balíček OpenSSH. Podrobný přehled vylepšení lze nalézt v recenzích OpenSSH 8.9 a OpenSSH 9.0. Nástroj scp byl ve výchozím nastavení převeden na použití SFTP místo zastaralého protokolu SCP/RCP.
- Počet portů pro architekturu AMD64 byl 11301 (bylo 11325), pro aarch64 — 11081 (bylo 11034), pro i386 — 10136 (bylo 10248). Mezi verzemi aplikací v portech: Asterisk 16.25.1, 18.11.1 a 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 a 11.2.0, GNOME 41.5, Go 1.17.7, JDK 8u322, 11.0.14 a 17.0.2, KDE Applications 21.12.2, KDE Frameworks 5.91.0, Krita 5.0.2, LLVM/Clang 13.0.0, LibreOffice 7.3.2.2, Lua 5.1.5, 5.2.4 a 5.3.6, MariaDB 10.6.7, Mono 6.12.0.122, Firefox 99.0 a ESR 91.8.0, Thunderbird 91.8.0, Mutt 2.2.2 a NeoMutt 20211029, Node.js 16.14.2, OpenLDAP 2.4.59, PHP 7.4.28, 8.0.17 a 8.1.4, Postfix 3.5.14, PostgreSQL 14.2, Python 2.7.18, 3.8.13, 3.9.12 a 3.10.4, Qt 5.15.2 a 6.0.4, R 4.1.2, Ruby 2.7.5, 3.0.3 a 3.1.1, Rust 1.59.0, SQLite 2.8.17 a 3.38.2, Shotcut 21.10.31, Sudo 1.9.10, Suricata 6.0.4, Tcl/Tk 8.5.19 a 8.6.8, TeX Live 2021, Vim 8.2.4600 a Neovim 0.6.1, Xfce 4.16.
- Byly aktualizovány komponenty od třetích stran zahrnuté v OpenBSD 7.1:
- Grafický stack Xenocara založený na X.Org 7.7 s xserver 1.21.1 + patche, 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 (+ opravy)
- GCC 4.2.1 (+ patche) a 3.3.6 (+ patche)
- Perl 5.32.1 (+ patche)
- NSD 4.4.0
- Unbound 1.15.0
- Ncurses 5.7
- Binutils 2.17 (+ patche)
- Gdb 6.3 (+ patche)
- Awk 12.10.2021
- Expat 2.4.7
Zdroj: opennet.ru
