9 de diciembre de 2004

Threads

Hace unas semanas dimos en clase hilos POSIX. Por supuesto, POSIX es el "estándar", asi que todo el mundo usa POSIX:

int pthread_create(pthread_t *restrict thread, const pthread_attr_t *restrict attr, void *(*start_routine)(void*), void *restrict arg);

Asi es la cosa en el mundo Unix. Esta tambien fork(), y clone() (este último solo en linux), pero es interesante observar con que elegancia se solucionan los problemas en sistemas operativos bien hechos, como Plan9. En Unix el mundo de los "threads" vino despues de ser diseñado, y como tantas otras cosas de unix, no está integrado de una forma precisamente "elegante". En Plan9 no existen threads: Simplemente hay procesos y punto. Lo que hay son múltiples métodos para decidir como se comparten los recursos, pudiendo crearse nuevos procesos que funcionen como threads, o no, o ir más allá de lo que Unix puede hacer permitiendo a los procesos tener su propio espacio de nombres (*). En Unix se tiene la dualidad fork()/pthread_*(), y pthread_*() palidece y se convierte en una una API horriblemente compleja y bastante windosera en su diseño. rfork() de Plan9 es muy superior, en mi opinión:

int rfork(int flags)

donde "flags" es un argumento donde se espefifican que recursos no se deben compartir. La página man de rfork está disponible online. Solo con comparar esta API con la API de pthread_*()...

(*)DISCLAIMER: Si, se que Linux SI soporta espacios de nombre por cada proceso, o al menos algo parecido. Es otra de las "sorpresas escondidas" de 2.6, y el artífice es Alexander Viro, quien sino. Aunque mucho me temo que todo esto está aun años luz de Plan9 :( . Otra de las "sorpresas" de 2.6, relacionada con este tema, es mount --move, que permite "mover" puntos de montaje de un lado a otro)

20 de octubre de 2004

actualizaciones a go-go

Estamos que no paramos. En el BK de 2.6 acaba de entrar, justo despues de sacar 2.6.9, esta serie de cosas según se ve a bote pronto:
  • IO schedulers intercambiables en caliente. Si amigos, ahora podemos hacer "modprobe as-iosched; echo as > /sys/block/hda/queue/scheduler". Es fantástico, porque diferentes discos necesitan diferentes schedulers. Un lapiz USB realmente quiere utilizar "noop" y un disco normal "as".
  • CFQ v2. Jens Axboe es increible, con esto y lo anterior me pregunto cuantos sistemas operativos pueden igualarnos en este área
  • Actualizaciones de USB, ARM, PPC, SH, S390, M32R, swsusp
  • Hacer a reiserfs más resistente frente a errores. Es importante, mucha gente utiliza reiserfs, y reiserfs no es tan resistente a errores como ext3 (que cuando detecta un error puede montarse en modo read-only, ignorar el error o colgarse, a opción del administrador)
  • "packet writing", incluso para DVDs
  • "in-kernel keys & keyring management". La criptografía y yo no nos llevamos bien asi que no se ni quiero saber que hace esto pero tiene pinta de ser "importante"
  • Acelera /proc/kallsyms. Recuerdo que hace muucho tiempo cat /proc/kallsyms > /dev/null tardaba como 7 segundos, o quizás eran más. Es bueno que se hayan preocupado de que no fuera *tan* lento
  • Aunque no ha entrado aun, pero ya ha sido posteado, tenemos un driver para AHCI, un "estándar" SATA, que ha sido publicado por Intel, que lejos de hacer guarrerias binarias como Nvidia o no soportar nada, ha proporcionado las especificaciones, que nos servirán para soportar todas las controladoras AHCI que salgen en el futuro. Al igual que con sus tarjetas de red o gráficas, Intel sigue marcando la diferencia y haciendo sus propios drivers libres o proporcionar especificaciones. Yo por mi parte no compraré nada SATA que no esté basado en esta especificacion o en otra igual de libre y bien soportada. Principalmente por estabilidad.

8 de septiembre de 2004

"Piensa, no seas un borrego"

Esta es la frase que me he encontrado ayer en una pintada de la facultad de informática (no es ese el nombre del edificio, pero cualquiera se aprende esos nombres extraños que les ponen) de la universidad de Valladolid.

Me la encontré levantando la mirada cuando salía del coche, sin avisar, sin que te de tiempo a protegerte. Y con una pared no se puede discutir, asi no me queda mas remedio que hacerle caso. O al menos intentarlo (siempre se dice que lo importante es participar).

El caso es que la frasecita me impactó. Siempre suele haber pintadas, mas o menos certeras (que si no a la guerra, que si ZP a tus zapatos, etc etc), pero esta no es como las que suele haber. A diferencia de otras esta no estaba "firmada" por algun grupo izquierdista/anarquista (grupos de derecha descartados, ningún grupo de derechas pediría a sus partidarios que pensaran por si mismos - y esto no es una ironía). Esta estaba ahí, sola, sin ningún tipo de compromiso añadido. La tomas o la dejas. Y si la tomas no te obliga a nada mas. De hecho es que no te obliga a nada, es una simple sugerencia. Que no habría sido el mismo caso de haber una A de anarquía pintada debajo o de ser una frase tipo "piensa si no quieres te exploten". La primera porque ya te obliga, quieras o no quieras, a plantearte que tiene que ver el pensar con la anarquía, y la segunda porque intenta engañarte directamente (nadie quiere ser explotado, por lo tanto todos piensan -además, que yo sepa, nadie internamente se considera tonto-, por lo tanto todos los que lean la frase deberían sentirse inmediatamente "afines" al partido/ideología que firme la frase, o al menos plantearselo; que total, apuntarse a una ideología es gratis. Aun...)

En definitiva, una gran frase. Con especial sentido a las puertas de una universidad, que pisaba para hacer un examen de una asignatura, y que no pienso pisar para hacer el resto de asignaturas que tengo suspensas porque lo llevan listo los profesores/compañeros de turno si creen que voy a malgastar mi valioso tiempo matandome a estudiar unos contenidos diseñados por monos con títulos. En su lugar me quedo escuchando música, que tiene que ver con la informática lo mismo que la física (y si alguien piensa que si, que vaya y exiga la implantación de física a los estudiantes de derecho, que ya se sabe, los abogados utilizan mucho papel, y a ver por qué un abogado culto no debería conocer los fundamentos físicos del material con el que va a trabajar, tipos de papel, porque el papel se arruga y no vuelve a su estado original etc.) y enseña bastantes más cosas y mucho más útiles. Por cierto, párrafo patrocinado por "La casa sobre el tejado" de Adolfo Cabrales alias "Fito".

Me ha gustado tanto la frase, que si fuera rector de la universidad de Valladolid (o como se llame al que manda) que sustituyera esa frase del escudo de la universidad, la que dice "Sapientia Aedificabit sibi domum", por esta otra. (no es que la frase actual sea mala, es que esta es mejor, asi de simple). Y la frase la mandaría poner en letras bien grandes a la entrada de cada una de las facultades. No vaya a ser que por no haber tenido oportunidad de leerlo, alguno se convierta en un borrego.