3 de abril de 2012

Nuevos vientos en la glibc

LWN tiene un magnífico artículo (que no podrán leer hasta la semana que viene si no están suscritos, algo que recomiendo) sobre los cambios profundos que están teniendo lugar en la glibc. Básicamente, a partir de ahora van a ser un proyecto de software libre real, y no la dictadura de Ulrich Dreeper.

Ulrich Dreeper es un tipo paradójico: Es un genio en su campo, como lo demuestra este documento (que honra con creces su título), o sus artículos (varios publicados en las revistas de la ACM). Sin duda, uno de los grandes fichajes de Red Hat. Sin embargo, su actitud en la gestión de la comunidad hace que Jörg Schilling y Theo de Raadt parezcan gente simpática. Echen un ojo a este y este otro reporte de bug, ya considerados míticos. ¡Incluso hay un bug sobre su actitud!

La incapacidad de estos "genios desagradables" para colaborar con otros no sería un problema si se limitara a eso. El problema es que su infinito ego les lleva a tomar decisiones técnicas completamente estúpidas. Por ejemplo, Ulrich Dreeper es un fan del buen hardware y desprecia otras arquitecturas hasta el punto de llamar a ARM "embedded crap" y no aceptar parches que la soporten mejor, no soportar shells que no sean bash, no permitir la compilación cruzada, o negarse a incluir funciones que faciliten la creación de software más seguro, porque un buen programador debería ser capaz de vivir sin ellas.

Quizás su mayor error haya sido su negativa a permitir la adaptabilidad de la glibc a sistemas embebidos, a los cuales simplemente despreciaba. Y no estamos hablando de cosas excéntricas, sino de compilar la libc sin soporte de NIS, RPC, locales de idiomas que no se necesitan, soporte de red o APIs que existen por motivos de compatibilidad; o simplemente compilar con optimizaciones de tamaño -Os: ni tan siquiera estas cosas permitía Dreeper, para él sólo existían los servidores y escritorios potentes, y no tenías derecho a opinar otra cosa. Existen unas cuantas libcs optimizadas para sistemas embebidos (empezando por la de Android), sólo para suplir las carencias de la glibc. No existía ninguna razón para que fuese así, si Linux se adapta a sistemas embebidos bien puede hacerlo la glibc.

En fin, ahora Ulrich Dreeper se ha marchado a Goldman Sachs, como vicepresidente de su división de tecnología, seguramente a trabajar en high-frecuency trading, esa técnica oscura que consiste en poner montones de ordenadores que ejecutan órdenes de venta y compra automáticamente para forrarse. Es un campo donde la latencia es crítica: las firmas financieras se han gastado 300$ millones en instalar un cable entre la City y Wall Street para ganar cinco míseros milisegundos. Los profundos conocimientos de bajo nivel de Ulrich Dreeper les vendrán de perlas, sin duda.

Vaticino, por tanto, que se avecinan buenos tiempos para una de las piezas más críticas de un sistema Linux. De momento, parece que eglibc -proyecto que nació para proporcionar funcionalidad que Dreeper prohibía- será incluido en la libc principal. Esperemos que la FSF -a la que Dreeper odia, y que ha intentado arrebatarle el control del proyecto en el pasado- no cometa una de sus tradicionales meteduras de pata intentando entrometerse en la gestión de proyectos para cambiar las licencias o cosas así sin contar con los desarrolladores.

7 comentarios:

  1. La FSF sería de lo mejor que le podría pasar a glibc.

    Está bastante clara su política de licencias y no suelen actuar en contra de la comunidad.

    Además, probablemente, de inmiscuirse, sería el equipo de gcc que son unos cracks, cuyas políticas hacen posible hoy millones de sistemas incrustados (embebidos?) que se usan masivamente en investigación y desarrollo (bueno, y en los móviles de todos).

    ¿Qué te pasa con la FSF y, por otros posts, Debian? ¿Por qué te molesta tanto que haya proyectos que se preocupen más por la estabilidad y la política de no-intervención a no ser que sea imprescindible?

    Tienes que ser un tio interesante de conocer...

    ResponderEliminar
    Respuestas
    1. Hombre, no me gustaría que la FSF cometiera con la libc los errores que ha cometido en proyectos como gcc, ya hemos tenido bastante con Ulrich Dreeper. No sé si sabes que el upstream de Mesa/Gallum3D ya requiere forzosamente el uso de partes de LLVM, de licencia BSD. Yo ya tengo paquetes de LLVM en mi sistema, y tú los tienes o los tendrás. Esto no tendría por qué haber pasado, pero pasó, los gráficos de Linux tienen que usar compiladores alternativos porque gcc no da la talla.

      Y todo por politiquería en gran medida fomentada desde la FSF (y donde digo FSF, quiero decir fundamentalmente Stallman). No es como para tirar cohetes, la verdad.

      Respecto a Debian, está muy bien que hagan lo que hacen, pero una gran parte de la comunidad Linuxera desde luego no quiere las cosas como las hacen ellos.

      Garantizo que no soy un tipo interesante de conocer. Todo lo interesante que tengo que decir lo digo en este blog.

      Eliminar
    2. Buenas,

      ¿Como quiere la comunidad (o esa gran parte que mencionas) que se hagan las cosas ??

      ¿Cuales son las cosas que hace Debian que a la "comunidad" no les gusta?

      Un saludo

      Eliminar
    3. ¿"rolling releases", por poner un ejemplo? (Debian Cut no deja de ser una propuesta) La gente que usa Arch no lo hace por estupidez.

      Eliminar
    4. Con Sid, vas que chuta, creo yo ...Lo de la rolling release se quedó en eso, en propuesta, sacaron 3 o 4 snapshots de prueba, pero alguien dijo que para qué y que nadie lo usaba, y el desarrollador que se encargaba de hacerlo, parece que desistió.

      La idea de Josselin no era del todo mala, pero yo creo que con sid tengo una distribución bastante actualizada y que no da excesivos problemas (¿incluso menos que testing??)

      No he usado Arch, pero no hecho de menos ninguna característica en Debian como para probarla. Aunque veo que tiene mucha gente detrás de ella como se ve en los 36000 paquetes que ofrecen en AUR ... no sé si la calidad será la misma que los paquetes oficiales en Debian.

      Un saludo y gracias por tu opinión.

      Eliminar
    5. javi: en AUR, no tenes paquetes, tenes unos "pseudo scripts" que automatizan el proceso de descarga, compilacion e instalacion del software. por supuesto podes examinar al detalle cada uno de estos scripts y cambiar lo que sea q no te guste (de echo la herramienta yaourt te invita a hacerlo), y en cuanto a la calidad del software, pues dependera de los desarrolladores de dicho software, ya que en AUR, por lo general se compila directamente desde las fuentes originales.

      sin embargo si es cierto que a veces han metido la pata los de arch. recuerdo cuando metieron al repositorio extra, kde 4.5, cuando aun era totalmente inestable si lo usabas con los efectos puestos en ciertas placas de video como la mia.

      Eliminar
  2. Diego tu post me parece una critica Debianezca a Dreeper, el problema con eso es que yo venia a leer sobre la glibc no sobre el, otro problema mas de Debian es que se creen que hacen cosas y normalmente solo las compilan, comprimen, firman y publican. Eso los deja muy lejos de poder criticar a la persona que mantiene algo tan grande como la glibc, me parece perfecto que tengan un fork llamado eglibc, eso es cosa de hombres y como deberia ser siempre que un proyecto libre no te gusta la forma en que hace las cosas.

    ResponderEliminar