Perdón por el retraso. Ya se ha
anunciado la disponibilidad de la versión 3.3 del kernel Linux.
Como principal novedad, la inclusión del código del proyecto Android.
También hay otras novedades, como una nueva arquitectura (TI C6X),
mejora del balanceado y la habilidad de cambiar de modo RAID en Btrfs, y
varias mejoras de red: Una implementación de un switch por software
(Open vSwitch) para casos con virtualización, una alternativa más rápida
y escalable al driver "bonding", un límite configurable a la cola de
transmisión de las tarjetas de red para luchar contra el "bufferbloat",
un "control group" para controlar la prioridad del tráfico de red, y
otro cgroup para límitar el tamaño de los búferes TCP de cad proceso.
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.
1. Inclusión de Android: Los sistemas basados en Android utilizan
el núcleo Linux, pero con algunas modificaciones y añadidos propios.
Durante mucho tiempo el código de esas variaciones no ha sido incluido
en el repositorio principal, debido a desacuerdos entre los
desarrolladores de ambos proyectos. Afortunadamente, tras varios años
las asperezas están siendo limadas. Varios subsistemas de Android han
sido incluidas en esta versión, y se incluirán más en el futuro. Esto
hará las cosas más fáciles para todo el mundo, incluyendo la comunidad
Android que hace mods personalizados, o las distribuciones Linux que
quieran añadir soporte para programas Android.
2. Btrfs: 'restriping' entre diferentes niveles RAID, mejora del proceso de balanceo, mejores herramientas de depuración:
· Mejora del proceso de balanceo, restriping RAID
En Btrfs, la operación de "balanceo" consiste en reescribir todos los
datos del sistema de archivo, haciéndolos pasar de nuevo por los
asignadores de bloques y de "trozos" de disco (chunks). Esta operación
es necesaria en algunos casosa. Por ejemplo, si se añade un nuevo disco,
se necesita un balanceo para redistribuir los datos existentes a ese
disco. Este balanceo, sin embargo, funciona siempre para todo el sistema
de archivos, y puede tardar varios horas, y no soporta cambio de un
perfil RAID a otro.
En esta versión la implementación de balanceo ha sido reescrita. Btfrs
puede pausar una operación de balanceo, y posteriormente volver a
retomarla donde se dejó. Puede observarse el progreso. También puede
hacer "restriping" entre diferentes niveles RAID, es decir, cambiar
entre un modo RAID y otro. También permite filtrar la operación de
balanceo para que sólo afecte a datos o a metadatos. También permite
balancear exclusivamente los grupos de bloques que estén casi vacíos.
Las utilidades están disponibles en la rama "parser" de btrfs-progrs.
· Mejor depuración
Btrfs tiene una nueva herramienta de depuración, "integrity check",
orientada a desarrolladores. Esta herramienta consiste en escanear cada
bloque escrito, y examinarlo para comprobar que las referencias son
correctas y consistentes, y que no se está escribiendo nada que pudiera
dejar al sistema de archivos en un estado de inconsistencia tras un
corte de corriente. Esta herramienta -que tiene unos costes de
rendimiento muy altos y no está recomendada para usuarios normales-
ayudará a los desarrolladores a encontrar fallos con más rapidez.
3. Open vSwitch: Open vSwitch es una implementación de software
de un switch de red. Este proyecto ha existido durante varios años, y
ahora se incorpora al núcleo principal. Linux ya tiene un switch virtual
(el "bridge"), pero Open vSwitch está diseñado para escenarios más
complejos, particularmente para entornos de virtualización (lea el
documento "
Why Open vSwitch?"
Open vSwitch soporta las interfaces de gestión estándar (sFlow,
Netflow, RSPAN, CLI), y está abierto a ser extendido y controlado
utilizando Openflow y el protocolo de gestión OVSDB, y está diseñado
para ser compatible con los chipsets de switching modernos.Ver
openvswitch.org para más información.
4. Mejor vinculación (bonding) de interfaces de red: teaming:
Esta versión añade un nuevo driver de red llamado "teaming", cuyo
objetivo es ser un reemplazo rápido, escalable, y limpio del driver
"bonding". Esta funcionalidad suele utilizarse para vincular dos
tarjetas de red y así incrementar el ancho de banda máximo y
proporcionar redundancia. En esto momentos están disponibles los modos
round-robin y active-backup. La librería de espacio de usuario, junto
con un par de aplicaciones de demostración, está disponible en
github.com/jpirko/libteam.
5. Luchando contra el bufferbloat: byte queue limit: "
Bufferbloat"
es un término utilizado para describir los problemas de latencia y tasa
de transferencia causados por el excesivo buffering en las diferentes
capas de una conexión de red. Se están desarrollando algunas
herramientas para ayudar a aliviar esos problemas, y esta característica
es uno de ellos.
El "byte queue limite" es un límite configurable de datos que se pone a
la cola de envío de paquetes de una tarjeta de red. Como resultado, uno
puede tunear cosas como que los paquetes de alta prioridad sean
atendidos con una latencia razonable sin tener que vaciar la cola cuando
existen datos para enviar. La configuración de estos límites se hace en
el directorio de sysfs tx-n de cada tarjeta de red.
6. Límites de buffer TCP controlados con cgroup: Se introduce la
capacidad de controlar la memoria utilizada por los buffers del
protocolo TCP mediante cgroups (grupos de procesos).
7. cgroup para el control de prioridad de red: El cgroup para el
control de prioridad de red permite al administrador configurar la
prioridad del tráfico de red para los procesos que son miembros del
grupo. En teoría, una aplicación podría configurar la prioridad mediante
la opción de socket SO_PRIORITY. Esto, sin embargo, no es siempre
posible. Este cgroup permite al administrador asignar un proceso a un
grupo y obligarle a seguir la configuración definida. Documentación en
Documentation/cgroups/net_prio.txt
8. Mejor redimensionado en vivo de Ext4: Se ha añadido una nueva
ioctl y código que permite redimensionar un sistema de archivos Ext4 con
mayor rapidez y seguridad. El nuevo redimensionado permite al kernel
hacer todo el trabajo, como crear bitmaps y tablas de inodos, puede
soportar características como flex_bg y BLOCK_UNINIT, y es mucho más
rápido.
9. Nueva arquitectura: TI C6X: La familia de arquitecturas que
funcionan en Linux ha aumentado aun más con la incorporación del soporte
para Texas Instrument C6X. Esta arquitectura soporta procesadores de la
familia C64X de uno y varios cores DSP, sin MMU. Esta arquitectura es
VLIW, y tiene un conjunto de instrucciones diseñado para aplicaciones
DSP. Para más detalles, vea
esta página web de TI. La página del proyecto es linux-c6x.org.
10. Soporte para inicio desde EFI: En esta versión se incluye un
objeto EFI que permite que una imagen bzImage x86 sea cargada y
ejecutada directamente como una aplicación EFI. Tanto los cargadores
BIOS y EFI pueden cargar la misma imagen, permitiendo de ese modo
utilizar la misma imagen para ambos casos.
Y eso es todo. La lista completa de cambios en inglés,
aquí.