11 comentarios

Ha sido liberado el nuevo Kernel de Linux, 2.6.37

Tux, as originally drawn by Larry Ewing

Image via Wikipedia

Hace horas nada más, y luego de 11 semanas de intenso trabajo, Linus Torvalds anunció la disponibilidad de la versión 2.6.37 del Kernel o Núcleo Linux. Normalmente la gente de H-Online se encarga de realizar una serie de artículos desmenuzando las novedades del núcleo en desarrollo. En efecto, estos son los artículos:

  1. Gráficos
  2. Sistemas de ficheros
  3. Comunicaciones y hardware de almacenamiento
  4. Arquitectura e infraestructura
  5. Controladores

Pero no sólo el mencionado portal se ha hecho eco de este lanzamiento, en KernelNewbies han hecho un resumen de las nuevas características, entre las que se destacan:

  • Mejoras en el sistema de ficheros Ext4 que, entre otras cosas, cuenta con nuevas funciones para mejorar su rendimiento en unidades SSD.
    • En esta versión se utilizará la capa llamada “bio” en lugar de otra llamada “buffer”. La capa “bio” (que es un alias de “block I/O”: Se trata de la parte del kernel que se encarga de enviar peticiones al I/O scheduler) fue una de las primeras características que se incluyeron en Linux 2.5.1, y fue un reemplazo de la capa que sustituía, llamada “buffer”, que tenía muchos problemas de escalabilidad y rendimiento: Al usarla, Ext4 sólo podía hacer peticiones de 4KB cada vez; utilizando la capa bio Ext4 puede enviar peticiones de 512KB cada vez.

En el benchmark FFSB ejecutado en un equipo con 48 procesadores AMD y con almacenamiento de array RAID de 24 discos SAS, utilizando 192 threads paralelos de ffsb, la mejora fue del 300%.

    • mkfs más rápido: Una de las partes más lentas al crear un sistema de archivos Ext4 es inicializar la tabla de inodos. mkfs puede saltarse este paso y dejar las tablas sin inicializar. Cuando se monte el sistema de archivos por primera vez, el kernel creará un thread -ext4lazyinit- que inicializará las tablas.
  • Otro de los puntos a favor es el de la virtualización: el nuevo kernel está preparado para operar como un host Xen (Dom0), aunque aún no dispongamos de los controladores del backend que las máquinas invitadas (guests) Xen utilizan para acceder al disco y la red del sistema anfitrión.
  • Como siempre sorprendente por la inclusión de más y más controladores. Por ejemplo se incluye soporte para el llamado USB Attached SCSI Protocol (UASP), varios chips WiFi y el Magic Trackpad de Apple.
  • Se puede deshabilitar el llamado Big Kernel Lock (BKL), que había estado limitando la escalabilidad en máquinas multiprocesador. El Big Kernel Lock (BKL) es un bloqueo gigante que fue introducido en Linux 2.0, cuando Alan Cox añadió por primera vez soporte para SMP, como un paso para conseguir escalabilidad SMP – en Linux 2.0, solo un proceso podía ejecutar código del kernel a la vez, a largo plazo hay que reemplazar el BKL por múltiples bloqueos que abarquen pequeñas partes del código. En esta versión, por primera vez es posible compilar un kernel sin ningún tipo de soporte de BKL.

