Después de dos meses de desarrollo, Linus Torvalds presentó la nueva versión del kernel de Linux 5.6, versión que llega con diversos cambios y novedades y entre los cambios más notables se destaca la integración de la interfaz WireGuard VPN, soporte para USB4, espacios de nombres para el tiempo, la capacidad de crear controladores de congestión TCP utilizando BPF, soporte inicial para MultiPath TCP, eliminación del núcleo del problema 2038, el mecanismo «bootconfig» y ZoneFS FS.
Esta nueva versión adoptó un total de 13702 parches de 1810 desarrolladores, el tamaño del parche es de 40 MB (los cambios afectaron a 11577 archivos, se agregaron 610012 líneas de código, se eliminaron 294828 líneas).
Principales novedades de Linux 5.6
Una de las principales novedades de esta nueva versión es la implementación de la interfaz WireGuard VPN, que utiliza la base de métodos de cifrado modernos (ChaCha20, Poly1305, Curve25519, BLAKE2s), es fácil de usar, carece de complicaciones, se ha demostrado en una gran cantidad de implementaciones grandes y proporciona un rendimiento muy alto (3.9 veces más rápido que Ancho de banda de OpenVPN).
Otro de los cambios que se destaca de esta nueva versión es la integración de los componentes necesarios para apoyar MPTCP (MultiPath TCP) y las extensiones de protocolo TCP para la organización de la TCP-conexión con la entrega de los paquetes al mismo tiempo en varias rutas a través de diferentes interfaces de red que están unidos a diferentes direcciones IP.
Para aplicaciones de red, dicha conexión agregada se parece a una conexión TCP normal y toda la lógica de separación de flujo se realiza mediante MPTCP. Multipath TCP se puede utilizar tanto para ampliar el rendimiento como para aumentar la fiabilidad.
Por otra parte se destaca que el kernel adoptó el sistema de archivos ZoneFS, que simplifica el trabajo de bajo nivel con dispositivos de almacenamiento por zonas. Las unidades zonificadas son dispositivos en discos magnéticos duros o SSD NVMe, cuyo espacio de almacenamiento se divide en zonas que forman grupos de bloques o sectores, en los que solo se permite la adición secuencial de datos con la actualización de todo el grupo de bloques.
Ademas de esto, tambien se destaca la implementación para la especificación USB 4.0, que se basa en el protocolo Thunderbolt 3 y proporciona un ancho de banda de hasta 40 Gb/s, al tiempo que mantiene la compatibilidad con USB 2.0 y USB 3.2.
USB 4.0 permite tunelizar varios protocolos en la parte superior de un solo cable tipo C incluyendo PCIe, Display Port y USB 3.x, así como implementaciones de software de protocolos, por ejemplo, para organizar enlaces de red entre hosts.
La implementación se basa en el controlador Thunderbolt ya incluido en el kernel de Linux y lo adapta para que funcione con hosts y dispositivos compatibles con USB4.
Mientras que para Ext4 se incluyen optimizaciones de rendimiento relacionadas con el manejo de bloqueos de inodo en operaciones de lectura y escritura. Con ello el rendimiento de reescritura fue mejorado en modo Direct I/O.
En cuanto a controladores se destacan los cambios significativos en el sistema de sonido ALSA. En el controlador nouveau dr agrega soporte para el modo de descarga de firmware verificado para GPU NVIDIA basado en la microarquitectura Turing que habilitó el soporte de aceleración 3D para estas tarjetas (se debe descargar el firmware oficial con firma digital NVIDIA), asi como tambien se destaca el soporte para la compresión de datos durante la transmisión a través de DisplayPort MST (Multi-Stream Transport).
Finalmente por la parte de las soluciones de errores se destaca la solucion del problema 2038, en el cual se han reemplazado los últimos controladores restantes, en los que se utilizó el tipo time_t de 32 bits (firmado int) para el contador.
Ademas de que se eliminó el soporte para las extensiones MPX (Extensiones de protección de memoria) agregadas en el kernel 3.19 y permitiendo a la organización verificar los punteros para observar los límites de las áreas de memoria. Esta tecnología no se usa ampliamente en compiladores y se ha eliminado de GCC.
Finalmente si quieres conocer la lista completa de los cambios que se incluyen esta nueva versión del Kernel de Linux puedes consultar el siguiente enlace.
Para el usuario de a pie de Linux (Manjaro en mi caso), cómo nos afecta el hecho de que el kernel tenga un vpn mucho más eficiente? Se activa automáticamente, hay que seleccionarlo, cómo funciona? Gracias!