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

¿Podemos ser libres? GNU tras 30 años

Estándar

Soy liberal. Bastante liberal. Puede que demasiado liberal. Porque me importa la libertad, porque la libertad es prosperidad y es el mejor arma para la felicidad (sí, aún sabiendo los riesgos que conlleva), es el camino más natural y el que mejor nos permite convivir y crecer. La persona es verdaderamente persona siendo libre, pudiendo actuar no solamente en su propio bien, sino también en beneficio de los demás. Esta es la opinión sobre la que voy madurando mi moral, asentada a su vez en la religión (¿quién dijo que todo tenga que ser objetivo? 😉 ).

Es por ello que una idea como la del proyecto GNU me resulta tan atractiva. Liberarnos de los gobiernos que nos censuran, liberarnos de las empresas que nos vigilan y coartan, liberarnos de los miedos de crackers, seguridad… tener todo el poder posible, para utilizarlo para beneficio nuestro y el de los demás. Con el software GNU podemos compartir, mejorar, colaborar; vivir libres, tanto como individuos como en sociedad. Bonito, ¿eh?

Para el que no tenga ni idea de GNU, le recomiendo encarecidamente que se pase por su web oficial y se adentre en las secciones “Acerca de GNU” y “Filosofía”. Muchísimo texto que describe en detalle un proyecto de tal calibre.

Pero por supuesto, hay que ser realistas. ¿Es este software útil en la práctica? ¿Es sencillo, estable, rápido, funcional? ¿Realmente merece la pena el posible sacrificio por la libertad? Ese es el objetivo de este artículo, resolver dichas preguntas, que son las que siempre separan al usuario del software libre, manteniéndole usando paquetes privativos como el archiconocido Windows.

Sistema operativo, el mayor salto

La batalla entre software libre y software privativo siempre se localiza entre el bando de Windows y el bando de “Linux”. Cuando hablamos de Windows, también englobamos sistemas como Mac; cuando hablamos de Linux, bien queremos decir GNU/Linux (Android no respeta la libertad), bien englobamos otros sistemas como FreeBSD.

Es cierto, este es el aspecto más importante. Es lo que hace que la maquinaria funcione, es lo que le muestra al usuario la cara amigable del ordenador. Es el aspecto que hay que cuidar más de todos. La idea inicial de GNU, de hecho, era crear un sistema operativo 100% libre. Hoy en día parece que ese sistema jamás existirá, pero eso es porque no se necesita. Tenemos cientos de miles de distribuciones GNU. Pero en vez de usar un kernel GNU (Hurd), usan el kernel Linux, de ahí el erróneo nombre que se les da popularmente.

Las distros más conocidas son los miles de Debian (como Ubuntu), Arch, OpenSUSE, etc. ¿El problema? Que no son 100% libres. Intentan respetar la privacidad, pero… ups… tienen aún software privativo. ¿Y eso? Que al parecer, no podemos vivir sin ciertos programas cerrados, como Flash o drivers.

Sí, existen sistemas 100% libres. Mi favorito, Trisquel. Pero lo reconozco, todavía no llegamos al punto en el que no necesitamos de lo “propietario”. El principal problema son las tarjetas gráficas. Si no editas vídeo, no juegas a videojuegos ni quieres un escritorio con efectos chachi pistachi, puedes vivir tranquilamente con una distro de esas. ¿Que quieres aprovechar tu ATI o nVidia al límite? Crudo lo llevas, ahí el sacrificio es monumental. O libertad, o 3D. Me temo que en mi caso escogí lo segundo, pues soy usuario ensimismado de Ubuntu. Eso sí, según tengo entendido, Nouveau funciona de maravilla en sistemas con el kernel Linux-libre, así que si un día necesito formatear, probaré a ver qué tal.

Software de escritorio

Primero, ¿entendéis a qué me refiero con software de escritorio? Pues a las apps como navegador web o suite de ofimática, que funcionan directamente desde el ordenador. ¿Entendido? Bien, pues explico.

Las principales apps de escritorio son, por supuesto, el navegador y las relacionadas con ofimática. Para la primera, no hay que pensárselo dos veces: Firefox. Si bien no estoy seguro de que sea 100% libre (y ahora va a dejar de serlo seguro), es la app FOSS por excelencia, la que todos conocen y hasta usan día a día. De hecho, la gente suele instalarlo, más que por su libertad, por evitar Internet Explorer (cuando ahora eso ni tiene sentido con IE11). Pero es totalmente funcional, sencillísimo, bonito, más ligero que IE y Chrome, y el más compatible con los estándares. En resumidas cuentas, el mejor navegador. Lo que demuestra que software libre es compatible con software de alta calidad.

En el caso de GNU, tenemos el fork de Firefox IceCat. Se llama así porque “Ice isn’t Fire and a Cat isn’t a Fox”. Hay dos principales diferencias: es totalmente libre y viene equipado con software para la protección de la privacidad. Su problema es que está mantenido por un equipo pequeño, así que mientras que estoy escribiendo esto con Firefox 29, la última versión de IceCat es la 24. Aunque pensándolo bien no está tan desactualizado, pues la versión de Firefox correspondiente fue lanzada en septiembre del año pasado.

Por cierto, Chromium (Chrome) es de código abierto, pero al igual que Android, cada vez lo considero menos libre.

En ofimática, otra decisión rápida: LibreOffice. Por sí sola es una app muy completa, y estoy encantado. Pero además están integrándola con la GPU (para mayor rendimiento), y lo más importante, abre sin problemas los documentos de Office. Sí, tanto DOC como DOCX. Es impresionante cómo ha avanzado hasta la versión 4.2 en compatibilidad, y puedo asegurar que ahora mismo es totalmente innecesario usar Office para trabajar. Incluso ni necesitas usar archivos de Office, pues es el propio paquete de Microsoft el que acepta los archivos de LibreOffice (ODF). LOL.

