14 de octubre de 2009

¿Reusar o reescribir?

La lectura del informe trimestral sobre el estado de FreeBSD me ha dejado unas dudas. Para empezar ahí se describen tareas absurdas para ese proyecto, como dedicarse a reescribir con licencia BSD utilidades Unix típicas de GNU. Me dirán que en Linux se ha hecho lo opuesto varias veces, y tendría que darles la razón. Pero se supone que los Linuxeros y los GNUeros somos los zealots, mientras que el sentido práctico siempre fue más característico de los BSDeros.

Luego tenemos la tarea de utilizar Clang en lugar de GCC. Clang es un frontend equivalente a GCC pero basado en LLVM, que está licenciado con licencia BSD. El mundo BSD lleva tiempo librarse de uno de los iconos del mundo Linux, gracias a LLVM su sueño está a punto de hacerse realidad. Aunque se muevan por el mismo deseo de librarse de la GPL, en este caso puede decirse que no se trata de una decisión del todo estúpida, puesto que tienen ciertas ventajas.

En última instancia, encontramos el port de ZFS. Aunque ha sido aceptado sin problemas, me consta que entre los más radicales BSDeros hay varios a los que no les gusta demasiado. No porque no les guste ZFS, sino porque no tiene licencia BSD, y si el tema de la licencia causa sarpullidos cuando se trata de herramientas de espacio de usuario, imaginen en algo que forma parte del kernel. Y aun peor, porque no se trata de un drivercillo ni una herramienta de depuración y análisis como Dtrace, sino un sistema de archivos, que es una pieza clave de todo sistema operativo y en especial de Unix.

A los problemas de licencia hay que añadir otro, más grave en mi opinión. He visto a BSDeros glorificarse ante los usuarios de Linux el disponer de ZFS y Dtrace. Técnicamente su orgullo está plenamente justificado, pero creo que a quien realmente glorifican, sin darse cuenta, es a OpenSolaris. ¿Qué es FreeBSD? ¿Que lo distingue del resto de SOs? Fundamentalmente, un kernel y unas herramientas y documentación y APIs de bajo nivel, bien empaquetados como un solo SO, el resto de software -apache, mysql, python, gnome, x.org- no es distinto de lo que uno puede encontrar en Linux o incluso en Windows en muchos casos. Si apartamos ponemos ZFS a FreeBSD tenemos algo que objetivamente es mucho mejor, pero ya no tenemos FreeBSD, sino OpenSolaris.

Y este es el gran problema de FreeBSD: la debilitación y progresiva pérdida de las señales de identidad que le distinguen en el mundo. Usando ZFS en vez de UFS, usando Dtrace, al final lo que estamos usando es a apache, mysql, python, gnome, x.org, sobre algo que forma parte de OpenSolaris, asi que lo más lógico es que la gente acabe usando el OpenSolaris original en lugar de un SO que se ha convertido en un mero clon suyo.

En mi humilde opinión, FreeBSD como proyecto debería centrarse en tratar de mejorar -"reescribir"- las facetas que lo hacen único, y no perder tiempo en el resto -"reusar"-. Ahora está haciendo lo contrario: reusar en su core el código de otros, y reescribir herramientas básicas que no le distinguen de nadie. Lo mejor es que no necesitan empezar de cero: pueden partir de Hammer, el sistema de archivos de DragonflyBSD (que por sus lazos no puede considerarse un SO totalmente distinto de el, y por tanto considero que no puede hablarse de "reutilización"). Quizás no esté tan preparado para sustituir a UFS (en realidad Hammer es un sistema de archivos orientado estríctamente a servidores), pero al menos lo distinguen del resto. De no hacerlo, corren, a largo plazo, serio riesgo de desnaturalización, si los biólogos me permiten el mal uso del término utilizado para designar el proceso de pérdida de estructura de las proteinas.

