Udgaven af det frie, tværgående UNIX-lignende operativsystem OpenBSD 6.9 er præsenteret. Det bemærkes, at dette er den 50. udgave af projektet, som fylder 26 år i år. OpenBSD-projektet blev grundlagt af Theo de Raadt i 1995 efter en konflikt med udviklerne af NetBSD, hvilket resulterede i, at Theo blev nægtet adgang til CVS-repositoriet for NetBSD. Herefter skabte Theo de Raadt sammen med en gruppe af ligesindede et nyt åbent operativsystem baseret på kildekoden fra NetBSD, hvor de primære udviklingsmål blev portabilitet (understøtter 13 hardwareplatforme), standardisering, korrekt funktion, aktiv sikkerhed og integrerede kryptografiske midler. Størrelsen på det fulde installations-ISO-billede af OpenBSD 6.9 er 544 MB.
Ud over selve operativsystemet er OpenBSD-projektet kendt for sine komponenter, der har fået udbredelse i andre systemer og har vist sig at være nogle af de sikreste og mest kvalitetsløsninger. Blandt dem er: LibreSSL (en fork af OpenSSL), OpenSSH, pakkefiltreringssystemet PF, routingdemonerne OpenBGPD og OpenOSPFD, NTP-serveren OpenNTPD, mailserveren OpenSMTPD, tekstterminalmultiplexer (svarende til GNU screen) tmux, identd-demonen med implementering af IDENT-protokollen, BSDL-alternativet til GNU groff - mandoc, protokollen til etablering af fejltolerante systemer CARP (Common Address Redundancy Protocol), Lette http-server og synkroniseringsværktøjet OpenRSYNC.
Hovedforbedringer:
- I softraid-driveren er der tilføjet en RAID1C-tilstand med implementering af software RAID1 med datakryptering.
- To nye baggrundsprocesser er blevet inkluderet - dhcpleased og resolvd, som arbejder sammen med slaacd og unwind for automatisk konfiguration af netværksgrænseflader og bestemmelse af navne i DNS. dhcpleased implementerer DHCP-protokollen for at modtage IP-adresser, mens resolvd sørger for styring af indholdet i resolv.conf baseret på data om navneservere, der er modtaget fra dhcpleased, slaacd og drivere som umb.
- Indledende støtte til Apple-enheder med M1-processor er blevet tilføjet. Det inkluderer genkendelse af arm64-kernene Apple Icestorm/Firestorm og støtte til de trådløse chips BCM4378, der anvendes i Apple M1 SoC.
- Forbedret support til powerpc64-platformen, der er udviklet til 64-bit systemer baseret på POWER8 og POWER9-processorer. I forhold til den tidligere udgave er der nu implementeret støtte til RETGUARD beskyttelsesmekanismen, tilføjet driver til astfb for Aspeed BMC framebuffer, løst problemer med driverne radeondrm og amdgpu på systemer med AMD GPU, tilføjet mulighed for netværksboot i kernel-builds til ram-disk, tilføjet støtte til strømbesparende tilstande for CPU POWER9, tilføjet støtte til undtagelser genereret ved operationer med flydende komma, implementeret IPMI-support til PowerNV systemer.
- For ARM64-platforme er der tilføjet støtte til CPU'erne Cortex-A78AE, Cortex-X1 og Neoverse V1, samt optimerede ARM64-kald til copyin, copyout og kcopy. Driveren cryptox til støtte for ARMv8 kryptoudvidelser er tilføjet, ligesom driveren smmu til RM System MMU med støtte for Guard Page. Der er også forbedret support til Raspberry Pi, Rock Pi N10, NanoPi og Pinebook Pro-enheder.
- I video-driveren er der tilføjet sysctl-parameteren kern.video.record, som fungerer på samme måde som kern.audio.record, til at styre aktiveringen af en blank skærm ved videooptagelse (for at aktivere optagelsen skal værdien ændres til 1). Processer kan nu åbne video-enheden flere gange (som løser problemer med brug af webcam i Firefox og BigBlueButton).
- Der er tilføjet tracepoints for malloc og free-opkald, hvilket muliggør sporing af hukommelsesfordelingsaktiviteter ved hjælp af dt og btrace. I btrace er tilføjet muligheden '-n' til parsing af programmet uden at udføre nogen handlinger.
- Forbedret støtte til multiprocessorsystemer (SMP). UNIX-socket-implementeringen er fjernet fra den globale lås i kernen, der er tilføjet en fælles mutex for at serialisere operationer med msgbuf, og kaldet uvm_pagealloc er blevet mp-safe. Kald til getppid og sendsyslog er blevet fjernet fra låsene.
- Der er løst problemer i DRM (Direct Rendering Manager) komponenterne, herunder nedbrud i radeondrm driveren på Powerbook5/6 og RV350 systemer, og DRI3-support er blevet implementeret i drivers amdgpu og ati for kompatibilitet med Linux, hvilket gør det muligt at oprette enheder i kataloget /dev/dri/.
- Der er gjort forbedringer i VMM-hypervisoren. Backend til håndtering af virtuelle maskiner (vmd) har nu støtte til opstart fra komprimerede RAM-diske.
- Der er foretaget forbedringer i lydsystemet. Det er muligt at tilknytte lydapparater separat til henholdsvis afspilning og optagelse. I sndiod er der implementeret et lavpasfilter med en endelig impulserespons (FIR-filter) af ottende orden, hvilket har elimineret støj fra overlappende spektra under resampling. Funktionen til automatisk volumenreduktion, når et nyt program begynder afspilning (autovolume), er som standard deaktiveret, og standard volumeniveauet er sat til 127. Muligheden for at blande lyd fra alternative apparater med forskellig funktionalitet er tilladt i sndiod.
- LLDB-debuggeren er som standard aktiveret for montage og installation.
- Der er tilføjet støtte til logger-håndtereren i rcctl, rc.subr og rc.d, hvilket muliggør organisering af logudgang fra baggrundsprocesser, der sender data til stdout/stderr.
- For touchpads er der mulighed for at konfigurere knaplayoutet gennem wsconsctl. Behandlingen af samtidige berøringer er blevet forbedret i wscons.
- For ARM64-enheder er der implementeret en mulighed for at bruge APM til at indhente oplysninger om energiforbrug og batteristatus. Adgangen til filsystemet for processen apmd er begrænset gennem unveil-kaldet.
- Støtten til hardware er blevet udvidet. Nye drivere er blevet tilføjet, som acpige (til behandling af ACPI-hændelser, såsom tryk på tænd/sluk-knappen), pchgpio (til GPIO-controllere, som moderne Intel PCH er udstyret med), ujoy (til spillecontrollere), uhidpp (for Logitech HID++-enheder). Støtte til AMD Vi og Intel VTD IOMMU-udvidelser er tilføjet for isolering af PCI-enheder og blokering af uretmæssig adgang til hukommelsen. Støtte til Lynloong LM9002/9003 og LM9013 computere er også blevet tilføjet. Der er tilføjet ACPI-støtte i driftserne pcamux og imxiic.
- Støtten til netværksadaptere er forbedret: mvpp (SFP+ og 10G til Marvel Armada Ethernet), mvneta (1000base-x og 2500base-x), mvsw (Marvel SOHO-switches), rge (støtte til Wake on LAN), Netgear ProSecure UTM25. For trådløse drivere iwm, iwn og athn er der tilføjet støtte til RA (802.11n Tx Rate Adaptation). I den trådløse stak er automatisk valg af 11a/b/g/n/ac tilstande blevet implementeret ved brug af netværksgrænsefladen som adgangspunkt.
- Der netværksstak har implementeret en driver veb (Virtual Ethernet Bridge). Der er implementeret understøttelse af overvågningsmodus, hvor de pakker, der modtages på netværksinterfacet, ikke sendes til netværksstakken til behandling, men analyseværktøjer som BPF kan anvendes på dem. En ny type netværksinterfaces - etherbridge - er blevet tilføjet. Der er givet mulighed for at overskrive kildeadressen ved hjælp af kommandoen route sourceaddr. IP-adresser for programmer, som omgår den normale adressevalgalgoritme. Netværksinterfaces aktiveres automatisk, når auto-konfigurationsmodus (AUTOCONF4 og AUTOCONF6) aktiveres.
- Installationsprogrammet har implementeret distributionen af en komprimeret ramdisk-agtig billede (bsd.rd) på alle platforme, der understøtter denne opstart.
- Der er implementeret en syslog-meddelelse, der advarer om brugen af formateringspladsen «%n» i printf.
- I routing-demonstrationen OpenBGPD er der tilføjet støtte til RTR-protokollen (Resource Public Key Infrastructure (RPKI) to Router Protocol). Kommandoen «bgpctl show rtr» er tilføjet for at vise hovedoplysninger om RTR-sessioner.
- Koden for ospfd og ospf6d er blevet omstruktureret for at ensarte dem med andre routing-demonstrationer og for at forenkle vedligeholdelsen. Der er etableret understøttelse af netværksinterfaces i punkt-til-punkt-tilstand.
- I den indbyggede HTTP-server httpd er der implementeret nye muligheder «location (found|notfound)» til at kontrollere, om ressourcer eksisterer.
- I værktøjet rpki-client er der tilføjet støtte til RRDP-protokollen (The RPKI Repository Delta Protocol, RFC 8182). Der er implementeret muligheden for at angive mere end én URI i TAL-filen.
- I værktøjet dig er der implementeret support for RFC 8914 (Extended DNS Error) og RFC 8976 (ZONEMD).
- I dhclient er der tilføjet mulighed for at angive indstillinger i filerne hostname.if ved hjælp af strenge «dhcp».
- I snmpd demon er der implementeret fuld understøttelse af konvertering fra Trapv1 til Trapv2 (RFC 3584). Nye nøgler read, write og notify er tilføjet i snmpd.conf. Værktøjet snmp har implementeret understøttelse af SMI enumerationer.
- I DNS-opløsningen unwind er der tilføjet støtte til DNS64 og modtagelse af forbindelser via TCP-port.
- I værktøjet ftp er der tilføjet støtte til permanente omdirigeringer (RFC 7538) og mulighed for at sende headeren If-Modified-Since, når der sendes forespørgsler via HTTP/HTTPS.
- I OpenSMTPD er tilføjet en mulighed «-a» for at udføre autentifikation før afsendelse af beskeder. Krypteringsmidlerne er blevet overført til brugen af bibliotekerne libtls. I de lyttende sockets for TLS er muligheden for at konfigurere flere certifikater, der vælges afhængigt af navnet, implementeret. domænet (SNI).
- LibreSSL har fået support til protokollen DTLSv1.2. Det er muligt at bygge kun libtls (‘--enable-libtls-only’) uden libcrypto og libssl.
- Pakken OpenSSH er blevet opdateret. En detaljeret gennemgang af forbedringerne kan ses her: OpenSSH 8.5, OpenSSH 8.6.
- Antallet af porte for arkitekturen AMD64 er 11310, for aarch64 — 10943, for i386 — 10468. Blandt versionerne af applikationerne i portene: 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 og 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.
Komponenterne fra tredjepartsudviklere i OpenBSD 6.9 er blevet opdateret:
- Grafikstakken Xenocara baseret på X.Org 7.7 med xserver 1.20.10 + patches, 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 (+ patches)
- GCC 4.2.1 (+ patches) og 3.3.6 (+ patches)
- Perl 5.32.1 (+ patches)
- NSD 4.3.6
- Unbound 1.13.1
- Ncurses 5.7
- Binutils 2.17 (+ patches)
- Gdb 6.3 (+ patch)
- Awk 18.12.2020
- Expat 2.2.10
Udgivelsen af OpenBSD 6.9 er ledsaget af den nye sang «Vetera Novis».
Kilde: opennet.ru
