Rapporten om udviklingen af FreeBSD-projektet for andet kvartal 2025 er offentliggjort. Af ændringer kan nævnes:
- FreeBSD Core Team udvikler retningslinjer for brugen af AI og store sprogmodeller i udviklingen. Mulige anvendelsesområder for AI i FreeBSD inkluderer oversættelse af dokumentation, resumé af lange/ubekendte dokumenter, fejlsporing og kodeanalyse. Generering af kode med AI er derimod ikke planlagt, primært på grund af potentielle licensproblemer.
- Installeret er blevet opdateret med støtte til pkgbase-systemet, der muliggør installation af grundsystemkomponenter i et format, der kan administreres og opdateres via pakkeadministratoren pkg. Pkgbase-pakker kan både leveres på installationsmediet til offline-installation og downloades fra repository pkg.freebsd.org.
- Udviklingen af bsd-user-4-linux projektet fortsætter, hvilket muliggør kørsel af applikationer, der er bygget til FreeBSD, på Linux-systemer. Målet med projektet er at muliggøre bygging af pakker til FreeBSD i Linux ved at bruge det oprindelige byggesystem fra FreeBSD. For at køre FreeBSD-eksekveringsfiler i Linux anvendes en fork af QEMU-emulatoren, der fungerer i User Mode Emulation-tilstand, designet til at køre processer kompilere til andre CPU'er og operativsystemer (QEMU udfører oversættelse af systemopkald og håndtering af signaler). På nuværende udviklingsstadie er det allerede muligt at rebuild FreeBSD med kommandoen "make -j80 buildworld", mens du er i Linux. Kørsel af grundlæggende systemværktøjer som sh, bash, find, grep, git og clang fungerer. Blandt de seneste ændringer bemærkes overgangen til QEMU 9.2 kodebase og implementeringen af understøttelse for kqueue() mekanismen i Linux ved hjælp af libkqueue.
- For FreeBSD udvikles virtualiseringsplatformen Sylve, der muliggør administration af opstart via webgrænseflade. virtual machines baseret på hypervisoren Bhyve og containere baseret på Jail-miljøer. Projektet sigter mod at tilbyde funktionalitet svarende til Linux-distributionen Proxmox VE, men baseret på FreeBSD, Bhyve og ZFS. Ændringerne i andet kvartal inkluderer tilføjelsen af grafer til visualisering af CPU-belastning, hukommelsesforbrug og netværksaktivitet, et interface til arbejde med netværksinterfacer, funktioner til håndtering af filsystemer, partitioner, puljer og ZFS-snapshots, støtte til indlæsning af virtuelle maskinebilleder gennem webinterfacet, samt muligheder for oprettelse og sletning af virtuelle maskiner for Bhyve med support for VNC-konsol, PCI-enhedsdirektivering og binding til valgte CPU-kerner.
- Forbedret libvirt-port til hypervisoren bhyve. Præsenteret et testprojekt for bhyve-driveren fra libvirt i et kontinuerligt integrationssystem med FreeBSD. Øget kompatibilitet for bhyve-driveren. Tilføjet støtte til virtio-rnd-enheder, NVRAM-konfiguration og udvidet statistikker. Implementeret støtte til netværksadgang via NAT baseret på pakke-filteret pf.
- Forbedret behandling af tlsbase på amd64-systemer, hvilket har haft en positiv indvirkning på driften af applikationer, der manuelt håndterer TLS (Thread-Local Storage), såsom Wine.
- I runtime-linkeren rtld er der implementeret en mulighed "-z initfirst", der giver ekstra muligheder for styring af initialiseringsrækkefølgen i dynamisk linkede applikationer.
- Tilføjet støtte til introspektion af kqueue og udvidet mulighederne for at analysere brugen af eventbehandlingsmekanismerne i kernen i processer. I procstat-værktøjet er der implementeret en rapportvisning af kqueue-status.
- I koden for FreeBSD 15 er flaget EXTERROR blevet implementeret, hvilket informerer om tilstedeværelsen af udvidet fejlinformation. Ved hjælp af EXTERROR kan applikationer få yderligere diagnostiske oplysninger i tilfælde af fejl, som ikke kun begrænser sig til fejlenummeret.
- I kodebasen for FreeBSD 15 er oprettelse af installationsbilleder og bygning af binære pakker for 32-bit arkitekturer i386 og powerpc stoppet. Af de 32-bit platforme er kun armv7-platformen blevet efterladt i FreeBSD 15-grenen. COMPAT_FREEBSD32-tilstanden, der tillader kørsel af 32-bit eksekverbare filer i 64-bit miljøer, er blevet bevaret, men i portene vil 32-bit bygning ikke længere blive understøttet.
- I FreeBSD 15 tilnærmes adfærden af systemopkaldene setgroups, getgroups og initgroups i håndteringen af brugergrupper de andre platforme (forskellen i implementeringen i FreeBSD lå i opbevaringen af den effektive gruppeidentifikator for processerne i nul-elementet i arrayet med gruppeoplysninger).
- Der arbejdes på at erstatte Kerberos-implementeringen i hovedversionen af FreeBSD fra Heimdal Kerberos til MIT Kerberos. MIT Kerberos er allerede inkluderet i FreeBSD 15-CURRENT, men aktiveres indtil videre kun via indstillingen WITH_MITKRB5.
- De første versioner af applikationen SysctlTUI er udgivet, hvilket giver et tekstbaseret interface til navigation i træstrukturen af sysctl-parametre, visning af relaterede metadata og ændring af indstillinger.

- Der udvikles en ny partition manager, Geomman (GEOM Manager), baseret på sade og som tilbyder yderligere funktionaliteter som flytning, kopiering og indsættelse af diskpartitioner. Udover UFS understøtter Geomman også ext2, ext3, ext4, exFAT og NTFS, og der er planlagt understøttelse af ZFS. Blandt andet kan størrelsen på eksisterende partitioner med filsystemet ext4 øges og formindskes, og nye exFAT-partitioner kan oprettes.
- Arbejdet med at forbedre FreeBSDs lydstack fortsætter. Lyddriveren er blevet oprenset, værktøjet sndctl er blevet tilføjet, understøttelse af AFMT_FLOAT er blevet implementeret, og arbejdet med lydudstyr på bærbare computere er blevet betydeligt forbedret. Refaktoreringen af MIDI-underdelen er påbegyndt.
- Porteringen af DRM-drivere (i915 og amdgpu) fra Linux-kernen 6.9 er gennemført. Ændringerne udvikles til FreeBSD 15-CURRENT, men vil sandsynligvis blive tilbageført til 14-STABLE-versionen.
- Der arbejdes på at tilføje lavenergimodes S0ix og s2idle (Suspend-To-Idle), som vil reducere energiforbruget ved brug af FreeBSD på moderne bærbare computere med Intel og AMD-processorer, hvoraf nogle ikke understøtter søvnmodus S3. USB4-driveren har fået muligheden for at skifte til lavere energiforbrug C3.
- For the FreeBSD 15 branch, support for named file attributes (extended attributes in Solaris style) is being developed, which is planned to be supported as an alternative mechanism for managing extended attributes available for ZFS and NFSv4. The differences from traditional methods used in FreeBSD and Linux for working with extended attributes are limited to the presentation of attributes in a service directory, which is not visible in the main FS namespace and is associated with the file. Working with the attributes is done as with ordinary files; for example, to determine the list of attributes, the readdir() function can be executed.
- Patches have been prepared implementing the 'packrat' mount option, allowing for aggressive data caching in a local non-volatile storage on the client side for NFSv4.1/4.2.
- Based on LinuxKPI, a layer for running Linux drivers in FreeBSD, an updated net80211 stack is being developed with support for Wi-Fi 5 (802.11ac) and Wi-Fi 6 (802.11ax) standards. The iwlwififw firmware for the Intel iwlwifi driver has been removed from the base system in favor of installation from ports and using the fwget utility. Support for wlan_tkip has been implemented in linuxkpi, allowing the use of cryptographic protocols TKIP (Temporal Key Integrity Protocol) and Michael (Message Integrity Code).
- Support for the debugging interface provided in XHCI USB controllers has been implemented, allowing the use of a special USB 3 cable for managing the debugging of the FreeBSD kernel. Such an interface can be used to debug issues in graphics drivers that lead to output failures.
- Work is ongoing to port the original implementations of HFS and HFS+ file systems to the FreeBSD kernel, the driver for which has been released by Apple.
- A FreeBSD port has been prepared for the Pinephone Pro smartphone, including firmware with support for touchscreen control and a simple desktop environment. Unfortunately, a few days ago, the Pine64 project announced the discontinuation of production and sales of the PinePhone Pro smartphones.
- The number of ports has increased from 36332 to 36605. Among the updates in the ports: 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. By default, versions Go 1.24, Perl 5.40, Ruby 3.3, and PostgreSQL 17 are used. The environment for Linuxulator has been updated to Rocky Linux 9.
- Tilføjet valgfri støtte til portbygning med kompilatorflagg, der inkluderer ekstra sikkerhedsforstærkningsmuligheder. Indstillinger er implementeret i make.conf:
- WITH_FORTIFY til beskyttelse mod buffer overflow ved at tilføje ekstra kontroller til funktioner som memcpy, strcpy og sprintf;
- WITH_STACK_AUTOINIT til automatisk initialisering af lokale variable;
- WITH_ZEROREGS til beskyttelse mod ROP-angreb (Return-Oriented Programming) og information lækage gennem CPU-registre.
Kilde: opennet.ru

