10 cosas que Linux podría mejorar

  1. Dejar de utilizar X11 como el Entorno Gráfico de UsuarioDesktop– ya que no fue creado con ese fin. La filosofía original de X-Window como servidor de un entorno gráfico para aplicaciones dista demasiado de la idea de un Desktop (Sistema de escritorio) personal. El protocolo X, base del sistema X-Window, no está pensado para soportar de forma habitual contenido multimedia. X-Window se ha convertido en un macro-sistema que no debería seguir utilizándose como soporte para las aplicaciones gráficas por la gran cantidad de recursos que consume y la ineficacia con que gestiona determinados contenidos. No olvidarse de que el sistema gráfico sólo es una funcionalidad más del sistema operativo y no debería intentar reemplazar ninguna de sus funcionalidades.
  2. Pasar de un kernel monolítico a un sistema de microkernels. Se ha venido comprobando en los últimos años, en diversos laboratorios de investigación, que un sistema basado en microkernels, además de dotar al sistema operativo de una mayor modularidad, puede ser mucho más robusto ya que se minimiza la dependencia entre componentes. imagínense por ejemplo, poder cambiar el sistema de gestión de procesos (scheduler) en tiempo de ejecución para poder priorizar tareas de Tiempo-Real, o tener varios y elegir entre ellos según el tipo de tarea o la relevancia para el usuario…
  3. Relegar a una parte del sistema operativo la gestión de todos los dispositivos y ofrecer al usuario una visión unificada de los mismos. Esto ya se viene haciendo en parte… Es cierto que gracias a kudzu, podemos detectar cambios en la configuración de los dispositivos, y que determinadas aplicaciones de X11 permiten detectar cuando se conecta una unidad USB y montarla de forma automática, o una cámara, etc. Toda esta funcionalidad actualmente se encuentra desperdigada en distintas partes de Linux. Unas son funcionalidad del sistema operativo (generalmente vía kudzu), y otras lo son de aplicaciones bajo X11… En mi opinión una interfaz de usuario no debería tener que hacerse cargo de la gestión de dispositivos.
  4. Incluir un mecanismo para crear clústers de forma sencilla, y dar al usuario una imagen de que existe una sola máquina, pudiendo utilizar los recursos de todos los componentes de cluster de una forma transparente balanceando de una forma equilibrada la carga. OpenMosix es un parche para el kernel que permite hacer este tipo de cosas. De esta forma se podría multiplicar la potencia de cómputo de forma exponencial en los centros de investigación sin necesidad de recurrir a equipos específicos, a la vez que permitiría sacar partido de los equipos que se van quedando obsoletos en todas las casas.
  5. Utilizar un sistema interno común de representación de la información, y relegar a ciertos componentes incluidos en el sistema operativo las tareas de conversión entre formatos de intercambio. Por ejemplo, para trabajar con imágenes, el sistema operativo podría utilizar una estructura de datos tipo BMP sin compresión para intercambiar la información entre aplicaciones. El propio Sistema operativo podría facilitar librerías para la manipulación de las imágenes en este tipo de datos, y él mismo daría soporte para poder guardarlas o leerlas desde otros formatos de intercambio (jpeg, png, etc). De esta forma se eliminaría la redundancia de código que casi todas las aplicaciones tienen a la hora de abrir/convertir distintos formatos. Eliminar la redundancia de código siempre mejora la coherencia y por supuesto la fiabilidad del código.
  6. De forma similar a lo anterior, utilizar un sistema interno para la gestión de protocolos de forma transparente. Por ejemplo, el propio sistema operativo implementaría el protocolo FTP/BitTorrent/etc. y gestionaría el intercambio de ficheros con otras máquinas de forma transparente al usuario. El desarrollador no necesita implementar los protocolos de comunicaciones en sus aplicaciones, si no que los relega al sistema operativo, mientras que el usuario no tiene por qué saber cómo se está realizando la transferencia. Esto no sólo se tiene que ver como protocolos de transferencia de ficheros, sino para todos los protocolos que se utilizan actualmente.
  7. Intentar seguir una filosofía KISS (Keep It Simple, Stupid!) en todos los niveles del sistema operativo. Muchas distribuciones intentan seguirla, pero habría que llevarla a la práctica más en profundidad. Pensemos que tras esta filosofía se encuentra el principio de la Navaja de Occam: “La solución más simple que resuelve un problema suele ser la mejor”. Intentar reducir la complejidad de las aplicaciones eliminando código redundante o frecuente en ellas, siempre es una ventaja. Intentar unificar código y posturas similares!!!
  8. Tomando como referencia el sistema de scripting que posee MacOs X, desarrollar un lenguaje de scripting para el sistema operativo y sus aplicaciones, que permita definir ciertos eventos y actuar ante ellos de forma automática. Cuanto más sencillo y visual sea este lenguaje de scripting mejor (sin dejar de perder potencia).
  9. Muchas distribuciones ofrecen paquetes precompilados (Ubuntu, etc) para que el usuario no tenga más que instalarlos y poder empezar a funcionar con ellos. Otras prefieren distribuir el código fuente para optimizarlo (Gentoo) a la arquitectura final, pero el proceso de compilación suele ser demasiado largo. Quizá fuese mejor una solución mixta que incluyese los paquetes precompilados para su uso inmediato, y el código fuente para su compilación (en caso de que se quiera optimizar). La compilación se haría de una forma transparente al usuario y en un modo background que no interrumpiese el funcionamiento normal de la máquina.
  10. Utilizar un sistema centralizado para la gestión de contraseñas a modo “llavero” de una forma similar a la que lo implementa MacOS X para facilitar la organización de la ingente cantidad de contraseñas y permisos que se necesitan para trabajar en red.

