Het rapport over de ontwikkeling van het FreeBSD-project voor het tweede kwartaal van 2025 is gepubliceerd. Opmerkelijke wijzigingen zijn:
- Het FreeBSD Core Team ontwikkelt richtlijnen voor het gebruik van AI en grote taalmethoden in de ontwikkeling. Mogelijke toepassingen van AI in FreeBSD zijn onder andere het vertalen van documentatie, het samenvatten van grote/onduidelijke documenten, het volgen van fouten en het analyseren van code. Voor het genereren van code is voorlopig geen toepassing van AI gepland, voornamelijk vanwege mogelijke licentieproblemen.
- De installer heeft ondersteuning toegevoegd voor het pkgbase-systeem, waarmee componenten van het basissysteem kunnen worden geïnstalleerd in een formaat dat geschikt is voor beheer en updates met behulp van de pakketbeheerder pkg. Pakketten van pkgbase kunnen zowel worden meegeleverd op het installatiemedium voor offline installatie als worden gedownload uit de repository pkg.freebsd.org.
- De ontwikkeling van het project bsd-user-4-linux gaat door, dat het mogelijk maakt om op Linux-systemen applicaties te draaien die zijn samengesteld voor FreeBSD. Het doel van het project is om het opbouwen van pakketten voor FreeBSD in Linux mogelijk te maken, met gebruik van de eigen opbouwtooling van FreeBSD. Voor het uitvoeren van uitvoerbare bestanden van FreeBSD in Linux wordt een fork van de QEMU-emulator gebruikt, die in de modus User Mode Emulation werkt, bedoeld voor het uitvoeren van processen die zijn gecompileerd voor andere CPU's en besturingssystemen (QEMU vertaalt systeemaanroepen en behandelt signalen). In de huidige ontwikkelingsfase is het al mogelijk om FreeBSD opnieuw op te bouwen met het commando 'make -j80 buildworld', terwijl je in Linux bent. Het starten van de belangrijkste systeemutiliteiten, zoals sh, bash, find, grep, git en clang, werkt. Onder recente wijzigingen wordt de overgang naar de codebasis van QEMU 9.2 en de implementatie van ondersteuning voor het kqueue()-mechanisme in Linux met behulp van libkqueue opgemerkt.
- De virtualisatieplatform Sylve wordt ontwikkeld voor FreeBSD, waarmee het mogelijk is om via een webinterface de uitvoering te beheren. virtuele machines gebaseerd op de hypervisor Bhyve en containers op basis van Jail-omgevingen. Het project is gericht op het bieden van functionaliteit vergelijkbaar met de Linux-distributie Proxmox VE, maar gebaseerd op FreeBSD, Bhyve en ZFS. In het tweede kwartaal zijn er wijzigingen aangebracht, waaronder de toevoeging van grafieken voor het visualiseren van CPU-belasting, geheugenverbruik en netwerkactiviteit, een interface voor het werken met netwerkaansluitingen, mogelijkheden voor het werken met bestandssystemen, schijven, pools en ZFS-snapshots, ondersteuning voor het booten van virtuele machine-images via een webinterface, en mogelijkheden voor het creëren en verwijderen van virtuele machines voor Bhyve met ondersteuning voor VNC-console, doorgeven van PCI-apparaten en toewijzing aan geselecteerde CPU-kernen.
- De libvirt-port voor de hypervisor bhyve is verbeterd. Een testproject voor de bhyve-driver van libvirt is geïntroduceerd in het systeem voor continue integratie met FreeBSD. De compatibiliteit van de bhyve-driver is verhoogd. Ondersteuning voor virtio-rnd-apparaten, NVRAM-configuratie en uitgebreide statistieken is toegevoegd. Ondersteuning voor netwerktoegang via NAT op basis van het pakketfilter pf is gerealiseerd.
- De verwerking van tlsbase op amd64-systemen is verbeterd, wat een positief effect heeft gehad op de werking van applicaties die TLS (Thread-Local Storage) handmatig beheren, zoals Wine.
- In de linker rtld (Runtime linker) is de optie «-z initfirst» geïmplementeerd, die extra mogelijkheden biedt voor het beheer van de initialisatievolgorde in dynamisch gelinkte applicaties.
- Ondersteuning voor introspectie van kqueue is toegevoegd en de mogelijkheden voor het analyseren van het gebruik van evenementenverwerkingsmechanismen in de kern zijn uitgebreid. In de procstat-tool is een rapportagefunctie over de status van kqueue geïmplementeerd.
- In de kernel is de vlag EXTERROR geïmplementeerd, die informatie geeft over de beschikbaarheid van uitgebreide foutinformatie. Met behulp van EXTERROR kunnen applicaties aanvullende diagnostische informatie bijfouten krijgen, die niet beperkt is tot de foutcode.
- In de codebasis van FreeBSD 15 is de productie van install-images en het bouwen van binaire pakketten voor 32-bit architecturen i386 en powerpc stopgezet. Onder de 32-bit platformen is alleen het armv7-platform overgebleven in de FreeBSD 15-branch. De COMPAT_FREEBSD32-modus, die het uitvoeren van 32-bit uitvoerbare bestanden in 64-bit omgevingen mogelijk maakt, blijft bestaan, maar in de ports zal de ondersteuning voor 32-bit builds worden stopgezet.
- In de FreeBSD 15-tak is het gedrag van de systeemaanroepen setgroups, getgroups en initgroups bij de verwerking van gebruikersgroepen vergelijkbaar met andere platforms (het enige verschil in de implementatie binnen FreeBSD was het opslaan van de effectieve groeps-ID van het proces in het nul-element van de array met de lijst van groepen).
- Er wordt gewerkt aan de vervanging van de Kerberos-implementatie binnen de hoofdversie van FreeBSD van Heimdal Kerberos naar MIT Kerberos. MIT Kerberos is al opgenomen in de FreeBSD 15-CURRENT-tak, maar wordt voorlopig alleen geactiveerd via de optie WITH_MITKRB5.
- De eerste versies van de applicatie SysctlTUI zijn gepubliceerd, die een tekstinterface biedt voor het navigeren door de boom van sysctl-parameters, het bekijken van gerelateerde metadata en het wijzigen van instellingen.

- Er wordt gewerkt aan een nieuwe partitiebeheerder Geomman (GEOM Manager), gebaseerd op sade en biedt extra functionaliteiten zoals het verplaatsen, kopiëren en plakken van schijfpartities. Naast UFS ondersteunt Geomman ext2, ext3, ext4, exFAT en NTFS, met geplande ondersteuning voor ZFS. Onder andere kan de grootte van bestaande partities met het bestandssysteem ext4 worden vergroot of verkleind, en nieuwe exFAT-partities kunnen worden aangemaakt.
- Het verbeteren van de audiostack van FreeBSD voortgezet. De geluidsdriver is opgeschoond, er is een nieuwe tool sndctl toegevoegd, ondersteuning voor AFMT_FLOAT geïmplementeerd, de werking met audiotoestellen op laptops is aanzienlijk verbeterd, en de refactoring van de MIDI-subsystem is begonnen.
- De DRM-drivers (i915 en amdgpu) zijn van de Linux-kernel 6.9 geport. De wijzigingen worden ontwikkeld voor de FreeBSD 15-CURRENT-tak, maar zullen vermoedelijk worden teruggebracht naar de 14-STABLE-tak.
- Er wordt gewerkt aan het toevoegen van de energiebesparende modi S0ix en s2idle (Suspend-To-Idle), die het energieverbruik bij het gebruik van FreeBSD op moderne laptops met Intel- en AMD-processors zullen verlagen, waarvan sommige de slaapstand S3 niet ondersteunen. In de USB4-driver is de mogelijkheid toegevoegd om over te schakelen naar de energiezuinige modus C3.
- Voor de FreeBSD 15-tak wordt ondersteuning ontwikkeld voor bestandsattributen (uitgebreide attributen in Solaris-stijl), die worden gepland als een alternatieve methode voor het beheer van uitgebreide attributen, beschikbaar voor ZFS en NFSv4. De verschillen met de traditionele methoden van FreeBSD en Linux voor het werken met uitgebreide attributen houden verband met de presentatie van de attributen in een speciale directory, die niet zichtbaar is in de hoofdnaamruimte van het bestandssysteem en die met het bestand is geassocieerd. Werken met attributen gebeurt zoals met gewone bestanden; bijvoorbeeld kan de functie readdir() worden uitgevoerd om de lijst van attributen te bepalen.
- Patches zijn voorbereid met de implementatie van de montage-optie 'packrat', die het mogelijk maakt om agressieve caching van gegevens in lokale niet-vluchtige opslag aan de klantzijde voor NFSv4.1/4.2 te organiseren.
- Op basis van LinuxKPI, de laag voor het draaien van Linux-stuurprogramma's in FreeBSD, wordt de vernieuwde net80211-stack ontwikkeld met ondersteuning voor de standaarden Wi-Fi 5 (802.11ac) en Wi-Fi 6 (802.11ax). De iwlwififw-firmware voor de Intel iwlwifi-stuurprogramma is uit het basissysteem verwijderd ten gunste van installatie vanuit de ports en het gebruik van de utility fwget. In linuxkpi is ondersteuning voor wlan_tkip gerealiseerd, waardoor cryptografische protocollen zoals TKIP (Temporal Key Integrity Protocol) en Michael (Message Integrity Code) kunnen worden gebruikt.
- Ondersteuning voor een debug-interface is gerealiseerd, aangeboden in de XHCI USB-controllers en waarmee een speciale USB 3-kabel kan worden gebruikt voor het beheren van de kerneldebugging van FreeBSD. Een dergelijke interface kan worden toegepast voor het debuggen van problemen in grafische stuurprogramma's die leiden tot uitvoerproblemen.
- Er wordt gewerkt aan het porteren voor de FreeBSD-kernel van de originele implementatie van de bestandssystemen HFS en HFS+, waarvan de stuurprogramma's zijn geopend door Apple.
- Een FreeBSD-port is voorbereid voor de smartphone Pinephone Pro, inclusief firmware met ondersteuning voor touchscreenbediening en een eenvoudige desktopomgeving. Helaas heeft het project Pine64 enkele dagen geleden aangekondigd de productie stop te zetten en de verkoop van de PinePhone Pro te beëindigen.
- Het aantal ports is gestegen van 36332 naar 36605. Onder de updates in de ports bevinden zich: GCC 15, OpenJDK 24.0.1, GNOME 47, KDE Plasma 6.4.1, KDE Framework 6.15.0, Sway 1.11, Qt 6.9.1, Ruby 3.4.4, Rust 1.87.0, SDL 3.2.16, Xorg server 21.1.18. Standaard zijn versies van Go 1.24, Perl 5.40, Ruby 3.3, PostgreSQL 17 in gebruik. De omgeving voor de Linuxulator is bijgewerkt naar Rocky Linux 9.
- Optionele ondersteuning toegevoegd voor het samenstellen van poorten met compilerflags die extra beveiligingsmodi inschakelen. In make.conf zijn de volgende instellingen geïmplementeerd:
- WITH_FORTIFY voor bescherming tegen bufferonderlopen door extra controles toe te voegen aan functies zoals memcpy, strcpy en sprintf;
- WITH_STACK_AUTOINIT voor automatische initialisatie van lokale variabelen;
- WITH_ZEROREGS voor bescherming tegen ROP-exploits (Return-Oriented Programming) en informatielekkage via CPU-registers.
Bron: opennet.ru

