Byla uvedena verze svobodného unixového operačního systému OpenBSD 7.2. Projekt OpenBSD byl založen Theo de Raadt v roce 1995 po konfliktu s vývojáři NetBSD, v jehož důsledku byl Teo vyloučen z přístupu k CVS repozitáři NetBSD. Poté Theo de Raadt se skupinou příznivců vytvořil na základě zdrojového stromu NetBSD nový otevřený operační systém, jehož hlavními cíli rozvoje se staly přenositelnost (podporováno 13 hardwarových platforem), standardizace, správná funkčnost, proaktivní bezpečnost a integrované kryptografické prostředky. Velikost plného instalačního ISO obrazu základního systému OpenBSD 7.2 činí 556 MB.
Kromě samotného operačního systému je projekt OpenBSD známý svými komponenty, které se rozšířily do dalších systémů a prokázaly se jako jedny z nejbezpečnějších a nejkvalitnějších řešení. Mezi ně patří: LibreSSL (fork OpenSSL), OpenSSH, paketový filtr PF, směrovací démoni OpenBGPD a OpenOSPFD, NTP server OpenNTPD, poštovní server OpenSMTPD, multiplexor 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 organizaci odolných systémů CARP (Common Address Redundancy Protocol), lehký http server, nástroj pro synchronizaci souborů OpenRSYNC.
Hlavní vylepšení:
- Byla vylepšena podpora systémů založených na architektuře ARM, včetně přidání podpory ARM čipů Apple M2 a Ampere Altra. Přidána podpora notebooku Lenovo ThinkPad x13s a dalších zařízení založených na SoC Qualcomm Snapdragon 8cx Gen 3 (SC8280XP).
- Byla přidána možnost bootování v prostředí Oracle Cloud jádra pro ramdisk (bsd.rd) a jádra pro víceprocesorové systémy (bsd.mp).
- Bylo zahrnuto zařízení kstat, exportující statistiku o práci jádra, kterou lze prohlížet pomocí nástroje kstat.
- Pro každé procesorové jádro s podporou MPERF/APERF byly implementovány senzory frekvence CPU. Při práci na baterii je aktivováno škálování frekvence CPU podle zatížení.
- Na systémech ARM64 byla přidána počáteční podpora spánkového režimu. Limity na počet podporovaných CPU byly zvýšeny na 256. Bylo implementováno přepínání z konzole na bázi framebuffera (glass console) na konzolu založenou na sériovém portu (serial console).
- Byl odstraněn kód pro detekci CPU 386sx/386dx, NexGen, Rise a starých procesorů Cyrix vydaných před čipem Cyrix M2.
- Byla vylepšena podpora víceprocesorových systémů (SMP). Funkce pro omezení propustnosti (rate limit), vyhledávání ARP záznamů a route timer byly převedeny na úroveň mp-safe. Byla realizována možnost paralelního provádění operací, jako je rekonstrukce IPv4 paketů a přesměrování IP paketů. Do funkcí zpracování příchozích UDP a IP paketů byly přidány zámky soketů, které využívají mutex. Systémové výzvy kbind a pledge byly zbaveny zámků. Byly implementovány zámky UNIX socktů, působící na úrovni jednotlivých soketů.
- Realizace rámce drm (Direct Rendering Manager) je synchronizována s jádrem Linux 5.15.69 (v předchozím vydání – 5.15.26). Do ovladače inteldrm byla přidána podpora čipů Intel založených na mikroarchitekturách Alder Lake a Raptor Lake. Byla implementována podpora framebufferů, které nejsou zarovnány na stránkovou hranici paměti (používají se například v MacBook Pro 2021 14″ a 16″).
- Byla vylepšena hypervizor VMM. Do vmd byla přidána podpora zpracovatelů v uživatelském prostoru založených na MMIO. Emulace portů vstupu/výstupu ve vmm byla přesunuta do uživatelského prostoru. Byly sjednoceny vnitřní struktury a rozhraní ve vmd, vmctl a vmm. Přidána možnost monitorování virtuálních strojů pomocí SNMP AgentX, s použitím parametrů VM-MIB (RFC7666).
- Proměnná $rcexec ve skriptech inicializace rc.d byla nahrazena funkcí rc_exec. Byla přidána nová proměnná daemon_execdir, která umožňuje změnu adresáře před provedením funkce rc_exec. Do rc.d a rcctl byla přidána nová akce configtest pro kontrolu syntaxe konfigurace.
- Součástí je utilita ts, která k řetězcům přijatým přes standardní vstup přidává čas, který odráží okamžik přijetí každého řetězce.
- Do utility ps byla přidána volba „-f“ pro hierarchické seskupení procesů, které odráží vztah mezi rodičovskými a podřízenými procesy.
- V utilitě openrsync byla implementována volba „—contimeout“ pro určení časového limitu pro navázání spojení.
- V utilitě pkg_add je standardně zahrnuto kešování, optimalizována práce s balíčky a zajištěn výstup indikátoru prováděné operace během přenosu dat.
- Ve fdisk byla vylepšena práce s tabulkami GPT a MBR, byly přidány varování při nevhodném umístění oddílů MBR a GPT.
- V utilitě disklabel byla přidána podpora klíčového slova raid v šablonách pro automatické umístění oddílů s RAID. Byla zastavena podpora úpravy informací o geometrii disku. Byla zastavena podpora atributů ‘bs’ (velikost zaváděcího bloku), ‘sb’ (velikost superbloku) a d[0-4] (data disku).
- Do adresáře /usr/share/btrace byla umístěna sbírka užitečných skriptů btrace pro dynamické sledování a inspekci aplikací.
- Do zvukové knihovny sndio byla přidána funkce sio_flush pro okamžité zastavení reprodukce.
- Byla zahrnuta utilita llvm-profdata pro práci s daty profilování.
- V utilitě wc byl urychlen výpočet slov.
- Byla přidána podpora nového hardwaru, včetně nových ovladačů:
- aplaudio (zvukový subsystém Apple).
- aplmca (MCA řadič Apple).
- aplsart (Apple SART).
- alpdc, apldchidev, apldckbd, apldcms, aplrtk (klávesnice a trackpad Apple M2).
- qcgpio, qciic (GPIO a GENI I2C řadiče pro Qualcomm Snapdragon).
- sfgpio, stfclock, stfpinctrl, stftemp (ovladače pro GPIO, časovač a senzory desek SiFive).
- sxirintc (řadič přerušení pro čipy Allwinner).
- gpiorestart (ovladač pro restart přes GPIO).
- V ipmi byla rozšířena podpora senzorů napájení.
- V ehci byla přidána podpora řadiče používaného na deskách Marvell 3720.
- V ovladači igc pro gigabitové ethernetové adaptéry Intel I225 bylo zahrnuto hardwarové urychlení výpočtu kontrolních součtů pro IPv4, TCP a UDP. V ovladači ix pro ethernetové adaptéry Intel 82598/82599/X540/X550 byla implementována podpora hardwarového urychlení zpracování TCP segmentů (Large Receive Offloading), které se aktivuje pomocí volby tso v ifconfig.
- V ovladači iwx byla implementována podpora čipů Intel AX210/AX211 a rozšířena škála detekovaných bezdrátových zařízení.
- Byla přidána možnost bootování z oddílů softwarového RAID 1 (softraid) na systémech amd64, sparc64 a arm64.
- V snmpd a xlock byla implementována separace privilegií.
- V funkcích bind a connect pro UNIX sokety byla zajištěna izolace na základě systémového volání unveil.
- Byl přidán nový systémový volání ypconnect pro vytvoření soketu pro připojení k serverem YP s použitím IP adresy z blokovaného souboru ypbinding. V ypldap byl přidán režim 'local bind', při kterém se připojuje RPC soket k loopback rozhraní, aby se vyloučila externí připojení k serveru.
- Programy hcpleased, mountd, nfsd, pflogd, resolvd, slaacd a unwind umístěné v adresáři /sbin byly převedeny na používání dynamického spojování pro aktivaci dalších bezpečnostních opatření, které se vztahují na dynamicky spojované spustitelné soubory.
- V síťovém zásobníku byly implementovány systémové volání sendmmsg a recvmmsg, které umožňují v rámci jednoho systémového volání organizovat odeslání a čtení více zpráv, které by dříve vyžadovaly samostatná volání sendmsg a recvmsg.
- V paketovém filtru pf byla změněna zpracování paketů IGMP a ICMP6 MLD (Multicast Listener Discovery), což umožnilo správně fungovat s management multicast paketů v konfiguraci ve výchozím nastavení. Byla implementována přísnější kontrola zpráv IGMP/MLD.
- V IPsec byla vylepšena práce s certifikáty. V iked byla vylepšena kompatibilita s OpenIKED. Do příkazu ikectl show stats byla přidána statistika o úspěšných a neúspěšných připojeních k iked.
- V bgpd byl přidán filtr max-communities pro omezení počtu povolených komunit, byla implementována norma RFC 9234 (Prevence a detekce úniku cest pomocí rolí v zprávách UPDATE a OPEN), byla zajištěna plná podpora RFC 7911 (Oznámení více cest v BGP), statické hashovací funkce byly nahrazeny RB-stromy pro zvýšení efektivity velkých systémů. Byl přidán proces bgplgd s implementací serveru FastCGI, který poskytuje REST API pro příkazy bgpctl.
- V rpki-client bylo povoleno použití více než jednoho CRL URI v certifikátech, byla implementována možnost skiplist pro ignorování domén, přidána možnost verifikace ASPA (Oprávnění poskytovatele autonomního systému) a sig-soubory, byla implementována dekódování TAL (RFC 8630), byla zpřísněna kontrola EE-certifikátů a zlepšena kompatibilita se specifikacemi HTTP.
- V snmpd bylo povoleno použití názvů objektů v snmpd.conf kromě OID. Byla implementována možnost nastavení černé listiny pro vyloučení podstromů z výstupu. Do implementace protokolu AgentX byla přidána podpora pro agenta master.
- V httpd byly navrženy nové definice MIME-typů.
- Nástroj ftp byl převeden na použití spojení zpracovávaných v nebločním režimu pomocí ppoll.
- V tmux („terminálový multiplexer“) byla přidána možnost použití ACL pro organizaci připojení několika uživatelů přes jeden soket.
- Byly aktualizovány balíčky LibreSSL a OpenSSH. Podrobný přehled vylepšení lze vidět v revizích LibreSSL 3.6.0 a OpenSSH 9.1.
- Počet portů pro architekturu AMD64 činil 11451 (bylo 11301), pro aarch64 — 11261 (bylo 11081), pro i386 — 10225 (bylo 10136). Mezi verzemi aplikací v portech:
- Asterisk 16.28.0, 18.14.0 a 19.6.0
- Audacity 2.4.2
- CMake 3.24.2
- Chromium 105.0.5195.125
- Emacs 28.2
- FFmpeg 4.4.2
- GCC 8.4.0 a 11.2.0
- GHC 9.2.4
- GNOME 42.4
- Go 1.19.1
- JDK 8u342, 11.0.16 a 17.0.4
- KDE Gear 22.08.1
- KDE Frameworks 5.98.0
- Krita 5.1.1
- LLVM/Clang 13.0.0
- LibreOffice 7.4.1.2
- Lua 5.1.5, 5.2.4 a 5.3.6
- MariaDB 10.9.3
- Mono 6.12.0.182
- Mozilla Firefox 105.0.1 a ESR 102.3.0
- Mozilla Thunderbird 102.3.0
- Mutt 2.2.7 a NeoMutt 20220429
- Node.js 16.17.1
- OCaml 4.12.1
- OpenLDAP 2.6.3
- PHP 7.4.30, 8.0.23 a 8.1.10
- Postfix 3.7.2
- PostgreSQL 14.5
- Python 2.7.18, 3.9.14 a 3.10.7
- Qt 5.15.6 a 6.3.1
- R 4.2.1
- Ruby 2.7.6, 3.0.4 a 3.1.2
- Rust 1.63.0
- SQLite 3.39.3
- Shotcut 22.06.23
- Sudo 1.9.11.2
- Suricata 6.0.6
- Tcl/Tk 8.5.19 a 8.6.12
- TeX Live 2021
- Vim 9.0.0192 a Neovim 0.7.2
- Xfce 4.16
- Byly aktualizovány komponenty od třetích stran zahrnuté v OpenBSD 7.2:
- Grafický stack Xenocara na bázi X.Org 7.7 s xserver 1.21.4 + patche, freetype 2.12.1, fontconfig 2.13.94, Mesa 22.1.7, xterm 372, 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.6.0
- Unbound 1.16.3
- Ncurses 5.7
- Binutils 2.17 (+ patche)
- Gdb 6.3 (+ patche)
- Awk 12.9.2022
- Expat 2.4.9
Zdroj: opennet.ru
