Después de seis meses de desarrollo, se ha lanzado FreeBSD 15.1. Se han preparado versiones de instalación para las arquitecturas amd64, aarch64, armv7, powerpc64, powerpc64le y riscv64. También se incluyen versiones para sistemas de virtualización (QCOW2, VHD, VMDK, raw) y entornos de nube como Amazon EC2, Google Compute Engine y Vagrant. FreeBSD 15.1 será soportado hasta abril de 2027, y las actualizaciones para la rama 15.x se lanzarán hasta el 31 de diciembre de 2029.
Principales cambios:
- Los controladores de dispositivos inalámbricos rtw88 (Realtek 802.11n/ac), rtw89 (Realtek 802.11ax) e iwlwifi (Intel 02.11a/b/g/n/ac/ax/be) están actualizados con el núcleo de Linux 7.0.
- Se ha implementado un marco en el núcleo para seleccionar el planificador de tareas. En la configuración del núcleo en sistemas amd64, además del planificador predeterminado SCHED_ULE, se ha activado la versión del planificador clásico SCHED_4BSD. Se ha añadido el parámetro sysctl kern.sched para elegir el planificador de tareas durante el arranque.
- Se ha trabajado para asegurar la compatibilidad con el estándar C23 en la base de código para compiladores en modo C23. Se espera que el soporte completo de C23 esté disponible en la rama FreeBSD 16. El nuevo estándar introduce constantes nullptr, el tipo _BitInt(n) y las palabras clave bool, true y false, que podrían entrar en conflicto con identificadores del antiguo código. El soporte para C23 permitirá utilizar nuevas características del lenguaje en el código de FreeBSD, como el archivo de encabezado stdbit.h, la función memalignment(), y los archivos limits.h y stdint.h actualizados con el macro _WIDTH y el tipo char8_t.
- En el filtro de paquetes ipfw se ha implementado la capacidad de establecer máscaras arbitrarias en tablas (lookup table), permitiendo ignorar combinaciones de bits en las claves y elementos de la tabla; por ejemplo, se puede utilizar máscaras no secuenciales. direcciones IP, como «lookup src-ip4:255.255.253.255». Se ha eliminado el código para la compatibilidad con versiones del filtro de paquetes ipfw que se entregaron antes del lanzamiento de FreeBSD 8.
- Se ha permitido el direccionamiento de paquetes IPv6 a los sockets divert, que anteriormente solo permitían trabajar con IPv4. Se ha añadido la opción 'stableaddr' al comando ifconfig para generar direcciones IPv6 estables, que no cambian para cada subred (Stateless Address Autoconfiguration, RFC 7217).
- El shell predeterminado para los usuarios «root» y «freebsd» se ha cambiado de csh a sh.
- Se ha añadido la utilidad setaudit para gestionar las políticas de auditoría del sistema.
- Se han añadido las opciones «-xattr» y «-xattrname» a la utilidad find para buscar archivos considerando los atributos extendidos de los archivos.
- Se añadió la opción «-u» a la utilidad newfs para desactivar el mecanismo de actualizaciones suaves y el registro para UFS2.
- Se eliminó por defecto la utilidad ipfs, que se utilizaba para guardar y restaurar tablas de traducción de direcciones, y se desactivó en el núcleo la funcionalidad necesaria para su funcionamiento (se puede restaurar en la configuración de compilación).
- En el script bsdinstall, la instalación de pkgbase con los componentes especificados en la variable COMPONENTS está habilitada por defecto. El antiguo método de instalación basado en distset sigue estando disponible si se define la variable DISTRIBUTIONS.
- Se añadieron las funciones tdestroy,
strdupa,
strndupa,
posix_spawnattr_getexecfd_np,
posix_spawnattr_setexecfd_np,
pthread_tryjoin_np.
En las funciones memcpy, memmove y memset en sistemas AArch64, se aplican optimizaciones basadas en las instrucciones MOPS (Memory Operations). - Se añadió la biblioteca libuvmem con la implementación del mecanismo de asignación de memoria vmem, que funciona en el espacio de usuario y presenta una API compatible con vmem para aplicaciones.
- En las imágenes para máquinas virtuales y sistemas en la nube se incluyó el gestor de paquetes pkg y se implementó el soporte para la actualización atómica del paquete con el sistema base durante el primer arranque.
- En la configuración del núcleo MINIMAL se incluyó el controlador virtio_scsi, que permite cargar el sistema en máquinas virtuales basado en qemu/kvm.
- Se implementaron las llamadas al sistema pdwait y pdfork para un nuevo mecanismo de creación y finalización de procesos que utiliza descriptores de procesos.
- En la capa de compatibilidad con Linux se añadió fcntl F_DUPFD_QUERY, que utiliza kcmp KCMP_FILE para verificar descriptores de archivo en contenedores Linux.
- Se incluyó la compilación del controlador iwx para adaptadores inalámbricos Intel AX210/AX211/AX411 con soporte para Wi-Fi 6E y Wi-Fi 7.
- Se actualizaron los controladores. Se añadió soporte para adaptadores de red Intel E835-XXV-4 e Intel E835 Ethernet, controladores RAID utilizados en como en entornos de nube públicos o privados. Fujitsu PRIMERGY, así como para unidades NVMe utilizadas en Google Compute Engine C4. Se mejoró el soporte para placas Raspberry Pi. Se añadió soporte para contadores de seguimiento de rendimiento (hwpmc) proporcionados en procesadores Intel Alder Lake, Alder Lake-N y Emerald Rapids.
- El controlador hid se configuró para proporcionar acceso a los usuarios del grupo game, lo que permite el acceso a controladores de juegos sin elevar privilegios, utilizando bibliotecas como libsdl.
- En la utilidad mt se garantizó la compatibilidad con unidades de cinta que soportan los estándares LTO-10 y LTO-10P (Linear Tape-Open Generation 10).
- El comando «zpool prefetch» ha añadido soporte para metadatos BRT (Block Reference Table), que mejoran el rendimiento de la clonación y la liberación de bloques.
- El cliente NFS ahora soporta la exportación a través de NFS de sistemas de archivos que no distinguen entre mayúsculas y minúsculas en los nombres de archivos y directorios.
Con el arranque sin disco a través de NFSv4 se implementó el soporte para el montaje de la partición NFS como sistema de archivos raíz y el mapeo de nombres o identificadores de usuarios a través de nfsuserd. Se añade soporte inicial para la extensión a NFSv4.2 con POSIX ACL. servidor Además, el cliente NFSv4 ha agregado soporte para el atributo de archivo (UF_ARCHIVE), utilizado en el cliente NFS de Windows. - La interfaz splash ahora permite configurar una animación de presentación en formato PNG, que se muestra al apagar el sistema.
- Se añadió el sysctl net.inet.ipf.jail_allowed, que permite vincular un conjunto de configuraciones y reglas de filtrado de paquetes ipfilter al entorno Jail.
- Se añadió el sysctl allow.vmm_ppt para el paso de acceso a dispositivos PCI en entornos aislados basados en el hipervisor bhyve.
- En el controlador GPU basado en virtio se implementó soporte para entornos virtuales basados en Parallels Desktop.
- Se añadió soporte para registros FGT (Fine-Grained Trap), el mecanismo Extended Destination ID y las instrucciones MOPS (Memory Operations), que amplían las capacidades de virtualización y mejoran el rendimiento en sistemas ARM64. Se añadió soporte para la extensión ARM64 LASS (Linear Address Space Separation) para fortalecer la separación entre el núcleo y el espacio de usuario.
- En la implementación del framebuffer del hipervisor bhyve, se añadió soporte para sockets UNIX, que permiten redirigir la consola gráfica a Jail no a través de la red.
- Se actualizaron las versiones de 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 fuente de consola spleen se ha actualizado a la versión 2.2.0 y se ha ampliado con caracteres adicionales (guion largo, guion corto, guion, corchetes angulares, cuadrado blanco, cruz y doble cruz). Se ha mejorado la alineación de caracteres en pantallas de alta densidad de píxeles. Las tablas de símbolos Unicode se han actualizado a la versión 17.0.0, que incluye 4803 caracteres.
- El subsistema blacklist ha sido renombrado a blocklist con el proceso de fondo blocklistd. Las configuraciones antiguas en scripts rc y reglas de filtrado de paquetes continúan vigentes, pero generan un aviso.
- El conjunto de herramientas OpenPAM se ha trasladado al nuevo paquete FreeBSD-pam, mientras que la biblioteca Zstandard y la utilidad zstd se han movido al paquete FreeBSD-zstd.
- En los sistemas instalados a través de paquetes freebsd-base, se ha bloqueado la llamada a los scripts de instalación installworld e installkernel para evitar desincronizaciones entre el estado del sistema y los paquetes.
- Se ha dejado de generar compilaciones en formato OCI (Oracle Cloud Infrastructure).
- Se han declarado obsoletas y se eliminarán en la rama FreeBSD 16 las utilidades fdisk, bsdlabel, lpr, lpd, lpc, lpq, lprm, lp, pac, lptest y chkprintcap. Se recomienda usar gpart o bsdinstall para trabajar con particiones de disco en lugar de fdisk y bsdlabel, y para la impresión se debe utilizar el puerto print/cups o sysutils/LPRng. En FreeBSD 16 también se planea eliminar los sysctls hw.ata.rotating y hw.ata.unmapped_io, y los controladores hifn (aceleradores criptográficos Hifn 7751/7951/7811/7955/7956), safe (aceleradores criptográficos SafeNet SafeXcel 1141/1741), le (AMD Am7900 LANCE y Am79C9xx ILACC/PCnet Ethernet), fdc (controlador de disquetes) y agp (Puerto Gráfico Acelerado).
Fuente: opennet.ru