Y para multimedia, es ahí donde el software libre halla su gran bache. En la parte del sistema operativo, la tarjeta gráfica. En la parte del software de escritorio, los codecs. Las apps son excelentes (Rhythmbox, xnoise, Banshee…), y encima tenemos el alabado VLC, que precisamente busca solventar las dependencias de codecs. Pero es que, aun así, formatos como MP3 no están diseñados para respetar la libertad. Tenemos OGG para música y Vorbis para vídeo, pero para ello no es necesario que cambie el software, sino nosotros. Ese va a ser un bache difícil de arreglar.

En cuanto a videojuegos, opino que los engines y bibliotecas deben ser libres, y luego el resto es de menor importancia (aunque si es libre, mejor). Esto se irá solventando lentamente, y de hecho, ideas como las de Unreal van encaminándonos a esa meta. Software de creación de multimedia va por el mismo camino o mejor, tenemos por ejemplo el caso de Blender.

Por último, programación… ¿es broma? ¡El software GNU está hasta en iOS! Es de lejos el mejor para desarrollo. Compiladores, intérpretes, bibliotecas, IDEs… todo lo que desees, gratis y respetando tu libertad. Por supuesto, hay muchos paquetes que no son GNU pero son libres, como Python. Sencillamente imbatibles.

Software de servidor

Y aquí es donde viene el mayor problema. Los servidores son un tipo especial de ordenadores en cuanto al software, pues su naturaleza “apartada” del usuario trae dos problemas éticos. El primero, porque aunque la mayoría del software que ejecuta un servidor hoy en día es libre, lo importante, las web apps, son propietarias casi siempre. Y el segundo, el más importante, que al usar software online estamos dando plena disposición de nuestros datos a terceros. Es lo que Richard Stallman ha denominado servicio sustitutivo del software.

¿Cuáles son las soluciones a estos problemas? Pues son ideas sencillas pero dificultosas de aplicar: crear nuestro propio software libre para servidores, y que éste permita la descentralización de datos. La segunda sentencia es muy crucial, y definitivamente algo novedoso para aquél que al pensar en la “nube” se le vienen a la cabeza Google y Windows Live pero no los protocolos P2P como Torrent. Gracias a esta idea, se pueden instalar servidores que permitan el pleno control de los datos personales, bien caseros, bien comunitarios.

Sorprendentemente, ya contamos con gran parte del software libre que necesitamos para el día a día, y el proyecto GNU ha aportado mucho en busca de esta meta. En concreto, ellos han aportado MediaGoblin, GNU Social y GNU FM.

De los tres, el más maduro y prometedor es MediaGoblin. Una prueba de ello es su reciente campaña de crowdfunding, así que está claro que la gente está tan interesada por este programa que sueltan su dinero a cántaros, cual Fry comprando un eyePhone. Los servidores MediaGoblin sirven, básicamente, para compartir todo aquello que sea imagen o sonido. Soporta por defecto audio (como SoundCloud), vídeo (como Youtube), presentaciones y libros (como Google Drive), modelos 3D (LOL, esto es nuevo) e incluso arte ASCII ( 😀 ). Lo mejor de todo no es esto, sino que además es ilimitadamente extensible (como si quieres compartir un CAD o una gráfica, vamos) y, próximamente, incorporará la biblioteca Federation, que permitirá descentralizar la información, de manera que un usuario registrado en varias webs mostrará siempre en su perfil el contenido publicado en todas. Este software tiene otras características especiales, pero no quiero enrollarme contando todas.

GNU Social es, básicamente, el viejo StatusNet. Nada innovador, es un clon libre de Twitter. Y GNU FM, el motivo por el que redacté este artículo, es un excelente reproductor web que, aún siendo muy básico ahora, ya permite reemplazar sin problemas servicios privativos como iTunes Radio. Se necesitan muchos programadores y sobre todo artistas, así que si eres alguno de ambos, te recomiendo que le eches una ojeada al servidor de “pruebas” Libre.fm y decidas si merece la pena ayudar.

Luego existe más web apps libres que las de GNU. La principal y una de mis favoritas es Diaspora*, otro éxito en crowdfunding, totalmente descentralizada y pionera en el concepto de “aspectos”, copiado posteriormente por Google+ con la denominación de círculos. Su descentralización se basa en “pods”, que recuerdan a servidores de e-mail: cada pod contiene direcciones, como espectalll123@diasp.eu, donde cada persona publica su contenido. Este contenido puede, posteriormente, ser visto por otras personas, sin importar el pod en el que se hayan registrado.

Conclusión

¿Podemos vivir exclusivamente con software libre? Pues no, pero estamos muy, muy cerca. El principal dilema es, irónicamente, la difusión y aceptación social de los programas libres, haciendo entender por qué son mejores que las alternativas. Esto hace un par de años sería imposible, pero con el revuelo de Windows Vista 8 y los leaks de Edward Snowden, la gente está más concienciada con los problemas de lo privativo. Al ofrecerles una alternativa estamos, por tanto, siendo de gran ayuda, tanto para ellos como para la comunidad, que aumenta de tamaño, volviendo más útil y popular este software.

Si yo todavía uso software propietario, es porque es innegable que la transición es compleja. Pero si seguimos así, confío en que algún día el proyecto GNU cumpla su meta y haga de este un mundo mejor.