Linux 5.6 llega con WireGuard, USB 4.0, soporte Arm EOPD y más
Linus Torvalds anunció este domingo la disponibilidad general de la versión 5.6 del kernel de Linux después de diversos CR publicados. Linux 5.6 contiene muchos cambios y mejoras. Como cada nueva versión de la línea de desarrollo principal, la más nueva trae más de diez mil cambios, algunas actualizan nuevas funciones, otras mejoran las existentes.
Las características clave de esta versión incluyen soporte de Arm EOPD, espacios de nombres de tiempo, despachador de BPF y operaciones de tarjeta BPF por lotes y llamada al sistema openat2, implementación de VPN WireGuard etc.
Compatibilidad USB 4
El estándar USB 4 es una de las características principales de esta versión del Kernel de Linux ya que se implemento el soporte USB4 que se basa en la especificación Thunderbolt 3. En teoría, las velocidades pueden alcanzar 40 Gb/s a través del conector USB-C, ademas de que se admiten potencias de hasta 100 vatios a través del puerto PD (Power Delivery). USB4 permite conectar pantallas 4K u 8K a USB, asi cómo tambien conectar una serie de varios dispositivos USB a la cadena en el mismo puerto.
Esta tecnología de conexión, se finalizó el verano pasado y surgió de Thunderbolt 3, ya debería aparecer en los sistemas en unos pocos meses. Los procesadores Intel de la generación Tiger Lake, que heredan los procesadores actuales de escritorio y portátiles de la serie Ice Lake, deberían ser compatibles.
Corrección de errores para el año 2038
Otro de los cambios que llegan en Linux 5.6 es el error del año 2038 que afecta a arquitecturas de 32 bits debido a un problema de desbordamiento de enteros.
De hecho, Unix y Linux almacenan el valor de tiempo en un formato de entero con signo de 32 bits que tiene el valor máximo de 2147483647. Más allá de este número, debido a un desbordamiento de entero, los valores se almacenarán como un número negativo Esto significa que para un sistema de 32 bits, el valor de tiempo no puede exceder 2147483647 segundos después del 1 de enero de 1970.
En términos más simples, después de las 03:14:07 UTC del 19 de enero de 2038, debido a un desbordamiento de enteros, el tiempo será el 13 de diciembre de 1901 en lugar del 19 de enero de 2038.
Soporte WireGuard
Linux 5.6 llega con la tecnología Wireguard VPN, que ha estado hablando mucho sobre sí misma durante un tiempo. Esto se debe, entre otras cosas, a un establecimiento de conexión rápido, buen rendimiento y un manejo robusto, rápido y transparente de abortos de conexión. Además, la tecnología de túnel es muy eficiente y mucho más fácil de configurar que las tecnologías VPN más antiguas; Wireguard proporciona seguridad contra las escuchas con los últimos algoritmos de cifrado.
WireGuard utiliza Curve25519 para el intercambio de claves, ChaCha20 para el cifrado, Poly1305 para la autenticación de datos, SipHash para las claves de la tabla hash y BLAKE2s para el hash. Admite la capa 3 para IPv4 e IPv6 y puede encapsular v4-in-v6 y viceversa. WireGuard ha sido adoptado por algunos proveedores de servicios VPN como Mullvad VPN, AzireVPN, IVPN y cryptostorm, mucho antes de su incorporación en Linux, debido a su diseño considerado “excelente”.
Soporte ARM EOPD
Debido a la vulnerabilidad Meltdown que permite a un atacante en el espacio del usuario leer datos del espacio del kernel utilizando una combinación de ejecución especulativa y canales secundarios basados en caché. La defensa del kernel contra Meltdown es el aislamiento de las tablas de páginas del kernel, eliminando por completo las tablas de páginas del kernel del mapeo del espacio del usuario. Funciona, pero tiene un costo de rendimiento muy significativo y puede interferir con el uso de otras funciones del procesador.
Sin embargo, es bastante aceptado que el aislamiento del espacio de direcciones será cada vez más necesario para proteger los sistemas durante algún tiempo.
Existe una alternativa, la cual es una iniciativa en función E0PD, que se agregó como parte de las extensiones Arm v8.5. E0PD asegura que el acceso desde el espacio del usuario a la mitad de la tarjeta de memoria del núcleo siempre se realiza en tiempo constante, evitando así los ataques de sincronización.
Por lo tanto, el E0PD no evita que se ejecute especulativamente en la memoria a la que el espacio del usuario no debería poder acceder, pero bloquea el canal lateral que normalmente se usa para extraer los datos expuestos por operaciones mal especuladas.
Finalmente si quieres conocer más al respecto, puedes consultar el siguiente enlace.