Na twee jaar na de publicatie van tak 14.0 is de release van FreeBSD 15.0 gevormd. Installatiebuilds zijn voorbereid voor de architecturen amd64, aarch64, armv7, powerpc64, powerpc64le en riscv64. Aanvullend worden builds geleverd voor virtualisatiesystemen (QCOW2, VHD, VMDK, raw) en cloudomgevingen zoals Amazon EC2, Google Compute Engine en Vagrant.
Met de tak FreeBSD 15 is de ondersteuningsperiode voor belangrijke takken na de vorming van de eerste release (15.0) verkort van 5 naar 4 jaar, en nieuwe belangrijke takken worden eens in de twee jaar gevormd. Tussenversies (15.1, 15.2, 15.3) zullen worden ontwikkeld binnen een vaste ontwikkelingscyclus, wat inhoudt dat nieuwe versies in één tak ongeveer elke 6 maanden zullen worden gepubliceerd, in plaats van eens per jaar zoals tot nu toe het geval was. Met de gelijktijdige ondersteuning van twee verschillende belangrijke takken, zal de nieuwe tussenrelease elke 3 maanden worden gepubliceerd (15.4, 16.1, 15.5, 16.2, enz.), met uitzondering van de voorbereiding van de eerste releases van nieuwe belangrijke takken, waarvoor een onderbreking van 6 maanden in de releases zal zijn (bijvoorbeeld zal release 15.3 in juni 2027 worden gevormd, 16.0 in december 2027, 15.4 - in maart 2028, 16.1 - in juni 2028).
Belangrijkste wijzigingen in FreeBSD 15.0 (in de officiële release-opmerking, naast de specifieke wijzigingen voor release 15.0, worden veel mogelijkheden genoemd die eerder in de takken 14.1, 14.2 en 14.3 zijn toegevoegd):
- Er is een mogelijkheid toegevoegd om de pakketbeheerder pkg te gebruiken voor het installeren en bijwerken van componenten van het basis systeem. Paketten pkgbase kunnen op het installatie-medium worden geleverd voor offline-installatie of gedownload worden uit de repository pkg.freebsd.org. In de pkg-configuratie (/etc/pkg/FreeBSD.conf) is de FreeBSD-base repository standaard niet ingeschakeld. De installer bsdinstall biedt twee installatiemethoden aan: traditioneel en met behulp van pakketten (pkgbase). Ondersteuning voor de traditionele methode, waarbij het basis systeem wordt beschouwd als een monolithische omgeving die wordt bijgewerkt met behulp van de utility freebsd-update, is gepland om te worden verwijderd in tak FreeBSD 16. De nieuwe methode, die inhoudt dat het basis systeem wordt geïnstalleerd als een set pakketten uit de repository FreeBSD-base, is standaard aangeboden in builds voor virtuele machines en afbeeldingen voor cloudomgevingen, maar wordt voorlopig als experimenteel beschouwd voor gewone systemen.
- Ondersteuning voor het bouwen van FreeBSD in niet-bevoorrechte omgevingen zonder root-rechten is toegevoegd. Installatie iso-images en systeembestanden voor virtuele machines kunnen ook zonder root-rechten worden gemaakt. Tijdens het bouwproces waren root-rechten nodig voor het maken van apparaatsbestanden, het instellen van toegangsrechten en het monteren van extra bestandssystemen (bijvoorbeeld bij het creëren van schijfkopieën).
- Ondersteuning voor reproduceerbare builds is geïmplementeerd, waarmee kan worden gegarandeerd dat de verspreide binaire bestanden zijn samengesteld uit de verstrekte broncode en geen verborgen wijzigingen bevatten. Reproduceerbare builds zorgen voor identieke binaire bestanden die uit de broncode in verschillende build-omgevingen worden gecreëerd.
- Het maken van installatie-images en binaire pakket-builds voor 32-bits architecturen i386, armv6 en powerpc is stopgezet. Van de 32-bits platforms blijft alleen armv7 over. De mogelijkheid om 32-bits programma's te bouwen en de COMPAT_FREEBSD32-modus te gebruiken om 32-bits uitvoerbare bestanden uit te voeren in een omgeving met een 64-bits kernel blijft ten minste tot het einde van de levenscyclus van de FreeBSD 16-release bestaan.
- Systeemoproepen zijn toegevoegd met de implementatie van het inotify-mechanisme voor het volgen van wijzigingen in bestandssystemen.
- Ondersteuning voor benoembare bestandsattributen (uitgebreide attributen in Solaris-stijl) is toegevoegd, die als een alternatieve methode voor het beheer van uitgebreide attributen gepland zijn, beschikbaar voor ZFS en NFSv4. De verschillen met de traditionele methoden voor FreeBSD en Linux voor het werken met uitgebreide attributen hebben te maken met de presentatie van de attributen in een systeemdirectory, die niet zichtbaar is in de hoofdnaamruimte van het bestandssysteem en die met het bestand is geassocieerd. Het werken met attributen gebeurt als met gewone bestanden; bijvoorbeeld, om de lijst van attributen te bepalen, kan de functie readdir() worden uitgevoerd.
- De mac_do-module is uitgeroepen tot gebruiksklaar, waarmee beleid kan worden ingesteld dat niet-bevoegde gebruikers toestaat de identificatiegegevens van processen te wijzigen. Om opdrachten als een andere gebruiker uit te voeren, is een hulpprogramma mdo voorbereid dat vergelijkbaar is met het hulpprogramma su, maar geen suid root vereist.
- De status van de DRM-drivers i915 en amdgpu is gesynchroniseerd met de Linux-kernel 6.9. De drivers voor draadloze apparaten rtw88 (Realtek 802.11n/ac), rtw89 (Realtek 802.11ax) en iwlwifi (Intel 02.11a/b/g/n/ac/ax/be) zijn gesynchroniseerd met de Linux-kernel 6.17.
- De implementatie van het TLS-protocol aan de kernelzijde (KTLS) is standaard ingeschakeld.
- De sndctl-hulpprogramma is toegevoegd voor het beheren van de instellingen van geluidskaarten.
- De mididump-hulpprogramma is toegevoegd voor het dumpen van MIDI 1.0-gebeurtenissen in realtime.
- In de bhyve-hypervisor is een nieuwe netwerkkant achter «slirp» toegevoegd, die de libslirp-bibliotheek gebruikt met een implementatie van de netstack in de gebruikersruimte. De «slirp»-achterkant maakt toegang tot het netwerk van het gastbesturingssysteem vanuit de hostomgeving mogelijk zonder aparte netwerksinstellingen aan de hostzijde.
- De implementatie van Kerberos in de hoofdversie van FreeBSD is vervangen van Heimdal Kerberos naar MIT Kerberos. Om Heimdal Kerberos bij de build terug te krijgen, kan de vlag WITHOUT_MITKRB5 worden gebruikt. In FreeBSD 16 zal de ondersteuning voor de build van Heimdal Kerberos worden verwijderd.
- Het gedrag van de systeemaanroepen setgroups, getgroups en initgroups bij het verwerken van gebruikersgroepen is dichter bij andere platforms gebracht (het verschil in implementatie in FreeBSD had betrekking op het opslaan van de effectieve groeps-ID van processen in het nul-element van de groepslijstarray).
- In de instellingen van de pakketbeheerder pkg is standaard een nieuw FreeBSD-kmods-repository opgenomen, waarin pakketten met kernelmodules zijn geplaatst die zijn opgebouwd voor specifieke release-takken 15.x-RELEASE, in plaats van voor de voortdurend bijgewerkte tak 15-STABLE. Het FreeBSD-kmods-repository lost het probleem op met het installeren van drivers die afhankelijk zijn van onbetrouwbare kernel-interfaces (bijvoorbeeld grafische drivers). De vroeger aanwezige repositories "FreeBSD" en "FreeBSD-kmods" in /etc/pkg/FreeBSD.conf zijn hernoemd naar "FreeBSD-ports" en "FreeBSD-ports-kmods".
- Ondersteuning voor de CLONE-operatie, zoals gedefinieerd in de NFSv4.2-specificatie, is toegevoegd aan NFS, waarmee een snel kopieerproces van bestanden via blokklonering op de server mogelijk is. Deze modus werkt voorlopig alleen bij het exporteren van ZFS-partities via NFS.
- Op amd64-systemen is het mogelijk gemaakt om meer dan 4TB RAM te gebruiken.
- De ufshci-driver is toegevoegd ter ondersteuning van opslagcontrollers met de UFSHCI-interface (Universal Flash Storage Host Controller Interface).
- De sysctl net.link.bridge.member_ifaddrs is standaard ingesteld op 0, wat betekent dat interfaces zonder meer aan netwerken kunnen worden toegevoegd. IP-adressen.
- De betrouwbaarheid van de UFS-bestanden met meer dan 2.000.000.000 inodes is verhoogd. In de implementatie van UFS1 is het probleem van het jaar 2038 opgelost (datums tot 2106 kunnen worden gebruikt).
- De optie van netwerksockets SO_SPLICE is toegevoegd voor het combineren van TCP-verbindingen (vergelijkbaar met een proxy die werkt zonder gegevens naar de gebruikersruimte te kopiëren).
- In de grep-tool is de standaardinstelling voor het doorlopen van symbolische links bij recursief zoeken uitgeschakeld.
- De kernelmodule nvmfta is toegevoegd ter ondersteuning van NVMe over Fabric-controllers en de nvmecontrol-tool voor verbinding met een externe NVMe over Fabric-controller.
- In de date-tool is ondersteuning toegevoegd voor het weergeven van tijd met nanoseconde-nauwkeurigheid, bijvoorbeeld 'date -Ins' geeft '2024-04-22T12:20:28,763742224+02:00' weer.
- In jail is ondersteuning voor de optie zfs.dataset toegevoegd voor het toevoegen van een partitie, snapshot of clone van ZFS aan een geïsoleerde jail-omgeving. De jail-opdracht heeft ondersteuning gekregen voor de parameters 'meta' en 'env', waarmee metadata kunnen worden gekoppeld of omgevingsvariabelen kunnen worden doorgegeven. Er is een mogelijkheid toegevoegd om jail-omgevingen te adresseren via jail-descriptoren, waarvoor de functies jail_set en jail_get zijn voorgesteld, evenals de systeemaanroepen jail_attach_jd en jail_remove_jd. Er is de mogelijkheid toegevoegd om kevent-filters te gebruiken voor het volgen van operaties voor het maken, verwijderen, wijzigen en bevestigen van Jail.
- In de utility newsyslog is een parameter geïmplementeerd voor het instellen van de standaard compressiemethode (bzip2, xz, zstd, gzip), waardoor het niet langer nodig is om afzonderlijke vlaggen (J, X, Y, Z) op elke regel van newsyslog.conf op te geven.
- In de standaard C-bibliotheek zijn optimalisaties op basis van SIMD-instructies verwerkt in veel functies voor teken- en geheugenmanipulatie.
- In het Gallant-lettertype, dat wordt gebruikt in virtuele terminals, zijn meer dan 4300 nieuwe glyphs toegevoegd, inclusief glyphs met cyrillische symbolen en wiskundige tekens.
- In de tty is de vlag IUTF8 standaard ingesteld, waardoor het verwijderen van UTF-8-tekens bij het indrukken van Backspace correct werkt.
- De utility dialog, gebruikt in de bsdconfig-configurator en de bsdinstall-installateur, is vervangen door bsddialog.
- In de utility adduser, gebruikt in bsdinstall, is ervoor gezorgd dat er een apart ZFS dataset (partitie, snapshot of clone) voor de thuismap van de gebruiker wordt aangemaakt, als een ZFS dataset al voor de bovenliggende map wordt gebruikt. Ook is er de mogelijkheid toegevoegd om versleuteling van thuismappen te gebruiken via ZFS. Voor het beheren van de activering van deze mogelijkheden zijn in adduser.conf de parameters 'Zcreate' en 'Zencrypt' toegevoegd.
- Er is compatibele OCI-ondersteuning voor containerimages en systeemimages voor Oracle Cloud geïmplementeerd.
- Een nieuw type images 'small' is toegevoegd voor cloudomgevingen die compatibel zijn met AWS EC2. In tegenstelling tot de basisimages zijn debuggegevens, tests, 32-bits bibliotheken, de debugger LLDB, Amazon SSM Agent en AWS CLI uitgesloten. De laadtijd van 'base'-images voor EC2 is met 76% versneld.
- Standaard is de instelling net.inet.tcp.nolocaltimewait uitgeschakeld en als verouderd verklaard, wat betekent dat de creatie van TIME_WAIT-records voor TCP-verbindingen die aan de kant van het lokale systeem zijn verbroken, is teruggebracht naar de standaard. Voor de configuratie van de tijdsduur dat een verbinding in de TIME_WAIT-status blijft, is er een nieuwe sysctl net.inet.tcp.msl_local toegevoegd.
- Standaard is de ondersteuning voor het maken van netwerkverbindingen naar localhost, waarbij INADDR_ANY is opgegeven, uitgeschakeld. Om de ondersteuning te herstellen, kan de sysctl net.inet.ip.connect_inaddr_wild sysctl op 1 worden gezet.
- De volume manager gvinum, die werd gebruikt voor software RAID, is verwijderd. De ontwikkeling van Gvinum stopte ongeveer 15 jaar geleden, terwijl de code een aantal bekende problemen bevat die nog niemand heeft aangepakt. In plaats van gvinum wordt aanbevolen om gconcat, gmirror, gstripe, graid of zfs te gebruiken.
- De agp-driver (Accelerated Graphics Port), dat noodzakelijk is voor de werking van veel drivers voor oudere videokaarten, is gepland om te worden verwijderd in FreeBSD 16. Ook zijn de volgende drivers als verouderd verklaard en gepland voor verwijdering: fdc (IBM PC Floppy Disk Controller), firewire (IEEE1394 Serial Bus), le (AMD Am7900 LANCE en Am79C9xx Ethernet) en upgt (USB 802.11g).
- De functie readdir_r is als verouderd verklaard.
- In de SNMP-server bsnmpd is de ondersteuning voor het UDP-transportsysteem stopgezet.
- De generatie van RSA-hostsleutels voor SSH en EC2 AMI is stopgezet. De ondersteuning voor DSA is verwijderd uit OpenSSH. De publickey-database, die afhankelijk was van het DES-algoritme, is verwijderd.
- Ftpd en shar zijn uit het basissysteem verwijderd, in plaats daarvan moeten de ports ftp/freebsd-ftpd en sysutils/freebsd-shar worden gebruikt.
- Het hulpprogramma fdisk is als verouderd verklaard, in plaats daarvan moet gpart worden gebruikt.
- De syscons-driver, die niet compatibel is met UEFI, geen UTF-8 ondersteunt en afhankelijk is van globale vergrendeling, is verouderd verklaard.
- Versies van LLVM 19.1.7, OpenSSH 10.0p2, OpenSSL 3.5.4, OpenZFS 2.4.0rc4, Lua 5.4.8, jemalloc 5.3.0, Awk 20250804 (met ondersteuning voor UTF-8), bc 7.1.0, unicode 16.0.0, ncurses 6.5, libarchive 3.8.2, tcpdump 4.99.5, unbound 1.24.1, less 679 en file 5.46, GoogleTest 1.15.2 zijn bijgewerkt.
Bron: opennet.ru