6 comentarios:

  1. Sinceramente visto desde el punto de vista de un usuario que vio por encima solaris y freebsd, la opinion es planamente valida, pero en terminos de rendimiento a largo plazo, un kernel freebsd en muchas sircunstancias rinde mucho mejor que cualquier linux o opensolaris, y mas en servidores mail o dns, y sin contar zfs, ya que todas pruebas fueron echas sobre ufs. La organizacion es unica.. y la manera de administar freebsd, una vez hayas comprendido la logica, es envidiable tanto por linux como por opensolaris, pero eso desde arriba parece... igual.. o insignificante. FreeBSD ya tiene cosas unicas, lo que pasa es que verlas sin tener mucho idea de como es y no tratar a diario con el sistema.. no se ve a simple vista. Otra aclaracion, zfs fue incluido por que lleva una licencia que puede ser lincada con soft propietario, vaya que la cddl es mas permisiva, gcc es gpl, y eso es una molestia, cddl no lo es. Hammerfs no puede ser portado por unas variables internas en las libs de kernel ya que dragonfly es de 64bits y la de freebsd es de 32, por lo que rompe la compatibilidad, y sinceramente no se que piensan hacer al respecto.

    Un saludo, y sinceramente estos comentarios tan "humildes" de una persona que se de dica a opinar, no es que los vea bien, por que muestra un cierto disgusto o instatisfacion a algo que en realidad veo que no ha tocado muy a fondo.

    Pero lejos de este post, mis cinceras felicidades por el blog, muy interesantes los articulos.

    ResponderEliminar
  2. Anónimo11:26 a. m.

    Como usuario de FreeBSD desde hace muchos años la verdad es que no estoy muy de acuerdo en tu opinión. La incorporación de Clang está justificada (http://clang.llvm.org/comparison.html#gcc) y la utilización de ZFS no es ni muchos menos obligatoria. Actualmente requiere de AMD64 con 4GB de RAM como mínimo para funcionar correctamente por lo que su uso está muy condicionado a la máquina. UFS seguirá siendo el sistema de ficheros por defecto y ZFS una opción altamente recomendable en entornos de producción (ya ha dejado de ser beta). Como bien dices habrá locos de las licencias que hagan sus propias guerras pero no creo que sea el caso de FreeBSD, que no se caracteriza por tomar decisiones controvertidas (no así su hermano OpenBSD con Theo De Raadt a la cabeza).

    Descubrí tu blog ya ni recuerdo cómo pero me parece muy interesante lo que escribes, sigue así, felicidades.

    ResponderEliminar
  3. Anónimo12:36 a. m.

    Qué casualidades, acabo de ver en Barrapunto que han incorporado el Gran Central Dispatch que hace poco liberó Apple y será parte de FreeBSD 8.1, lo cual te da un poquito más de razón.

    ResponderEliminar
  4. Grand Central Dispatch puede proporcionar una gran mejora de rendimiento. Si es BSD, y lo encuentran conveniente, ¿porqué no agregarlo?
    Si hay algo que caracteriza a FreeBSD es su rendimiento y, como dicen arriba, su administración una vez que se entiende, es super cómoda.
    Saludos

    ResponderEliminar
  5. Y ahora me pregunto que tanto critican a freebsd por reescribir inutilmente pequeñas partes del sistema base, me fijo que el sistema operativo: android, de linux solo tiene el nucleo,las pequeñas partes de sistema mayoritariamente son de freebsd. No se pero se me hace pensar que no todo es tan inutil como lo parece a simple vista... y ya no digo solo android, eso no mas es un ejemplo.

    ResponderEliminar
  6. Tio Patillah5:13 p. m.

    Las razones que se esgrimen para abandonar GCC son:
    Que es un proyecto inmenso, al borde del colapso y sostenido a base de hordas inmensas de programadores
    Que genera código incorrecto cada cierto numero de versiones.
    Que no tiene a los BSD y ciertas arquitecturas de hard como target primario.
    Que LLVM parece prometer mucho y supone un cambio en la tecnologia de compiladores

    Y asi. Lo de la licencia es una razon muy secundaria.

    PD: interesante blog.

    ResponderEliminar