Lanzamiento de FreeBSD 13.0

Después de dos años y medio desde la formación de la rama 12.x, se presenta el lanzamiento de FreeBSD 13.0, que está preparado para las arquitecturas amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv6, armv7, aarch64 y riscv64. Además, se han generado imágenes para sistemas de virtualización (QCOW2, VHD, VMDK, raw) y entornos en la nube como Amazon EC2, Google Compute Engine y Vagrant.

Novedades principales:

  • Se ha realizado la transición a la implementación unificada de ZFS en Linux del proyecto OpenZFS. Entre las capacidades que se han vuelto disponibles en FreeBSD después de la transición a OpenZFS están: un sistema de cuotas mejorado, cifrado de conjuntos de datos, selección diferenciada de clases de asignación (allocation classes), uso de instrucciones de procesadores vectoriales para acelerar la implementación de RAIDZ y el cálculo de sumas de verificación, soporte para el algoritmo de compresión ZSTD, modo multihost (MMP, Protección Multimodificador), una mejor herramienta de línea de comandos, y la corrección de muchos errores relacionados con condiciones de carrera y bloqueos.
  • El puerto para la arquitectura ARM64 (AArch64) ha sido colocado en el primer nivel de soporte (Tier 1), el cual está bajo el mantenimiento de equipos responsables de la corrección de vulnerabilidades, la preparación de lanzamientos y el mantenimiento de puertos. El primer nivel de soporte implica la formación de conjuntos de instalación, actualizaciones binarias y paquetes listos, así como la garantía de resolver problemas específicos y mantener la inmutabilidad del ABI para el entorno de usuario y el núcleo (con excepción de ciertos subsistemas).
  • La arquitectura i386 ha sido trasladada al segundo nivel de soporte de plataformas (Tier 2), donde se continuará la formación de conjuntos de instalación, actualizaciones binarias y paquetes listos, pero no se garantiza la resolución de problemas específicos. El tipo de CPU (CPUTYPE) para la arquitectura i386 ha cambiado por defecto de 486 a 686 (si lo desea, se pueden generar compilaciones para i486 e i586 de forma independiente).
  • Los componentes clang, lld, lldb, compiler-rt, llvm, libunwind y libc++ se han actualizado a la versión 11.
  • El desarrollo se ha trasladado de un sistema centralizado de control de versiones Subversion a un sistema descentralizado Git.
  • Se ha limpiado el sistema base de aplicaciones distribuidas bajo la licencia GPL. Se han eliminado binutils 2.17 y gcc 4.2.1 del árbol de código fuente, y todas las arquitecturas soportadas han sido migradas a las herramientas LLVM/clang. Se han incluido versiones de utilidades grep y dtc (Device Tree Compiler) distribuidas bajo la licencia BSD, que han reemplazado las versiones bajo licencia GPL. Se ha eliminado el proceso de montaje automático amd, cuya funcionalidad ahora se realiza a través de autofs. La utilidad ctm ha sido eliminada, y se recomienda usar el puerto misc/ctm.
  • Se ha reescrito la pila de enrutamiento, que ahora incluye soporte para objetos nexthop, que almacenan el estado utilizado para enviar paquetes al destino deseado. Se ha añadido la capacidad de integrar algoritmos de búsqueda de rutas personalizados. Se han incorporado algoritmos de búsqueda de rutas de DPDK (Data Plane Development Kit) librte, que optimizan el manejo de tablas de enrutamiento muy grandes. Para solicitudes proxyarp, se utiliza la interfaz fib. Se ha añadido la capacidad de modificar el número de fib sobre la marcha a través de sysctl net.fibs. Se ha implementado soporte para rutas temporales para IPv4 e IPv6 (con un tiempo de vida establecido).
  • Se ha reescrito y escalado mejor el soporte para el enrutamiento multipath, donde el tiempo de búsqueda no depende del tamaño de la lista (O(1)). La nueva implementación de multipath está vinculada al parámetro del núcleo ROUTE_MPATH, que ha reemplazado a RADIX_MPATH y está habilitado por defecto. Se ha propuesto el sysctl net.route.multipath para administrar multipath.
  • Se ha rediseñado el marco criptográfico implementado a nivel de núcleo, que ahora incluye soporte para algoritmos criptográficos modernos y simplifica la interfaz para el uso de cifrado en controladores y otros componentes del núcleo. Se han eliminado los algoritmos obsoletos ARC4, Blowfish, CAST128, DES, MD5-HMAC y Skipjack. En IPsec y Kerberos, se ha dejado de lado el soporte para algoritmos declarados obsoletos en RFC 8221 y RFC 6649/8429, incluyendo 3DES. Se han eliminado los algoritmos anteriormente declarados obsoletos en el subsistema de cifrado de disco geli y cryptodev.
  • El núcleo GENERIC ha incorporado soporte para los controladores aesni y armv8crypto para acelerar el cifrado de disco basado en geli utilizando instrucciones AES-NI para arquitecturas amd64/i386 y AES-XTS para ARM64.
  • Se ha añadido el controlador qat para aceleradores de criptografía Intel QuickAssist (QAT) y el controlador ossl con la implementación de procedimientos de cifrado por software acelerados de OpenSSL, optimizados con código en ensamblador. El controlador armv8crypto ha agregado soporte para AES-XTS y AES-GCM utilizando las instrucciones correspondientes de los procesadores ARMv8.
  • Se ha añadido la implementación de TLS (kTLS), que funciona a nivel del núcleo de FreeBSD, permitiendo un aumento significativo en el rendimiento de cifrado para los sockets TCP. Se admiten versiones de TLS desde 1.0 hasta 1.3. Para el cifrado se utilizan controladores de criptografía del núcleo que soportan AES-CBC o AES-GCM. Para utilizar kTLS en el espacio de usuario, es necesario recompilar OpenSSL con la opción WITH_OPENSSL_KTLS.
  • Se ha añadido un nuevo tipo de búfer de red mbuf (búfer de datos de red), que puede representar en un solo búfer varias páginas físicas de memoria no reflejadas, lo que permite aumentar el rendimiento de la llamada sendfile(2) al reducir el tamaño de las listas mbuf en los búferes de socket.
  • Se ha integrado en la pila TCP el soporte para el algoritmo de reducción proporcional de la tasa de envío de paquetes (Proportional Rate Reduction, RFC 6937), lo que permite recuperar más rápidamente los parámetros óptimos del flujo tras problemas temporales con la transmisión de datos. Para desactivar PRR, se ha previsto el sysctl net.inet.tcp.do_prr.
  • Se han ampliado las capacidades del hipervisor Bhyve: se ha añadido soporte para el acceso compartido a archivos mediante VirtIO-9p (VirtFS). Se ha implementado la posibilidad de trabajar con instantáneas. máquinas virtualesSe ha añadido soporte para dispositivos PCI HDAudio y puertos serie adicionales COM3 y COM4. Se han eliminado los modelos obsoletos de dispositivos bvmconsole y bvmdebug. Se ha mejorado la estabilidad de la conexión con los clientes VNC, incluyendo la aplicación 'Screen Sharing' de macOS.
  • Se ha añadido soporte para la especificación VirtIO V1 en los controladores VirtIO, lo que ha mejorado la compatibilidad de los sistemas invitados con FreeBSD con diversos emuladores y hipervisores.
  • Para los procesos adjuntos a entornos jail se ha asegurado la conversión de las vinculaciones a la CPU (la cpuset inicialmente vinculada al proceso será reemplazada teniendo en cuenta la cpuset del jail y las restricciones establecidas).
  • Se ha agregado la posibilidad de compilar el sistema base FreeBSD en entornos basados en otros sistemas operativos. La necesidad de compilar en otros sistemas operativos se debe al deseo de utilizar herramientas de integración continua para probar FreeBSD, que están diseñadas para Linux o macOS.
  • Se ha propuesto un nuevo stack MMC/SD basado en el framework CAM que permite conectar dispositivos con interfaz SDIO (Secure Digital I/O). Por ejemplo, SDIO se utiliza en módulos WiFi y Bluetooth para muchas placas, como Raspberry Pi 3. El nuevo stack también permite usar la interfaz CAM para enviar comandos SD desde aplicaciones en espacio de usuario, lo que brinda la posibilidad de crear controladores de dispositivos que operen a nivel de usuario.
  • Se ha mejorado el funcionamiento de la capa de compatibilidad con Linux. Los archivos DTS (Device Tree Sources) se han sincronizado con el núcleo de Linux 5.8.
  • Se ha agregado soporte para NFSv4.2 (RFC-7862) y se ha implementado la posibilidad de operar NFS sobre un canal de comunicación cifrado basado en TLS 1.3, en lugar de utilizar Kerberos (modo sec=krb5p), que se limitaba al cifrado solo de los mensajes RPC y se había implementado solo de manera programática.
  • Se ha eliminado la versión obsoleta del depurador GDB, que anteriormente estaba instalada en el directorio /usr/libexec y se utilizaba en la utilidad crashinfo. En lugar de GDB preinstalado, ahora se sugiere instalar una versión actualizada de GDB desde puertos o paquetes para obtener información detallada sobre las causas del fallo. Se ha suspendido el soporte para la depuración de procesos a través de procfs. Se ha añadido un controlador netgdb que permite acceder al depurador del núcleo a través de la red.
  • Se ha eliminado de libc la función insegura gets (a partir de la norma C11, esta función se ha excluido de la especificación) y se han realizado ajustes en los puertos que todavía utilizan esta función. Se han eliminado las funciones cap_random (se debe usar getrandom).
  • Se ha añadido una nueva llamada al sistema copy_file_range, compatible con la implementación del núcleo de Linux y que permite acelerar la copia de datos de un archivo a otro, gracias a la ejecución de la operación solo en el lado del núcleo sin necesidad de leer previamente los datos en la memoria del proceso. La llamada al sistema también se utiliza en servidor NFSv4.2 para la ejecución local de operaciones de copia en el servidor (sin transmitir al cliente).
  • En el mecanismo de E/S asíncrona POSIX AIO se presenta soporte para funciones vectorizadas. En particular, se han añadido llamadas al sistema aio_writev y aio_readv, que permiten implementar equivalentes vectorizados de las funciones aio_read y aio_write.
  • Se ha suspendido el soporte de los componentes del espacio de usuario para el formato de archivo ejecutable a.out en sistemas con arquitectura i386. Se ha eliminado la utilidad elf2aout.
  • Las utilidades ping y ping6 se han fusionado. Se ha añadido a ping la opción de establecer parámetros de calidad de servicio (QoS) a través de IP DSCP y Ethernet PCP.
  • En la utilidad freebsd-update se ha implementado la visualización del progreso de descarga de archivos y se han añadido los comandos updatesready y showconfig para comprobar la disponibilidad de actualizaciones y mostrar la configuración.
  • Se ha realizado un gran trabajo para mejorar el soporte de sistemas NUMA (Non-Uniform Memory Access).
  • Se han actualizado los controladores gráficos y los componentes de la pila gráfica. Se han resuelto problemas con el funcionamiento de entornos basados en el protocolo Wayland.
  • Se ha añadido un subsistema de retroiluminación para crear controladores de gestión de retroiluminación. Se ha añadido el controlador pwm-backlight para gestionar la retroiluminación del Pinebook y Pinebook Pro.
  • El soporte para el protocolo SCTP se ha trasladado a un módulo separado sctp.ko, que está desactivado por defecto en el núcleo GENERIC.
  • Se ha propuesto un nuevo controlador usbhid para dispositivos de entrada, utilizando el marco hid para trabajar con dispositivos USB HID, en lugar de los controladores ukbd, ums y uhid.
  • En el controlador cpufreq se ha implementado soporte para la tecnología Intel Speed Shift.
  • Se ha añadido soporte para nuevas placas basadas en CPU ARMv8 de 64 bits, incluyendo SoC Broadcom BCM5871X y NXP LS1046A.
  • Para la arquitectura AMD64 se ha implementado soporte para direcciones virtuales de 57 bits (LA57). Se ha añadido soporte para los CPUs x86 de China Hygon Dhyana basados en tecnologías de AMD.
  • El puerto para la arquitectura powerpc64 ha sido trasladado para utilizar LLVM y ABI ELFv2 (los archivos binarios de versiones anteriores de FreeBSD no podrán utilizarse en FreeBSD 13). Se han portado los controladores virtio, ixl, mrsas, aacraid y cpld para powerpc64.
  • Se han eliminado los controladores para adaptadores Ethernet obsoletos:
    • bm(4) BMAC
    • cs(4) Crystal Semiconductor CS8900/CS8920
    • de(4) DEC DC21x4x
    • ed(4) NE-2000 y WD-80×3
    • ep(4) 3Com Etherlink III (3c5x9) ISA
    • ex(4) Intel EtherExpress Pro/10 y Pro/10+
    • fe(4) Fujitsu MB86960A/MB86965A
    • hme(4) Sun Microelectronics STP2002-STQ
    • pcn(4) AMD PCnet
    • sf(4) Starfire
    • sn(4) SMC 91Cxx
    • tl(4) Texas Instruments ThunderLAN
    • tx(4) SMC 83c17x
    • txp(4) 3Com 3XP Typhoon/Sidewinder (3CR990)
    • vx(4) 3Com EtherLink III / Fast EtherLink III (3c59x) PCI
    • wb(4) Winbond W89C840F
    • xe(4) Xircom PCMCIA
  • Se han eliminado los controladores ubsec (aceleradores criptográficos Broadcom BCM58xx), ufm (tuner FM con interfaz USB), ctau (Cronix Tau), cx (Cronix Sigma) y vpo (SCSI por puerto paralelo).

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster