En general, en el mundo Linux, los números de versión par (2.2, 2.4, 2.6,...) señalan versiones estables y finalizadas del núcleo, mientras que los números impares (2.3, 2.5,...) indican versiones de desarrollo, en las cuales se han incorporado funcionalidades para que sean testeadas por los usuarios y que aún están en fase de prueba. Es por eso que normalmente todas las distribuciones comerciales incluyen por defecto un núcleo estable precompilado y, opcionalmente, una o más versiones de desarrollo que el usuario puede compilar y utilizar a su propio riesgo y cuenta.
Este artículo se basa mayormente en las funcionalidades disponibles en el kernel 2.5.75, aunque en la versión final del 2.6 podrían darse ligeros cambios.
Soporte para más plataformas
Es indudable que la penetración de las computadoras de mano (PDAs) en el mercado es imparable, y que hasta ahora (y con la sana excepción del Zaurus de Sharp) el panorama se ha visto monopolizado por dos sistemas operativos: el Pocket PC de Microsoft y el Palm OS. Con esta nueva versión del kernel se optimiza el funcionamiento de Linux en dispositivos portátiles, adaptando buena parte del código del proyecto uClinux. Los nuevos procesadores soportados son la serie m68k de Motorola (Dragonball y ColdFire), Hitachi H8/300 y NEC v850.
El soporte para chips AMD Opteron de 64 bits, que fue introducido en la versión 2.4 del kernel, ha sido muy mejorado, permitiendo ahora por ejemplo la ejecución de programas de 32 bits. Además, también se ha mejorado el soporte para chips Crusoe de Transmeta, Pentium 3 Mobile, Pentium 4 Mobile y Pentium 4 Xeon de Intel, y toda la gama de procesadores portátiles de AMD.
Subarquitecturas
También se introduce el concepto de subarquitectura, que ya estaba presente en el kernel 2.4 aunque no bajo este nombre. Si hasta ahora se suponía que cada procesador iba ligado a una arquitectura determinada o a un conjunto de arquitecturas (como los procesadores Motorola 68k y las computadoras Amiga o Macintosh), ahora se disocian ambos elementos.
Con esta nueva facilidad se simplifica en gran medida el futuro porte de Linux a nuevas arquitecturas.
Hyperthreading
El soporte para esta tecnología fue introducido en la versión 2.4.17 del núcleo, aunque ha sido un apartado que registrará grandes mejoras en la 2.6.
Mejoras para los sistemas desktop
Pocas dudas puede haber que Linux, después de conseguir dominar el sector de las computadoras servidoras, se ha lanzado a la conquista del mercado de las desktop. Así, no debe extrañarnos que esta nueva versión del kernel aporte novedades que faciliten el uso de Linux al usuario final, como por ejemplo el hecho de que ahora el kernel es también "preemptible". Esto significa que puede ser tratado como una aplicación más, y la ejecución de ciertas operaciones postergada en favor de la ejecución de una aplicación interactiva como un procesador de textos o un reproductor multimedia. El incremento en el rendimiento de las computadoras será notable gracias a esto. Naturalmente, algunas secciones de código no podrán ser interrumpidas en su ejecución debido a su naturaleza y/o a su importancia.
Mejoras en el sistema de drivers
El primer cambio es de tipo cosmético, ya que la extensión de los ficheros de módulos cambiará de .o , empleada también en programación para referirse a los ficheros de objeto, a .ko (correspondiente a kernel object).
El sistema de módulos ha sido uno de los que ha sufrido más cambios, viendo gran parte de su código reescrito, especialmente para hacerlo más "independiente" del núcleo; a partir de ahora los programas externos que trabajan con el hardware, y que normalmente cada distribución incluye, podrán acceder más fácil y cómodamente a cualquier tarjeta o periférico de nuestra computadora.
También se eliminan las diferencias en la gestión de los dispositivos "hot-plug" (que se conectan una vez el sistema operativo ya se ha cargado) o los "legacy" (como las tarjetas PCI, que deben estar conectadas antes de arrancar la computadora).
Para que el usuario pueda interactuar en todo momento con los dispositivos que Linux gestiona, dispondremos de un nuevo sistema de ficheros, /sysfs.
Comunicación sin hilos
Durante los últimos meses hemos asistido a una progresión imparable de los sistemas de comunicación wireless (literalmente "sin hilos"), como las redes Wi-Fi, en todos los sectores. Esto no podía pasar por alto a los desarrolladores del núcleo de Linux, que han estandarizado el tratamiento que reciben los diversos elementos que forman parte de un sistema inalámbrico.
Mejor soporte para diferentes sistemas de ficheros
Se aumenta el número de sistemas de ficheros soportados, y se mejora el soporte para FAT12 y HPFS.
Una constante en cualquier sistema operativo que desee disputarle el reinado a Windows es la posibilidad de leer y escribir en particiones de todas sus versiones y, como es costumbre en Microsoft, Windows XP incluía algunos cambios en el sistema de ficheros a los que Linux ha tenido que acostumbrarse. A partir de ahora el sistema del pingüino incluye soporte para Windows Logical Disk Manager (también conocido como Dynamic Disks) y que es el nuevo esquema de particiones adoptado en Windows XP para facilitar el redimensionamiento de particiones.
Finalmente destacar un nuevo sistema de ficheros, el hugetlbfs orientado a las bases de datos.
Soporte para más periféricos
Cada día crece el número de periféricos diferentes o variaciones de estos que los usuarios tienen a su disposición: ratones con rueda, ópticos, inalámbricos,... Para ellos Linux incluye nuevos controladores.
En la parte de audio destaca la elección de ALSA (Advanced Linux Sound Architecture) como arquitectura por defecto para sonido en lugar de la antigua OSS (Open Sound System).
En el apartado multimedia se ha mejorado el soporte ofrecido en versiones anteriores del núcleo a una serie de dispositivos como capturadoras de TV o webcams, cada día más populares.
Otras novedades interesantes que incluye la nueva versión del kernel son:
- Soporte para PAE (Physical Address Extension), que permite a un procesador de 32 bits acceder a direcciones de memoria de 64, permitiendo montar hasta 64 Gigabytes de RAM en una máquina.
- El número de usuarios y grupos posibles ha crecido desde los 65.000 hasta más de cuatro billones, al igual que el número de PID's (identificadores de procesos), que ha pasado de 32.000 a un billón.
- Permite sistemas de ficheros de hasta 2 Terabytes.
- Se ha reescrito completamente el subsistema de entrada/salida (I/O).
- Imposibilidad de reservar más memoria de la que se tenga instalada en el sistema (RAM+swap).
- Añade soporte para sistemas con más de una tarjeta AGP instalada, como las estaciones gráficas más avanzadas.
- Soporte para USB 2.0 .
- Mejoras en la gestión de buses (IDE, SCSI,...).
- Mayor independencia entre el núcleo y la gestión de periféricos de entrada/salida, lo que es especialmente útil en el diseño de sistemas embebidos.
- Soporte para IPsec.
Por lo que respeta a lo que podríamos llamar "roadmap" (algo así como la "hoja de ruta", una expresión muy usada últimamente) para el lanzamiento del kernel 2.6, inicialmente se había previsto la versión final para estas fechas, y la misma IBM (muy involucrada en el desarrollo de Linux, y eso lo saben bien en SCO...) esperaba poder lanzar sus primeros productos basados en el 2.6 para la segunda mitad de este año. Ahora esta previsión se ha retrasado hasta principios del 2004.
Más información:
Fuentes del kernel 2.6
Linux v2.6.0-test1
The Wonderful World of Linux 2.6