Après six mois de développement, la version FreeBSD 15.1 a été publiée. Des images d'installation ont été préparées pour les architectures amd64, aarch64, armv7, powerpc64, powerpc64le et riscv64. Des images pour les systèmes de virtualisation (QCOW2, VHD, VMDK, raw) et les environnements cloud Amazon EC2, Google Compute Engine et Vagrant sont également disponibles. La version FreeBSD 15.1 sera supportée jusqu'en avril 2027, et des mises à jour pour la branche 15.x seront fournies jusqu'au 31 décembre 2029.
Principales modifications :
- Les pilotes des dispositifs sans fil rtw88 (Realtek 802.11n/ac), rtw89 (Realtek 802.11ax) et iwlwifi (Intel 02.11a/b/g/n/ac/ax/be) ont été synchronisés avec le noyau Linux 7.0.
- Un cadre pour le choix du planificateur de tâches a été implémenté dans le noyau. Dans la configuration du noyau sur les systèmes amd64, en plus du planificateur par défaut SCHED_ULE, la construction de l'ancien planificateur de tâches SCHED_4BSD a été activée. Un paramètre sysctl, kern.sched, a été ajouté pour sélectionner le planificateur de tâches au démarrage.
- Des efforts ont été déployés pour assurer la prise en charge de la norme C23 dans la base de code pour les compilateurs en mode C23. Une prise en charge complète du C23 est attendue dans la branche FreeBSD 16. La nouvelle norme a introduit les constantes nullptr, le type _BitInt(n) et les mots-clés bool, true et false, qui pouvaient entrer en conflit avec les identifiants de même nom définis dans l'ancien code. La prise en charge du C23 permettra d'utiliser dans le code FreeBSD de nouvelles fonctionnalités du langage, telles que le fichier d'en-tête stdbit.h, la fonction memalignment(), et les limites mises à jour dans limits.h et stdint.h avec la macro _WIDTH et le type char8_t.
- Le filtre de paquets ipfw a mis en œuvre la possibilité de définir des masques arbitraires dans les tables (lookup table), permettant d'ignorer toutes les combinaisons de bits dans les clés et les éléments de la table, par exemple, il est possible d'utiliser des masques non consécutifs. adresses IP, tels que « lookup src-ip4:255.255.253.255. Le code pour la compatibilité avec les versions du filtre de paquets ipfw fournies avant la sortie de FreeBSD 8 a été supprimé.
- La direction des paquets IPv6 vers les sockets divert a été autorisée, dans lesquels auparavant seuls les IPv4 étaient autorisés. La commande ifconfig a ajouté le drapeau 'stableaddr' pour générer des adresses IPv6 stables, immuables pour chaque sous-réseau (Stateless Address Autoconfiguration, RFC 7217).
- Le shell par défaut pour les utilisateurs « root » et « freebsd » a été remplacé de csh à sh.
- L'outil setaudit a été ajouté pour gérer les politiques d'audit système.
- L'outil find a ajouté les options « -xattr » et « -xattrname » pour rechercher des fichiers en tenant compte des attributs étendus des fichiers.
- L'outil newfs a ajouté l'option « -u » pour désactiver le mécanisme de mises à jour douces et le journalisation pour UFS2.
- L'outil ipfs, utilisé pour sauvegarder et restaurer les tables de translation d'adresses, a été supprimé par défaut, ainsi que la fonctionnalité nécessaire à son fonctionnement dans le noyau (peut être réactivée dans les paramètres de construction).
- Dans le script bsdinstall, l'installation de pkgbase avec les composants spécifiés dans la variable COMPONENTS est maintenant activée par défaut. Ancienne méthode d'installation basée sur distset reste disponible si la variable DISTRIBUTIONS est définie.
- Des fonctions tdestroy ont été ajoutées aux bibliothèques standard,
strdupa,
strndupa,
posix_spawnattr_getexecfd_np,
posix_spawnattr_setexecfd_np,
pthread_tryjoin_np.
Dans les fonctions memcpy, memmove et memset sur les systèmes AArch64, des optimisations basées sur les instructions MOPS (Memory Operations) ont été mises en œuvre. - La bibliothèque libuvmem a été ajoutée, fournissant une implémentation du mécanisme de répartition de mémoire vmem, fonctionnant dans l'espace utilisateur et offrant une API compatible avec vmem pour les applications.
- Dans les images pour machines virtuelles et les systèmes cloud, un gestionnaire de paquets pkg a été inclus et la prise en charge de la mise à jour atomique du paquet avec le système de base lors du premier démarrage a été mise en œuvre.
- Le driver virtio_scsi a été inclus dans la configuration du noyau MINIMAL, permettant de charger le système dans des machines virtuelles basé sur qemu/kvm.
- Les appels système pdwait et pdfork ont été mis en œuvre pour un nouveau mécanisme de création et de terminaison de processus utilisant des descripteurs de processus.
- Dans la couche de compatibilité avec Linux, fcntl F_DUPFD_QUERY a été ajouté, utilisant kcmp KCMP_FILE pour vérifier le descripteur de fichier dans les conteneurs Linux.
- La construction du driver iwx pour les adaptateurs sans fil Intel AX210/AX211/AX411 avec support pour Wi-Fi 6E et Wi-Fi 7 est activée.
- Les drivers ont été mis à jour. Le support des adaptateurs réseau Intel E835-XXV-4 et Intel E835 Ethernet, des contrôleurs RAID utilisés dans serveurs Fujitsu PRIMERGY, ainsi que des disques NVMe utilisés dans Google Compute Engine C4. Le support des cartes Raspberry Pi a été amélioré. Le support des compteurs de suivi des performances (hwpmc), fournis dans le CPU Intel Alder Lake, Alder Lake-N et Emerald Rapids, a été ajouté.
- Le driver hid a été configuré pour fournir l'accès aux utilisateurs du groupe game, permettant d'accéder aux contrôleurs de jeu sans élévation de privilèges en utilisant des bibliothèques telles que libsdl.
- L'outil mt garantit la compatibilité avec les lecteurs de bande prenant en charge les normes LTO-10 et LTO-10P (Linear Tape-Open Generation 10).
- La commande «zpool prefetch» a ajouté la prise en charge des métadonnées BRT (Block Reference Table), améliorant les performances de clonage et de libération des blocs.
- Le client NFS a ajouté la prise en charge de l'exportation via NFS de systèmes de fichiers qui ne tiennent pas compte de la casse dans les noms de fichiers et de répertoires.
Lors du démarrage sans disque via NFSv4, la prise en charge du montage de la partition NFS en tant que système de fichiers racine et de la mappage des noms ou identifiants d'utilisateurs via nfsuserd a été mise en œuvre. Un support initial pour l'extension NFSv4.2 avec POSIX ACL a été ajouté. serveur Le client NFSv4 a ajouté la prise en charge de l'attribut d'archivage (UF_ARCHIVE), utilisé dans le client NFS de Windows. - L'interface splash a ajouté la possibilité de définir un écran de veille au format PNG, affiché lors de l'arrêt du système.
- Ajouté le sysctl net.inet.ipf.jail_allowed, permettant de lier un ensemble personnalisé de paramètres et de règles de filtrage de paquets ipfilter à l'environnement Jail.
- Ajouté le sysctl allow.vmm_ppt pour le passage d'accès aux dispositifs PCI dans des environnements isolés basés sur l'hyperviseur bhyve.
- Le pilote GPU basé sur virtio a mis en œuvre la prise en charge des environnements virtuels basés sur Parallels Desktop.
- Ajouté la prise en charge des registres FGT (Fine-Grained Trap), d'un mécanisme d'Identifiant de Destination Étendu et des instructions MOPS (Memory Operations), élargissant les capacités de virtualisation et améliorant les performances sur les systèmes ARM64. Ajouté la prise en charge de l'extension ARM64 LASS (Linear Address Space Separation) pour renforcer l'isolation entre le noyau et l'espace utilisateur.
- Dans l'implémentation du framebuffer de l'hyperviseur bhyve, la prise en charge des sockets UNIX a été ajoutée, permettant de transférer la console graphique vers les Jails sans passer par le réseau.
- Versions mises à jour : OpenZFS 2.4.2, OpenSSL 3.5.6, NSS 3.123.1, xz 5.8.3, tcpdump 4.99.6, zlib 1.3.2, zstd 1.5.7, blocklistd 2026-02-07, ncurses 6.6, bsddialog 1.0.5, bmake 20251111, SQLite 3.50.4, unbound 1.25.1, MIT Kerberos 1.22.2, Heimdal Kerberos 1.22.2.
- La police de caractères console spleen a été mise à jour vers la version 2.2.0 et élargie avec des symboles supplémentaires (tiret long, tiret court, trait d'union, crochets angulaires, carré blanc, croix et double croix). L'alignement des caractères sur des écrans à haute densité de pixels a été amélioré. Les tables de caractères Unicode ont été mises à jour vers la version 17.0.0, ajoutant 4803 caractères.
- Le sous-système blacklist a été renommé en blocklist avec le processus en arrière-plan blocklistd. Les anciens paramètres dans les scripts rc et les règles de filtrage de paquets continuent d'agir, mais entraînent un affichage d'avertissement.
- L'outil OpenPAM a été déplacé vers un nouveau paquet FreeBSD-pam, et la bibliothèque Zstandard ainsi que l'utilitaire zstd dans le paquet FreeBSD-zstd.
- Sur les systèmes installés via les paquets freebsd-base, l'appel des scripts d'installation installworld et installkernel est bloqué pour éviter tout désaccord entre l'état du système et les paquets.
- La génération de builds au format OCI (Oracle Cloud Infrastructure) a été arrêtée.
- Les utilitaires fdisk, bsdlabel, lpr, lpd, lpc, lpq, lprm, lp, pac, lptest et chkprintcap ont été déclarés obsolètes et seront supprimés dans la branche FreeBSD 16. Pour gérer les partitions disque, il est recommandé d'utiliser gpart ou bsdinstall à la place de fdisk et bsdlabel, et pour organiser l'impression, de faire appel au port print/cups ou sysutils/LPRng. Dans FreeBSD 16, il est également prévu de supprimer les sysctls hw.ata.rotating et hw.ata.unmapped_io, ainsi que les pilotes hifn (accélérateurs cryptographiques Hifn 7751/7951/7811/7955/7956), safe (accélérateurs cryptographiques SafeNet SafeXcel 1141/1741), le (AMD Am7900 LANCE et Am79C9xx ILACC/PCnet Ethernet), fdc (contrôleur de disque souple) et agp (Accelerated Graphics Port).
Source : opennet.ru
