Un poco de historia: ¿Qué tienen en común Plan 9 y Linux?

Interfaz de Plan 9

Bueno, empecemos explicando qué es Plan 9 para los que no lo sepan. Pues bien, los Bell Labs quisieron desarrollar el sucesor de UNIX, concretamente fue desarrollado por el Computing Sciences Research Center de estos laboratorios. Su desarrollo duró desde mediados de los 80 hasta 2002.

Sus creadores os sonarán, puesto que en él intervinieron desarrolladores como Rob Pike, Ken Thompson, Dave Presotto y Phil Winterbottom, con la colaboración del jefe de equipo Dennis Ritchie. Luego colaborarían también otros de renombre como Tom Duff, Doug McIlroy, Bjarne Stroustrup y Brian Kernighan, entre otros.

Se pretendía crear al sistema operativo más sofisticado del mundo, con permiso de Solaris. El nombre de Plan 9 proveniente de la película de ciencia ficción “Plan 9 del espacio exterior”. Y sin entrar en cuales son sus características, os estaréis preguntando qué tiene que ver con Linux.

Pues bien, varias aplicaciones y herramientas de Plan 9 han sido portadas para Linux, consiguiendo gran popularidad. Pero una de las herencias más importantes que ha dejado Plan 9 a Linux, aparte del sistema de codificación UTF-8, ha sido el directorio /proc.

Como saben, Plan 9 disponía de un directorio /proc que contenía todas las aplicaciones en ejecución (por ejemplo /proc/1 contiene información acerca del proceso número 1 que está corriendo). Eso permite al comando “ls” listar el contenido y ordenarlo, contenido que lista los procesos y por tanto se pueden listar los procesos y ordenarlos (sin /proc, ésto solo se podía hacer con herramientas como “ps”).

Si echáis un vistazo a /proc en vuestro equipo, veréis que contiene muchos directorios como /meminfo (información acerca de la memoria utilizada y swap), /net (estado de los protocolos de red), /stat (estadísticas del sistema), /uptime (tiempo que el sistema lleva en marcha), /version (información y versión del kernel), /filesystems (info sobre los sistemas de ficheros), /devices (controladores de dispositivos configurados), /cpuinfo (información de la CPU), /x (siendo x un número de proceso, contienen información de cada proceso, haciendo corresponder el número del directorio con el PID), etc.

Por cierto, si se preguntan por qué Plan 9 no ha triunfado como su antecesor UNIX, para explicarlo acudo a un párrafo escrito por Eric S. Raymond, otro viejo conocido, en su libro The Art of Unix Programming “Plan 9 falló simplemente porque se quedó corto de ser un mejoramiento lo suficientemente convincente de Unix como para desplazar a su ancestro. Comparado a Plan 9, Unix tiene obvios puntos herrumbrados, pero hace el trabajo lo suficientemente bien como para mantener su posición. Esta es una lección para los arquitectos de sistemas ambiciosos: un código base que es lo suficientemente bueno es el peor enemigo de una mejor solución.”.


Escribe un comentario