Matizando…

En conjunto estoy de acuerdo con la gran mayoría de lo expuesto, no obstante me gustaría matizar algunas cosas. En primer lugar creo que lo más urgente en Linux antes de perderse por vericuetos de precompilaciones, microkernels y gestión de protocolos es una inmediata unificación de criterios. Pensemos por un momento la enorme confusión que genera en un usuario recién llegado al mundo Linux la disparidad de paquetes (deb, rpm, tar.gz…) con los que se encuentra para instalar una aplicación y sobre todo la forma tan distinta de utilizarlos. Unificar todo ello en un solo sistema de paquetes (deb por muchas razones pienso que debería ser el elegido) es algo primordial. Muchas distros, muchas filosofías y muchos modos de hacer las cosas significa confusión para los novatos. Y el progresivo acercamiento de esos mismos usuarios novatos es lo que hace que Linux tenga cada día más peso en el mundo de la informática a nivel usuario.

Todo el que me conoce y ha leído algunos de los tutoriales del blog sabe que sin ser un purista de la consola, si que recomiendo fervientemente su uso. Yo mismo rara vez uso synaptic (por ejemplo) o muevo o copio archivos desde nautilus. Siempre salgo a la consola. No obstante una nueva unificación de criterios a la hora de generar instaladores como el mencionado Synaptic o paquetes autoinstalables con Autopackage (o el formato que unifiquemos entre todos) es de igual modo esencial para seguir atrayendo usuarios. Si Ubuntu ha conseguido lo que ninguna otra distro en estos últimos 3 o 4 años, imaginemos por un momento el boom que podría significar algo como lo que comento.

No nos confundamos, la verdadera revolución LINUX tiene que llegar de la mano de una sola cosa: sencillez. Y para ello es absolutamente necesario la unificación de criterios y procedimientos. Sencillez que además, tratándose de Linux, no está reñida con la estabilidad ni la potencia, ni por supuesto con la filosofía Open Source. El día que consigamos esto, el verdadero boom Linux será imparable.

Visto en :elblogdemaverick

Anuncios

No comments yet

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: