Monday, June 19, 2006

Salió Linux 2.6.17

Bueno... Ayer a la noche salió Linux 2.6.17. Con una cantidad de cambios impresionantes (Más de 3mb el changelog).
Venía esperando la liberación de este release hace más de 2 meses, porque junto con él se venía la estabilización del nuevo stack 802.11. Pero nunca pensé que tardaría tanto. Navegando ayer a las 2AM le di reload a kernel.org en el firefox y salió el release final. Inmediatamente me puse a bajarla y mientras miraba el changelog.
Pero una vez que empecé no paré, tardé dos horas leyendo el changelog (mejor hubiese sido haber esperado a que saliera el resumen en kernelnewbies :D). A las 4AM me digné a adaptar mi configuración de 2.6.16.1 a el nuevo kernel (make oldconfig en cristiano :D). Cuando terminó , checkeé el make menuconfig para ver cambios y cosas que por ahí me había salteado en la adaptación.
Lo compilé en 15' aproximadamente, y lo agregé a lilo como Kwort-Test (Hoy ya está como kernel único además del openbsd, 2.6.16.1 fue borrado :D).

Los cambios son verdaderamente impresionantes como dije antes. Desde luego, para muchos el cambio más importante es la inclusión del driver para las placas wireless broadcom, que debo acotar que anda bárbaro. Además se han agregado nuevas llamadas a sistema. Ahhh, una cosa importante que me olvidaba para los usuarios de sistemas x86, se agregó el soporte para la autodetección SMP al momento de booteo, que podríamos decir que era una feature que estaba bastante requerida.
Entre otros cambios hubieron mejoras de performance en ext3 para poder asignar y controlar más de un bloque a la vez.
Otro cambio, si bien no tan importante, pero si para tener en cuenta es que se bajó en softmac la velocidad por defecto de 54Mbps a 11Mbps dado que la primera aun no es del todo confiable (se pierden paquetes de vez en cuando en el camino).
También se modificó la libata, por defecto ahora arranca en ATAPI. Para los desarrolladores también se agregó el miembro max_sectors a la estructura per-devices, con esto ahora podemos saber el máximo de sectores sin tener que hacer más ap->host->max_sectors y cambiar ATA_DFLAG_LOCK_SECTORS para que le diga ata_scsi_slave_config que no pase el límite, que no solo era molesto, sino que incorrecto para hosts que tenían más de un dispositivo por puerto. Por defecto per-devices->max_sectors, por lo que no será necesario modificar módulos existentes.
Entre otros podemos ver mejoras para el framebuffer en placas de video nvidia y nuevo soporte para "algunas" placas ati. También se incluyó soporte para dispositivos braile y la nueva interfaz de leds (para permitir el seteo de leds en userspace (no solo de teclado como antes con setleds), sino para los leds como por ejemplo del disco rígido, de pladas pcmcia, etc) ya es estable. Se mejoraron también las llamadas poll() y select(), para monitorear descriptores de archvios que desde 2.0 no se actualizaban, ahora usan pequeños vectores para sets chicos en vez de kmalloc.

Cuando empecé a seguir el desarrollo del driver bcm43xx no se tenía decidido que licencia usar, si gpl, bsd, si una licencia doble, etc. Para desgracia para algunos (como yo), podemos corroborar que el driver se licenció bajo GPL solamente:

nomius@Neptune:~/Code$ grep MODULE_LICENSE /usr/src/linux-2.6.17/drivers/net/wireless/bcm43xx/bcm43xx_main.c
MODULE_LICENSE("GPL");
nomius@Neptune:~/Code$

Bueno, esto es un resumen pequeño de los cambios. Si hay interesados en ver mejor y otros cambios les recomiendo ver el changelog en kernel.org y seguir kernelnewbies.org (formato más liviano :D) , para los que quieran empezar a dar sus primeros pasos en la programación del kernel, kernel-labs.org tiene una buena introducción (No es muy complicado para los que quieran aprender. Y vamos que se necesitan siempre desarrolladores más que charlatanes :D).

No comments: