12 de febrero de 2015

Las novedades de Linux 3.19

Ya se ha anunciado la versión 3.19 de Linux. Esta versión añade soporte en Btrfs para sustitución rápida de dispositivos y scrubbing en RAID 5 y 6, soporte para las extensiones de protección de memoria de Intel, que ayudan a parar la explotación de desbordamientos de búfer, soporte para la arquitectura AMD HSA, soporte para el sistema de depuración ARM Coresight, soporte para la arquitectura Altera Nios II, soporte para la descarga de las funciones de switchs y routers en chips de hardware, soporte para la preasignación y el borrado de partes de archivos, y el sistema IPC de Android, binder, sale de "staging" y se considera estable. También se han incluido drivers nuevos y muchas otras mejoras y pequeños cambios. La lista completa de cambios, en inglés, puede encontrarse aquí, como siempre.

· Btrfs: Soporte de scrubbing y sustitución rápida de dispositivos con RAID5&6

Btrfs añadió soporte para la sustitución rápida de discos en Linux 3.8, un método para reemplazar un disco por otro más rápido, en un sólo comando (ver btrfs-replace(8)), que hacerlo añadiendo y eliminando manualmente los discos por separado (ver btrfs-device(8)). Esta característica no podía utilizarse en sistemas de archivos que estuviesen utilizando RAID 5 ó 6. En esta versión se ha eliminado esa limitación.


El proceso de hacer scrubbing a un sistema de archivos Btrfs (ver btrfs-scrub(8)) tampoco era posible en sistemas de archivo que usasen RAID 5 ó 6; esta limitación también se ha eliminado.

· Soporte para las extensiones de Protección de Memoria de Intel

Las extensiones MPX de Intel (Memory Protection Extension) son un conjunto de instrucciones de CPU que ayudan a proporcionar fiabilidad al software evitando que las referencias de punteros puedan ser usurpadas maliciosamente por desbordamientos de búfer. Intel MPX introduce nuevos registros y nuevas instrucciones que operan en esos registros. Con compiladores, librerías y kernels modificados, es posible hacer uso de esas instrucciones para que el hardware MPX prevenga la explotación de desbordamientos de búfer. Esta versión de Linux añade soporte para Intel MPX en el kernel. Nota: las CPUs con soporte de MPX aun no están en el mercado y serán introducidas en las microarquitecturas Intel Skylake y Goldmont.

Artículo LWN recomendado: Supporting Intel MPX in Linux.
Artículo de Intel recomendado: Introduction to Intel Memory Protection Extensions


· Controlador HSA para GPUs AMD

HSA ("Heterogeneous System Architecture") es una arquitectura que integra CPUs y GPUs en el mismo bus. HSA permite que varios tipos de procesador (CPUs, DSPs, GPUs, etc) compartan recursos del sistema con mayor efectividad mediante características del hardware como memoria compartida y paginable, colas de trabajos accesibles desde espacio de usuario, etc.

Esta versión incluye soporte de HSA para la familia de procesadores Radeon, y ofrece una API que es utiliza por una librería de software libre desarrollada por AMD, Para más detalles sobre HSA y sobre las posibilidades que HSA ofrece a las aplicaciones de espacio de usuario, ver el anterior enlace.

· Android binder movido a "stable"

El código del "binder" de Android (un IPC específico para Android) ha estado durante años en el área "staging" del kernel, destinado a código que aun no está preparado para ser utilizado por el público. El código en cuestión, sin embargo, es estable ha sido distribuido en todos los millones de teléfonos Android que se han vendido en todos estos años. Hay reticencias sobre binder, pero no importa lo que pase, Linux va a tener que soportar esta API de todos modos, lo cual ha motivado que pase a estar considerado como código estable.

· Soporte de ARM Coresight

Coresight es un paraguas de tecnologías que permiten la depuración en SoCs ARM. ARM ha desarrollado una solución de trazado de software asistido por hardware, compuesta de diferentes partes, cada una de las cuales está destinada a una necesidad de trazado específica.

El framework Coresight de Linux proporciona una interfaz para los drivers que soportan las diferentes partes de Coresight. Ofrece una vista topológica de los componentes de Coresight y configura los diferentes componentes cuando se activa una fuente de trazado.  Para más detalles sobre el framework ver Documentation/trace/coresight.txt  , para más detalles sobre ARM Coresight ver http://www.arm.com/products/system-ip/debug-trace/

· Nueva arquitectura: Procesadores Altera Nios II

Esta versión añade soporte para los procesadores Altera Nios II. Nios II es una arquitectura de procesadores embebidos de 32 bits, diseñados específicamente para la familia de FPGAs Altera. El procesador Nios II ofrece varias mejoras sobre la arquitectura original Nios, haciéndolo ideal para un amplio rango de aplicaciones embebidas, desde DSPs a sistemas de control. Para más información sobre los procesadores Nios II, ver http://www.altera.com/literature/lit-nio2.jsp

· Device Tree Overlays

El "Device Tree" es una estructura de datos para describir el hardware, esta estructura de datos se pasa al kernel al arrancar, una solución más flexible que tener que incluir cada detalle de los dispositivos en el sistema operativo. Se usa sobre todo en arquitecturas como PowerPC y ARM. El Device Tree está diseñado para sistemas estáticos, y tiene problemas para extenderse a buses de expansión como los que se encuentran en sistemas de consumo como el BeagleBone o Raspberry Pi.

Esta versión introduce soporte para overlays ("superposiciones") en el Device Tree. Los overlays son un método para modificar dinámicamente partes del Device Tree y hacer cambios. Esto hace más sencillo soportar sistemas como los anteriormente citados. Para más información, leer: Device tree overlays.

· Redes: Soporte para descargar el procesado de routers y switchs

Esta versión incluye una infraestructura para soportar chips de switchs y otras operaciones de red. De ese modo, el procesado de esas funciones puede hacerse en el hardware, y así evitar tener que hacerlo en software.

También se incluye el primer driver que utiliza esta infraestructura, un driver "rocker" para el chip de switch emulado en qemu.

· Soporte de preasignación y "hole punching" en NFSv4.2

Esta versión añade soporte para la preasignación de archivos y "hole punching" (eliminación de porciones grandes de un archivo) en NFSv4.2


Y eso es todo. La lista completa de cambios en inglés, aquí.

4 comentarios:

  1. El título está mal, has puesto kernel 3.18.

    Un saludo.

    ResponderEliminar
  2. Anónimo10:00 a. m.

    Hombre, bienvuelto. Tenías algo abandonado el blog

    ResponderEliminar
  3. Anónimo9:34 p. m.

    Gracias, Diego. Como siempre, un placer.

    ResponderEliminar