07 abril 2008

El Nuevo kernel 2.6.25



Esto es solo un resumen de lo que nos ofrecerá el nuevo Kernel 2.6.25 de Linux son muchas mejoras bastante buenas, espero poder usarlo pronto:

  • RCU "apropiativo" (preemptible): RCU es un sistema de sincronización que permite a Linux escalar a máquinas con miles de procesadores. Sin embargo, una parte del sistema de RCU no es "apropiativo", es decir, no puede ser interrumpido mientras se ejecuta. En 2.6.25 se puede elegir entre el RCU clásico y el nuevo, que es apropiativo. Este nuevo sistema ha sido desarrollado a la sombra de los esfuerzos que tratan de hacer que Linux sea un SO de tiempo real.
  • Real Time Group scheduling: En el Kernel 2.6.24 se introdujo un sistema que permitía organizar las prioridades de CPU de manera mucho mas flexible. En el 2.6.25 se ha extendido este sistema para que pueda manejar, además de los procesos "normales", los procesos SCHED_RT, es decir, de tiempo real, y trate de satisfacer sus necesidades especiales. (Además de esto, se ha mejorado el sistema de balanceo de procesos entre CPUs del gestor de procesos, para gestionar mejor las necesidades de los procesos de tiempo real - como se puede ver, hay mucho movimiento alrededor de este tema)
  • Memory Resource Controller: Basado en la misma infraestructura de configuración que el anterior punto (cgroups), esto permite configurar algunos aspectos de la utilización del recurso de la memoria a grupos de procesos elegidos al azar.
  • Spinlocks FIFO: Los spinlocks son una de las principales herramientas de sincronización en Linux: cuando un proceso adquiere un spinlock, hasta que no lo suelte el resto de CPUs que intente adquirirlo a petición de un proceso entrará en un bucle cerrado. Con los nuevos Spinlocks FIFO (solo x86), las CPUs consiguen permiso para adquirir el spinlock en el mismo orden en el que le solicitaron por primera vez. Esto permite asegurar que ninguna CPU es discriminada por otras y hace que los spinlocks sean un poco más deterministas.
  • Nuevas herramientas de medición de memoria: En el 2.6.25 cada proceso exporta en /proc información sobre las páginas que ese proceso está utilizando. Comparando esa información con la de otros procesos se puede conocer con mayor exactitud el uso de memoria de cada proceso.
  • timerfd(): Tradicionalmente en Unix las notificaciones de eventos del temporizador se hacen mediante señales, lo cual es muy engorroso. Para solucionarlo, los sistemas UNIX modernos han incorporado sistemas, como FreeBSD/OSX con kevent, y Solaris con un sistema similar. En linux se ha optado por una solución más "unixera": con timerfd() se pueden programar eventos en el temporizador, obtener un descriptor de archivo, y utilizar poll/epoll/read con esos descriptores.
  • Latencytop: Se trata de una pequeña infraestructura que permite visualizar cuales son las fuentes de latencia máxima en el Kernel. El programa para poder verlas se encuentra en latencytop.org.
  • SMACK (Simplified Mandatory Access Control): Se trata de un sistema de seguridad basado en los mismos principios que SELinux, pero menos capaz y más sencillo de configurar. Al igual que Linux tiene varios sistemas de archivos, ahora tambien habrá varios sistemas de seguridad para que la gente elija el que más le convenga, visto que SELinux no complace a todo el mundo.
  • Randomización de ejecutables PIE y del BRK: La ubicación de la memoria manejada por brk() y por ciertas secciones de los ejecutables PIE (Position Independent Executable) se decide de manera aleatoria.
  • Actualización de Ext4: Asignación múltiple de bloques, mayor tamaño máximo de bloque, checksumming en el journal, soporte de sistemas de archivos y archivos de mucho mayor tamaño. Con esta actualización ya esta casi todo de lo que traerá Ext4, de hecho ya están todas las que cambian de algun modo el formato del sistema de archivos en el disco, pero aun faltan algunas como delayed allocation.
  • Arquitectura MN10300/AM33: Soporte para una nueva arquitectura que no la conoce ni el que la inventó.
  • Regulación Termal de ACPI: No se exactamente lo que hace, pero Linux lo soporta. Adicionalmente se añade soporte para WMI, una extensión propietaria de ACPI hecha por Microsoft.
  • Protocolo CAN: Para sorpresa de todos, Volkswagen ha decidido contribuir con una implementación de CAN (Controller Area Network), un protocolo de red muy raro.

No hay comentarios:

kaeltas blog