Esto no tiene impacto en el rendimiento: todas las rutas de código críticas están libres de BKL desde hace mucho tiempo, pero quedaban muchos lugares no críticos -ioctls, drivers, sistemas de archivo poco conocidos- que continuaban usándolo por comodidad. Esos son los lugares donde se ha eliminado el uso del BKL, pero sólo ha sido sustituido por mutexes, que no mejoran el paralelismo.

  • Mejoras de gestión de energía:
    • Autosuspensiones retrasadas: Esta es una característica que mejora a otra añadida en Linux 2.6.32, “runtime power management”. Sin embargo, algunos drivers no quieren suspender el dispositivo tan pronto como sea posible, quieren que antes haya un periodo mínimo. Esto es lo que implementa esta característica.
    • Compresión de la imagen de hibernación con LZO, que ayuda a comprimir y descomprimir más rápido la imagen.
  • Soporte de PPP sobre IPv4: Comparado con las implementaciones en espacio de usuario (poptop/pptpclient), mejora dramáticamente el rendimiento de las conexiones pptp vpn y reduce el consumo de CPU. Ver accel-pptp project.
  • Novedades en Btrfs:
    • Cacheado de la información de espacio libre en el disco: En esta versión, Btrfs almacena la información sobre las partes del disco que están libres en el propio disco, lo cual hace que cachear un grupo de bloques sea más rápido. Hasta ahora, cuando había que hacer asignaciones de espacio de un grupo de bloques que no había sido cacheado previamente, se tenía que escanear el árbol de extents (que representa las zonas del disco utilizadas por los archivos) por completo, para representar en las estructuras de memoria las zonas libres del disco. Ahora el espacio libre se escribe en el disco cada vez que se realiza una transacción. Esto supone un cambio en el formato de disco, pero no hay problemas de compatibilidad con los viejos kernels, ya que continuarán funcionando igualmente, con la diferencia de que generarán el caché del modo antiguo. También hay que tener en cuenta que esta característica está por el momento desactivada y tiene que activarse con la opción -o space_cache. También hay una opción -o clear_cache, útil solo para casos de depuración, que limpia los caches.
    • Creación asíncrona de snapshots: Esto permite evitar tener que esperar a que un nuevo snapshot sea escrito al disco. Ha sido desarrollado teniendo en cuenta al demonio del sistema de archivos de Ceph, pero también está disponible para cualquier usuario añadiendo “async” al comando “btrfs subvolume snapshot”.
    • Permitir que un usuario sin privilegios elimine un subvolumen. Requiere utilizar la opción de montaje -o user_subvol_rm_allowed.
    • Cambiar el buffer de extents de un red-black tree a un radix tree, y utilizar RCU en lugar de spinlocks, lo cual mejora el rendimiento en algunos casos.
    • Refinar la asignación de chunks: Soporte para grupos de bloques que puedan albergar datos+metadatos a la vez (util en dispositivos con poco almacenamiento), no asignar los chunks tan agresivamente (evita fallos de -ENOSPC debido a la sobreasignación de espacio para metadatos)

Se espera que el nuevo núcleo sea incluido en las distintas distribuciones que van a ver la luz en los próximos meses, es más, las versiones previas del núcleo ya están siendo incluidas en las distintas Milestones de cada distro. Mientras tanto, y si queres, podes ir descargando el núcleo y luego compilarlo conforme los distintos tutos que dan vuelta por la red.

Fuente: Laboratorio Linux | D’Oh!

Artículos Relacionados.

Acerca de Martín Casco

Abogado, Socio del "Estudio Yaccuzzi & Casco"

11 comentarios el “Ha sido liberado el nuevo Kernel de Linux, 2.6.37

  1. Una pregunta, sabes si viene el famoso “parche” milagro que tanto se anuncio en artículos pasados incluido en este kernel?

    • Misma pregunta me hice, recuerdo que en alguna de las RC de éste núcleo estaba incluido. Estuve buscando esta info al escribir la entrada, en el anuncio no dice nada, no encontré referencias en las notas del lanzamiento, sólo en comentario en MuyLinux según el cuál sería incluido en 2.6.38 … Algo que me suena raro, muy raro… Actualizaré con más novedades🙂

  2. […] Ha sido liberado el nuevo Kernel de linux, 2.6.37 « Soft-Libre […]

  3. Puedo instalarlo tambien en Lucid?

  4. Gracias por todo esto pero como soy novato y tengo un Usb que usa el driver atheros, no tengo ni idea de como se instala, alguien podria explicarme que pasos deberia seguir para poder instalar-lo y comprobar que han arreglado los drivers wifi N para mi lapiz Usb. O tengo de esperar a que lo lanzen como actualizacion en Maverick ??? uso el 64 bits. Gracias a ver si alguien me sabe explicar los pasos con alguna guia o tutorial Saludos.

    • Lamentablemente GNU/Linux y Atheros no se llevan muy bien. Cuando insertás el USB, no se te ofrece ningún driver non-free? verificaste en Sistema – Administración – Controladores adicionales ??

      También te recomiendo leer éste artículo que salió justo hoy; la solución no es complicada🙂

  5. “bio” no es un “alias” de “block I/O”, Toma las iniciales de Block Input Output, lo que quiere decir que BIO es un ACRÓNIMO no un “alias”.

    Difundamos saber, conocimiento, cultura ……

    Saludos.

  6. […] Ha sido liberado el nuevo Kernel de Linux, 2.6.37 […]

  7. […] a 14 días de la liberación Final del núcleo cuya versión es la actual estable 2.6.37 se produce este nuevo lanzamiento que continua con las notables mejoras. Remarcar tan sólo que la […]

  8. […] a 14 días de la liberación Final del núcleo cuya versión es la actual estable 2.6.37 se produce este nuevo lanzamiento que continua con las notables mejoras. Remarcar tan sólo que la […]

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: