Linux es tan 2008: Introducción a las alternativas

Estándar

Un sistema operativo, ¿qué es? Millones de personas te lo definirán como “el Microsoft ese”, lo cual en cristiano geek podría denominarse “el escritorio Windows”. Algunos van un poco más allá y te diferencian entre Windows, Mac y Android. Los que más saben hasta te meten “Linux” en la lista. Pero pocos saben realmente qué es un sistema operativo, y por tanto qué te ofrece, cómo funciona y por qué es importante.

¿Qué es un sistema operativo? Pues son programas que te ofrecen lo “básico”. Eso es todo. Aunque, de sobra evidente, esta definición se observa bajo un criterio muy subjetivo. Si intentamos ser un poco más profesionales, podríamos decir que está formado por un gestor de arranque, un kernel, sus drivers, las librerías nativas, un conjunto de herramientas y una interfaz de usuario. Que en el fondo es decir lo mismo, pero más geek. De todas maneras, esta definición sigue estando abierta a una combinación tremenda de funciones, diseños y conceptos en general. Es por ello que no hay únicamente un sistema, que hay espacio para una combinación abismal de sistemas: el software, como dijo Keith Curtis, es infinitamente maleable. Puedes hacerlo de cualquier manera, usando unas herramientas u otras, con una distinta jerarquía en el código fuente, que use este u otro algoritmo, que se presente al usuario así o asá, que incorpore características o sea más simple… la tremenda libertad creativa permite que un ordenador pueda ser tanto como el ser humano sea capaz de aprovechar de él, y esto se ve claramente representado en el sistema operativo.

A todo esto, quiero decir que no tenemos que pensar que un sistema operativo es algo que está ahí, estático e inmutable. Windows, OS X, (GNU)Linux, iOS, Android… ahora están ahí y son así, pero los últimos 10 años demuestran claramente que siempre hay una tendencia al cambio y a la evolución. Al fin y al cabo, Windows era el rey hace nada, y hoy día el kernel más popular es Linux (no en el escritorio, pero vamos).

Pero a todo esto: sí, muchos hemos apostado todo este tiempo porque los sistemas tipo (GNU)Linux han de destronar a Windows, debido a su alta calidad en comparación (seguridad, estabilidad, personalización, variedad, calidad de código). Pero seamos sinceros. ¿De verdad Linux es ya la solución?

Linux se creó un poco con la idea de clonar Minix, siguiendo los estándares de UNIX. Teníamos las herramientas de GNU, la metáfora “todo es un archivo”, el clásico servidor X11… esto, claro, a principios de los 90, porque rápido empezó a engordar: Qt y GTK+, SELinux, herramientas tipo LLVM, LXD, zRAM, systemd, kPatch… como unos pocos ejemplos importantes. Junto con la cantidad masiva de drivers en el kernel, se evidencia así que Linux ha engordado demasiado. No tenía un rumbo fijo, y las bases de UNIX (ya de por sí bastante deterioradas debido al acomplejamiento que sufrió entre los 80 y los 90) se han perdido totalmente. No hay forma alguna de salvar el desastre: Linux se derrumba poco a poco. A medida que se van añadiendo ideas sin un concepto claro de cómo encajarlas, los sistemas operativos engordan, se vuelven más lentos y al final pierden practicidad. De esto no nos salva ni la ley de Moore (que, por cierto, parece ser falsa, como van demostrando los últimos Intel y los procesadores de Adapteva).

¿La solución? Hay que comenzar de nuevo. Otro sistema operativo ha de surgir. Que Linux se quede para los “geeks no-freaks”, si es que eso existe, y a lo mejor al usuario del hogar. Pero necesitamos algo diferente: más puro, eficiente, sencillo, potente y productivo. Vamos, mejor. Y como el software se puede hacer de infinitas maneras, es posible crear infinitos sistemas operativos. De hecho, es bastante probable que ya exista la alternativa, aunque no sea muy conocida ni entre los “enterados” de la informática.

Se me han venido tres alternativas tanto a Windows como a Mac/iOS y Linux en general, después de hacer mis (re)investigaciones.

La primera es ReactOS. Me diréis “eso es un clon de Windows NT, es feo, ¡feo!, ¡te odio!, ¡nuestra relación no tiene sentido!, ¡te hice los cuernos y me encantó!”. Vale, vale, entiendo vuestra furia. El Registro es feísimo. Pero después de todo, ReactOS tiene unas ideas que seguir estrictamente, y así pulir el sistema tanto como sea posible. El propio kernel no está mal diseñado, y de hecho es una de las pocas cosas que en Microsoft se dedicaron a trabajarlas. Y en realidad, ni es necesario mantener Win32: existe la posibilidad de mantener NT como el núcleo ligero y rápido que ya ha logrado ser (más estable, plis), y construir sobre él unas APIs más simplificadas, jerarquizadas y útiles. Vamos, algo como WinRT, pero que la gente se tome en serio. He estado experimentando con las últimas SVN de la 0.4, y todo parece ir bastante bien, así que confío en la posibilidad de que un día nazca un proyecto basado en ReactOS que cambie las reglas del juego (y no, no es WôÓS).

Luego tenemos ya una alternativa más seria. Haiku. Al igual que ReactOS clona a Windows, Haiku clona a BeOS. La diferencia entre Haiku y Windows, por tanto, es que en Haiku se copian buenas ideas. Esto es muy fácil de comprobar usando el sistema y creando un programa sencillo en C++. El cambio entre NT y Haiku es abismal, y el sistema poético gana por goleada. Es obvio que las tecnologías que este proyecto ha adoptado son dignas de que la propia Google les financie mediante las GSoC, y otras tantas donaciones como los Mac Mini de Mozilla. Es difícil describir lo bello que es este sistema operativo mediante palabras, es algo que hay que experimentar por uno mismo. La armonía en las bibliotecas, en las herramientas, en el kernel, el gestor de ventanas integrado, las interfaces gráficas de las aplicaciones, la configuración… es todo muy bonito y refinado, al igual que un haiku. Sé que el sistema no se llama así por ser metafórico, pero no podría tener nombre mejor.

Y por último, Plan 9 (que ejecuto, eso sí, como su fork 9front). Este sistema es ampliamente ignorado y minusvalorado, así que hay que tratarle con cuidado. Es demasiado inhabitual jugando en contra de los conceptos de WIMP y de diseño tradicional de sistemas. Digamos, que si Haiku es limpio, Plan 9 es impoluto, aunque su cara no sea muy de hacer amigos. O sea, tecnológicamente hablando es casi perfecto, aunque para el usuario pueda resultar caótico a simple vista. Esto se debe a que ha sido desarrollado por Bell Labs como un comienzo nuevo tras los desastres de UNIX. Muchos de sus conceptos fueron reutilizados y otros nuevos se añadieron, buscando siempre la máxima simplicidad en todo el sistema, desde el detalle más oscuro del código fuente hasta el gélidamente vacío escritorio. Implementa el concepto de “todo es un archivo” hasta el límite (puedes hacer capturas de pantalla copiando el archivo del display, y que un servidor FTP se use como una carpeta más dentro del sistema de archivos), utiliza un dialecto de C atípico pero práctico, su gestor de ventanas Rio es increíblemente flexible y simplista (que ni siquiera minimalista)… Todo esto se traduce en un software de calidad increíblemente excelente, pero por desgracia difícil de ser apreciado.

¿Cuál es mi propuesta para reemplazar Linux entonces? Bastante flexible, siguiendo tres conceptos para definir al usuario de ordenador (sí, no hablo de un único sistema que haga todo, eso sería muy estúpido, porque no existe una única solución para todos):

  • Playblock: En este grupo entra la informática “del hogar”, esto es, entretenimiento y ofimática básica. Debido a su simplicidad, limpieza y alto rendimiento, Haiku es la solución a nivel teclado/ratón (ya veremos qué hacer con interfaces táctiles).
  • Workblock: Aquí entra el que trabaja en ofimática avanzada, diseño gráfico, creación de multimedia o programación para trabajo. Tanto NT como Haiku pueden cumplir lo que el usuario busca, esto tendría que resolverse por cada caso individualmente.
  • Hackblock: Es el grupo de los hackers, de los que programan por diversión y se ponen a enredar cada cosa que se les ocurra. No tengo ninguna duda, Plan 9 es la solución ideal, es una especie de playground gigante donde hacer cualquier cosa que se te ocurra. Y además, es un buen desafío 😛

Y a todo esto, hace falta una conclusión. Linux ha envejecido ya, dejadle morir antes de que se ilusione demasiado con su fama. Ahora mismo necesita mucha optimización para ser un gran sistema, en unos años puede que no sea posible. Así que es mejor dejar paso a nuevas ideas. He propuesto las mías, cada cuál que decida qué es mejor. ¿Que MenuetOS es el mejor sistema porque tiene un rendimiento supremo y puede funcionar de sobra en sistemas embebidos y miniordenadores? ¿Que a lo mejor prefieres AmayaOS porque es más chulo? Bueno, son propuestas. En cualquier caso, sean mis ideas buenas o no, que se reemplacen las que se pensaban que eran mejores, porque han fallado.

Y yo ni me di cuenta hasta hace unos pocos días.

¡Feliz año nuevo 2015!

P. D.: Sí, se me ocurrió GNU HURD. Pero es que ni ellos están interesados en que surja algo útil. Poh vale.

Anuncios

7 comentarios en “Linux es tan 2008: Introducción a las alternativas

  1. Bueno, a ver. Me parece que es una megaparrafada talibanesca (porque no tiene otro nombre) en el que, no conoces realmente los orígenes de Linux (kernel que surge como un proyecto de fin de carrera de nuestro amigo Linus Torvalds y el cual se BASA, que no clon, en MINIX, pero siendo liberado este como un kernel libre), ni tampoco que la nomenclatura correcta es GNU/Linux, GNU no va entre paréntesis. Linux es el kernel o núcleo, GNU, el proyecto que llevó a cabo TODO lo que hay sobre el kernel, ya sea la shell, el gestor de ventanas, el entorno de escritorio, etc.

    Luego, ¿qué es un SO? Tu definición se aleja mucho de la realidad. Un sistema operativo es, a fin de cuentas, un software que hace de intérprete entre el hardware y el usuario, siguiendo una serie de métodos y pautas concretas. Este a su vez está separado en capas, en el caso de cualquier distribución GNU/Linux, por ejemplo.

    “Windows era el rey hace nada, y hoy día el kernel más popular es Linux (no en el escritorio, pero vamos).” Te escucho. Porque, Windows sigue siendo el rey en escritorio prácticamente, mientras que en servidores, GNU/Linux gobierna. No hay más que mirar los rankings. http://blog.uchceu.es/informatica/ranking-de-sistemas-operativos-mas-usados-para-2014/

    Depende mucho del ámbito que sea más o menos usado un SO. Pero si nos ponemos a hablar del puto amo, el que manda, el verdaderamente más usado, entonces deberíamos hablar de TRON (https://doblejotablog.wordpress.com/2013/01/22/el-sistema-operativo-mas-usado-del-mundo/) usado en prácticamente CUALQUIER dispositivo electrónico que te encuentres.

    Siguiendo, te basas en la idea de que un sistema operativo eficiente debe correr con cualquier hardware, el que sea, por minimalista que sea este. Tachas a GNU/Linux de “pesado e ineficiente”. Digo yo, ¿qué experiencia tienes dentro del mundo del software libre? ¿Sabes que el hardware evoluciona, y que el software crece con este, y no al revés? Porque, macho, creo que no tienes ni idea de lo que hablas…

    Por otro lado, Haiku no nace como un clon de BeOS. He trabajado con Haiku desde que era un alpha. Haiku empezó como la versión libre de BeOS (de hecho, el nombre original era OpenBeOS) pero con el tiempo pasó a cambiar su nombre comercial por motivos legales. ¿En serio te cuesta tanto leer un poco antes de escribir…?

    Y ya para terminar. Ofreces “alternativas” a GNU/Linux basándote en los requisitos del usuario. ¿Sabes acaso CUANTÍSIMAS distribuciones Linux existen? Cada una pensada y adaptada para un hardware y un público. Me meto mucho con Ubuntu, pero por ejemplo, ahí tenemos el Linux perfecto para el que no tiene ni idea, o pretende usar un ordenador para uso doméstico básico (ofimática y multimedia). ¿Quieres un sistema de trabajo de oficina o desarrollo multimedia? Ubuntu Studio, Fedora. ¿Una distro pensada para seguridad? Creo que no conoces Backtrack.

    Pero lo que más me mata es, ¿que Linux está muriendo? PUF. Entonces es que no conoces la PEDAZO DE COMUNIDAD que hay detrás de GNU y de TODO EL SOFTWARE LIBRE que conforma las diferentes distribuciones. Sinceramente, creo que es el artículo más estúpido que he leído en mucho tiempo, y digno de un fanático que acaba de conocer ReactOS y Haiku y por ser diferentes y menos conocidos, ya los considera lo más. Vamos, un artículo del típico crío hipster que va de geek por la vida porque sabe programar un hello world en C++.

    ¡Un saludo!

    • Conque una “megaparrafada talibanesca”, ¿eh?… Se nota que no interpretas bien mi percepción ni mi lógica. Algo normal, puesto que no posees mi conciencia.

      Sé de sobra que Linux comenzó como un proyecto para el IBM de Linus, que extrajo conceptos de Minix, etc., incluyendo detalles como el debate monolítico vs microkernel. No necesito explicaciones.

      Sé que la Free Software Foundation acuñó el término GNU/Linux para describir TODOS los sistemas Linux, pero como más allá de las librerías C no tienen por qué tener nada que ver con GNU, y en especial en su filosofía, sencillamente les denomino (GNU)Linux. Así puedo agrupar sistemas que sean verdaderamente GNU, o que sencillamente posean compatibilidad a nivel básico.

      Tu definición de sistema operativo implica la veracidad de la mía: un conjunto de programas que hacen el ordenador usable.

      Y sí, Windows en escritorio, (GNU)Linux en servidores. Te olvidas de Android. Y no conocía TRON, y me pregunto cúan alta será su calidad. Lo investigaré en otro momento.

      Linux, ahora mismo, puede correr en condiciones extremadamente livianas (bajo hardware de mediados de los 90, si compilas a mano el sistema operativo). Pero es que el problema es su deterioro a largo plazo. A medida que se crean más drivers y se va haciendo más dependiente en más tecnologías que no tienen una estructuración armónica entre sí, sencillamente se va de las manos. A saber en qué acaba convirtiéndose.

      Llevo usando Haiku desde hace años. Sé bien sus orígenes como OpenBeOS y la futura transición a nuevas versiones de GCC que romperá con la retrocompatibilidad. No necesito leer nada que no haya leído ya. Ah, y la última versión “estable” sigue siendo una alpha.

      Y otra vez, sé de sobra el vasto mundo que es (GNU)Linux. Lo digo porque me he descargado cosas como Antergos, CrunchBang, Molinux, ALT Linux, SliTaz… y hasta he creado mis propias distros (con SUSE Studio, eso sí). Entiendo de sobra lo adaptable que es una distribución. Pero es que, en este caso, oriento mi división playblock/workblock/hackblock según las tecnologías inherentes a cada sistema operativo. Puede que no encuentres ReactOS ideal para ejecutar tus propias aplicaciones embebidas, por ejemplo, o que Plan 9 no sirva para crear el media center perfecto.

      Linux se muere, tecnológicamente hablando. Lentamente, mientras se va haciendo más pesado y no se sirve de ninguna orientación (menos mal que al menos ahí está Torvalds). Y precisamente, quizás uno de los defectos es su abismal comunidad, que impide una organización más rígida. Digo “quizás”, porque no he experimentado de primera mano cómo se organiza una comunidad de cientos de miles de programadores, pero se hace evidente que cuanta más gente más difícil es arbitrar.

      Tendré 17 años, pero de crío nada. Y aunque tenga un Mac, eso de los estereotipos no me atrajo nunca.

      Un saludo, y menos insultar.

      • Javier Ortega Conde (Malkavian)

        Te recomiendo que leas algo sobre lo que significa GNU y el concepto que hay detrás de GNU, FSF y GPL y el origen de los mismos. Te recomiendo también leer “Catedral y bazar”, de Eric S. Raymond, donde habla del funcionamiento de una comunidad aparentemente desorganizada.

        Hay varias cosas que podría rebartirte, pero lo siento, no tengo ahora tiempo ni ganas. Creo que te equivocas en muchas cosas, pero sólo diré una cosa, según tú GNU/Linux se muere. Pero la realidad te contesta que cada vez se usa más, para más cosas y mejora más. Para estar muriéndose, está muy vivo…

        PD: Android es GNU/Linux + una máquina virtual de Java sobre la que van todas las apps.

      • Conozco de sobra el trabajo del proyecto GNU. Soy usuario de dos distros (GNU)Linux, de Emacs, Guile, Guix y Social; he leído también muchos de los artículos de sus miembros (incluyendo los más populares de Richard Stallman) y ya dos veces “La catedral y el bazar”. Igualmente, también me he alimentado de más fuentes como “After the Software Wars”, de Keith Curtis, con una perspectiva basada en el liberalismo que considero muy acertada. Por lo tanto, entiendo perfectamente la filosofía del software libre, los valores que promueve y su eficiencia en la práctica; al igual que entiendo los valores positivos que posee una comunidad descentralizada, que además se puede ver muy claramente p. ej. en Bitcoin, otro paquete de software libre que uso y defiendo frecuentemente.

        Hice este artículo tras ser usuario activo de Ubuntu. Disculpad mi ignorancia, pero es que tras estudiar el sistema no podía comprender por qué se acumulaba tanta basura que se mostraba constantemente en forma de lageo, falta de RAM, Apport saltando cada dos por tres, etc.; pensando además que no era un problema exclusivo de esa distro. Luego probé a compilar el kernel manualmente, experimentando con LFS. Y luego me hice una instalación de Arch Linux con el entorno Enlightenment E19. Finalmente, me di cuenta de la existencia de algo llamado dispositivos embebidos.

        Ahí mi percepción sobre el kernel cambió súbitamente. Al igual que la de otros proyectos como GTK+/GNOME, a medida que fui experimentando más.

        Por cierto; he abandonado esta “versión” del blog, a la que considero parte del pasado (ya he cumplido la mayoría de edad, así que prefiero tomarme las cosas un poco más en serio). Siento que hayáis tenido que “tragaros” este artículo, pero era lo que sinceramente sentía en aquél momento; que nos estábamos apartando de una visión necesaria de simplicidad y ello condenaba a Linux. En qué momento tuve esa idea xD

        P.D.: Que yo sepa, Android carece de Glibc, Coreutils y otros componentes básicos de una distribución (GNU)Linux, así que no se le puede considerar una en el apartado técnico; y al venir con un kernel con blobs, ser habitualmente empaquetado con servicios privativos y directamente no respaldar la filosofía GNU, no le puedo considerar tampoco a nivel intelectual un sistema GNU/Linux. Por tanto, Android es simplemente Linux.

  2. Una duda, ¿Has programado para NT y para Haiku para poder conocer de verdad las diferencias?

    Veo un artículo muy largo lleno de datos obvios, pero también lleno de opiniones/constataciones relativamente cuestionables… y que aporta poco en lo técnico.

    Parece que la intención es divulgativa, sin embargo tengo la sensación de que este artículo, a los neófitos, puede marearles más que ayudarles a tener una visión clara del panorama.

    • Da la casualidad de que sí, he programado tanto para NT como para Haiku. Y NT con Visual C++ se queda muy corto, tanto en sintaxis como en la sencillez de las APIs. Es evidente, eso sí, que las APIs de Win32 son mucho más completas (sobre todo porque las de Haiku todavía están por terminar), pero trabajar con las clónicas de BeOS resulta mucho más sencillo, agradable y hasta práctico.

      Entiendo que este artículo no tenga ese enfoque técnico y use datos bastante obvios, porque es eminentemente de opinión, y es cierto que, por ejemplo, olvidé mencionar muchas de las bondades de Plan 9 como su enfoque en terminal/servidor, el “sistema de archivos” 9p, su alta portabilidad y su velocidad en tareas como la compilación; y que en Haiku directamente he pasado de describir en absoluto su interfaz gráfica, los metadatos de BFS (¡que me encantan!) o sus APIs de kits; dicho intento hubiera sido fútil. Pero en este blog no suelo entrar en detalles y se lo dejo todo al lector, para que cubra los conocimientos por sí mismo (que es, al fin y al cabo, como siempre he hecho yo). Eso sí, si se pide más información, yo encantado de ayudar 😉

      Y por cierto, tampoco es que sea un experto digno de impartir una clase en el MIT o algo así. 17 años, y todavía no he publicado ni un programa completo, en ninguna plataforma. Pero no por ello quiere decir que no pueda informar, aportar mi opinión y colaborar, ¿no? 🙂

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