lunes, 14 de diciembre de 2009

¿Porqué Linux es mejor que Windows? Rendimiento

Otra afirmación constante en el mundo de la informática es "Linux tiene un mejor rendimiento..." ¡aja! pero ¿qué es mejor rendimiento? ¿para quién es mejor rendimiento? Quizás las palabras mágicas que se nos vienen a la cabeza son velocidad y eficiencia ¿verdad?



Pues bien, el sistema operativo del pinguino se enorgullece de su rendimiento debido a varios factores:

Modularidad

El sistema operativo del pinguino está construido por partes, las cuales pueden habilitarse o deshabilitarse en su mayoría a voluntad... así por ejemplo, una empresa dedica un equipo a la base de datos, por lo que puede prescindir enteramente de la interfaz gráfica (entre otros artilugios) para maximizar la capacidad y operación de su servidor.




Claro, ¡genial en una empresa! pero ¿cómo carajos puedo aplicar eso en la vida diaria con mi computador casero? Los límites están en tu mente, pues para empezar puedes escoger un entorno de escritorio que varía entre apariencias modernas y por supuesto más pesadas como KDE y algunas más conservadoras pero livianas como Gnome y XFCE.

Luego de la misma forma, escoges los servicios y el software a tu gusto... por lo que tu computador siempre contará con lo necesario para ser productivo... con un bajo impacto en el rendimiento.

Gestión de memoria

La gestión de memoria en GNU/Linux es uno de los puntos fuertes del pinguino... pues a través de su paso por los años y la colaboración de miles de programadores alrededor del mundo han concebido una gestión de memoria supremamente eficiente.

La memoria RAM por defecto se reserva en su mayoría para operaciones de lectura y escritura (caché de disco) optimizando los accesos al disco duro; cuando un programa se abre sencillamente se asigna su espacio en la RAM (recuerda que está reservada más no ocupada el 100% del tiempo) y una vez se cierra el programa libera inmediatamente sus recursos.

Así otro programa que se ejecute encontrará recursos disponibles... y siempre tardará un tiempo constante en abrirse.

En contraste Windows no libera la memoria inmediatamente al cerrar un programa, sino que se mantiene en caché aumentando significativamente la  velocidad del mismo al volverse abrir, pero resintiéndose enormemente el rendimiento tras unas horas de operación, pues el caché se ocupa, y si la aplicación no está en memoria, se tarda más en limpiar y volver a asignar recursos.

Por supuesto, esto ha venido mejorando en cada versión de Windows... pero que levante una mano a quien no le haya tocado reiniciar Windows por que se puso lento... ¡por fin una razón científica par ello!

Por otra parte la gestión de memoria virtual (aquella que se usa para mitigar la falta de RAM) también es una punto fuerte del pinguino... en Windows se crea un archivo el disco duro local (usualmente C:/) llamado pagefile.sys. Allí se escriben todos los datos "que no caben" en la RAM... se llama archivo de paginación.

En cambio en GNU/Linux este archivo de paginación se hace en una partición diferente dedicada llamada SWAP. Esta partición cuenta con un sistema de archivos especial para operaciones de lectura y escritura intensivas y además por tratarse de una partición diferente reduce la contienda del sistema operativo por tener acceso de E/S a la unidad.

Adaptabilidad sin límites

Quizás la mayor ventaja de Linux sea su misma naturaleza libre... pues permite a cualquiera descargar y adaptar el software a sus necesidades y de paso optimizar el rendimiento.

Descargar y compilar el código no sólo implica la capacidad de decidir qué va y que no va en el sistema operativo sino además la capacidad de optimizarlo para un sistema específico. Por ejemplo el código puede ser compilado para un juego de instrucciones específico, por ejemplo para Pentium 4o  Intel Core 2 Duo sacando mucho más provecho de los procesadores más modernos.

Por defecto la mayoría del software viene compilado de forma "genérica" para abarcar tanto público como sea posible... pero por este medio siempre se puede obtener más provecho.

El sistema de archivos

También el sistema de archivos juega un papel vital en el desempeño y confiabilidad del sistema e indica la forma como el sistema operacional guarda los datos físicamente en el disco duro.



Windows usa NTFS (NT File System), un sistema, ya por cierto antiguo (desde 1993) que se caracteriza por ser entre otras cosas bastante desordenado... por esta razón es necesario desfragmentarlo con regularidad.

Linux utiliza ext4 (puede usar varios pero Ext es el más extendido) presentado en 2008 (recién salido del horno) que cuenta con registro por diario (Journaling) y con una excelente cohesión por lo que virtualmente no necesita ser desfragmentado.

No obstante, ext4 puede manejar discos y archivos de tamaño mucho más grandes que NTFS, por lo que aún con una fragmentación relativa por debajo del 10%, se consideró necesaria la inclusión de una herramienta de desfragmentación en línea... optimizando aún más el rendimiendo de los discos duros.

Escalabilidad

Finalmente, la misma capacidad de adaptibilidad de Linux lo hace apto para operar tan bien en computadoras que considerariamos obsoletas como en equipos de última generación... ahorrando costos e inversión en la empresas, y... ¡salvando el mundo! ante el impacto ecológico que conlleva extender la vida útil de un computador por uno o dos o más años.

¡Salva el mundo! ¡Adopta un pinguino!

No hay comentarios:

Publicar un comentario