Lo que traerá el kernel 2.6.24

5 12 2007

escrito por Diego Calleja aki: http://diegocg.blogspot.com

Este es un resumen de lo que traerá Linux 2.6.24.

  • Mejoras del gestor de procesos: Además de mejoras de rendimiento y de tamaño de código que ponen a CFS al nivel del antiguo gestor de procesos (e incluso un poco mejor), en 2.6.24 se podrá configurar cómo particionar el tiempo de CPU entre usuarios o grupos. Hay dos métodos para particionar la cpu: uno que lo particiona por cada usuario, es decir, si un usuario ejecuta un programa con un bucle cerrado y otro usuario ejecuta dos, el primer usuario tendrá un 50% para su programa y el otro el otro 50% para sus dos programas. El otro sistema es completamente configurable: Se pueden crear “grupos de control de recursos”, asignarles unos recursos de cpu, y asignar un PID cualquiera a ese grupo, y el PID heredará las propiedades del grupo automaticamente. Este último sistema está basado en los “task control groups”, que tambien es nuevo y se comentan en el siguiente punto.
  • Task Control Groups, o grupos de control de procesos. Esta es una caracterísitica que sirve para la asignación y control de recursos a grupos de procesos, que es algo que algunos UNIX tienen hace tiempo y que Linux, aunque lleva años pensando el como y tiene mil implementaciones, añade finalmente en esta versión despues de años de discusión. La idea es crear “grupos de control de procesos”, algo que en la práctica consiste crear un directorio en un sistema de archivos virtual especial. Ese directorio contiene por defecto un monton de archivos. Leyendo o escribiendo a esos archivos, uno configura las propiedades del grupo: Ej, el tiempo de CPU, como se explicaba en el punto anterior. Pero tambien se pueden configurar otras cosas, como las CPUs o nodos de memoria en los que quieres que se ejecuten los procesos del grupo. Para añadir procesos a un grupo, se escribe su PID en un archivo del directorio (ignoro si hay alguna manera de crear patrones para añadir procesos automáticamente). De manera que puedes hacer cosas como que unos procesos que a ti te caen bien tengan el doble de tiempo de CPU que un proceso normal, se ejecuten solo en las CPUs 1, 2, 5, 10 y 11, y que su memoria se ubique solamente en el nodo de memoria 1. Esta version solo tiene clientes cgroups de esas cosas, pero es de suponer que en el futuro se añadan más, como prioridad de I/O y de QoS de red, y cosas así.
  • Soporte de Tickless para x86-64, PPC, UML, ARM, MIPS….por cierto, tambien está “cpuidle”, una nueva infraestructura para gestionar el tiempo muerto de la CPU, con una política (opcional) optimizada para NO_HZ. En resumen, que sirve, como titulaba una charla un tipo de Intel, para…How to do nothing…efficiently.
  • Reunificación x86-32 y x86-64: Ya no hay arch/i386 y arch/x86_64, hay arch/x86 (aunque se conservan algunos enlaces simbólicos por compatibilidad). En realidad buena parte del código sigue sin compartirse; se han movido todos los archivos a un mismo directorio añadiendo sufijo “_32.c” y “_64.c”, la compartición de código se va haciendo lentamente.
  • Puntos de montaje “bind” de solo lectura: A día de hoy existe, aunque no se utilize mucho, la opcion “mount –bind”. Bien, pues ahora se pueden hacer monturas –bind de solo lectura.
  • Espacios de nombres para los PIDs y la pila de red: Esto tiene que ver con la virtualización a nivel de sistema operativo, tipo vserver o openvz, las “jails” de los BSDs o los “containers” de solaris. Como tantas otras cosas, esto estaba disponible hace años en forma de vserver/openvz, pero solo ahora forma parte del kernel principal.
  • Límites de memoria “sucia” para cada dispositivo: Aunque parezca raro, hasta el día de hoy Linux mantenía un límite global de la cantidad de memoria que puede estar “sucia” (sin escribir a disco). Esto tiene unos efectos divertidísimos cuando tienes en una máquina dispositivos como ej: un disquete y unos discos ultra rápidos, que “limpian” la memoria a velocidades muy diferentes. Y no cuento nada en el caso de dispositivos de bloques “anidados”, como es el caso de cualquier máquina con LVM/MD. En 2.6.24 los límites son independientes para cada dispositivo y se calculan dinámicamente teniendo en cuenta el ritmo de escritura de cada dispositivo. Esto mejora el rendimiento en muchas configuraciones.
  • Soporte SPI/SDIO en la capa MMC: ¿Sabían ustedes que las mierdas de ranuras donde se meten las tarjetas de memoria MMC en las camaras digitales pueden actuar como bus si al fabricante le da la gana añadir los cables y chips necesarios, y que se les puede conectar tarjetas de red y cosas así? El diablo no dejará nunca de sorprendernos. En cualquier caso, ahora Linux soporta esa tecnología diabólica.
  • Autorización USB: Pues resulta que, como parte de los esfuerzos para soportar USB wireless, ahora la pila USB puede configurarse a través de sysfs para que los dispositivos USB conectados al sistema no esten “autorizados” para funcionar. Esto es muy útil, además de para no permitir a los dispositivos USB wireless que pasen por tu lado conectarse automaticamente, para crear configuraciones “kiosk” en cibers o en “clientes tontos” en los que sea imposible conectar cosas a la torera.
  • Markers: Esta es una de las partes que conforma lo que podríamos llamar “Dtrace de linux”, es decir, systemtap (la otra es kprobes, que ya está; ya solo falta utrace). Un sistema como systemtap puede insertar “probes” en cualquier lado dinámicamente, pero hay puntos del kernel (ej; donde se gestionan los “fallos de página”, para contarlos) que por su importancia se tiende a insertar “probes” muchas veces en ellos: Por eso es más práctico añadir un “probe” estático, que además es más eficiente.
  • Antifragmentación de la memoria: tres años, tres, ha estado un tipo implementando unos parches que reduzcan la fragmentación de la memoria, es decir, que permitan satisfacer grandes asignaciones de memoria contigua despues de que el sistema lleve mucho tiempo siendo utilizado. Y es que se trata de una mejora que afecta a la asignación de memoria al más bajo nivel posible, y ha habido mucha discusión sobre como debía hacerse, y los parches se han rehecho mil veces, incluso ha habido parches implementado más de una alternativa. El caso es que por fin se ha incluido, que mucha falta hace (la fragmentación en Linux sin estos parches es horrible) .
  • Drivers para dispositivos inalámbricos: En Linux se añaden drivers continuamente, pero en esta ocasión se ha añadido una buena cantidad: 8, 2.3 MB de código en C, soportando una amplia variedad de dispositivos: Intel PRO/Wireless 3945ABG/BG, Intel Wireless Wifi Link AGN (4965), rt2400 pci/pcmcia, rt2500 pci/pcmcia, rt61 pci/pcmcia, rt2500 usb, rt73 usb, BCM43xx IEEE 802.11G, prism54….además de esos, se incluyen otros cuantos de red pero no-wireless; Intel(R) 82598 PCI-Express 10GbE, E1000E pci-express, IP1000A….

Lista completa de cambios.

SAlu2😉


Acciones

Information

3 responses

6 12 2007
Lo que nos depara el nuevo Kernel 2.6.24 «

[…] Linux al poder, podemos ver un resumen en castellano de las principales mejoras, que podemos resumir tal y como […]

26 01 2008
Nuevo Kernel 2.6.24 « { Sibu }

[…] Mas Información:. Por nefertary […]

11 11 2008
Hardsoft Geek

[…] Fuente. […]

Responder

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: