martes, 19 de abril de 2011

NÚCLEO LINUX-NÚCLEO WINDOWS



Me han pasado por correo electrónico el enlace a kernel Comparison:Linux (2.6.20) versus Windows
 un completo texto comparativo entre el núcleo de Linux (concretamente en su versión 2.6.20) y el kernel de Windows (el artículo se ha actualizado y ahora el kernel corresponde al de Vista).

No es un paper en el sentido de que no explica de pe a pa cada parte, se limita a revisar opciones de cada núcleo y compararlas. En verde tenemos las opciones que son mejores o más flexibles en un núcleo frente al otro, en rojo las que son peores y en negro las que son neutrales o tienen cierta controversia detrás.

En las discusiones típicas de “Windows vs Linux” suelo ver como algo habitual que se limiten a facilidad de uso, programas de terceras compañías (software, juegos, etcétera) y algo de FUD por en medio pero nunca se comenta cosas como el núcleo, algo que suele ser muy importante.

Quizá no se comenta porque nadie duda de la superioridad técnica del núcleo Linux frente al de Windows… o directamente porque la mayoría de las mismas son poco técnicas y más un “me gusta por…” o “no me gusta por…” y claro el núcleo puede ser mejor o peor pero de ahí a gustarte… aunque seguro que un “kernel vanilla” debe estar sabroso :P

Algunos datos que me llaman la atención son por ejemplo las llamadas del sistema (system calls), mientras Linux tiene 320 Windows tiene más de 1000. A simple vista no se puede sólo por el dato comparar si esto es mejor para uno u otro, pero el hecho de que los desarrolladores no se suelan quejar de las llamadas del sistema en Linux me hace pensar que “tienen lo que necesitan”. Si estoy en lo cierto, el número abultado de llamadas en el kernel de Windows debe ser por mantener la (arcaica) compatibilidad hacía atrás lo cual como ya he dicho en anteriores veces vuelve el diseño muy complejo y propenso a errores.

Otro dato interesante es el tiempo de desarrollo, cada “versión menor” (en el caso de linux los 2.6.x) dura 3 meses en linux y 31 en Windows. En las versiones mayores la cosa ya se balancea menos: Linux tarda 35 meses y Windows 38. Aquí se puede observar lo que decía Linus Torvalds (si no me falla la memoria): lanza versiones rápidamente, continuamente.

El tamaño en líneas de código en Windows aumenta en cada versión (actualmente 10 millones de líneas) de forma exagerada aunque Linux en cada versión mete soporte para mucho hardware sin que aumente el número tanto (4 millones actualmente) osea que no sé que pensar. El número anterior es sin drivers, si incluimos los drivers los números se disparan y la diferencia también (Windows 25 millones, Linux 8).

El tamaño resultante del kernel (sin drivers/módulos) también es exageradamente, Linux ocupa 1.3MB frente a los 4.6MB de Windows.

Seguimos con más datos, a destacar el número de arquitecturas soportadas donde Windows literalmente es machado: Windows soporta x86 (los ordenadores de toda la vida), AMD64 y IA-64. Linux soporta ésas y además otras 14 arquitecturas sin contar consolas.

No hay comentarios:

Publicar un comentario