¡Estás usando Unix! Puede que no lo sepas, pero tu teléfono, tu
servidor, tu computadora de escritorio o incluso el estéreo de tu auto
probablemente estén ejecutando Unix o alguna forma de él. Ahora el
sistema operativo más potente del mundo cumple 50 años: contamos toda la
historia.



En el legendario libro Unix Haters Handbook, Donald Norman, entonces
empleado de Appl€, escribe esto en el prefacio:

"¿Sabes cuál es el verdadero problema con Unix? El verdadero problema es
que se volvió tan popular. Unix no estaba destinado a ser popular,
estaba hecho para unas pocas personas que trabajaban en sus laboratorios
en la vieja computadora PDP-11 de Digital Equipment".

Al final del prefacio, Norman añadió:

"Si este libro no acaba con Unix, nada lo hará."

No podría haber tenido más razón.

Unix es en realidad el proyecto de software más improbable del mundo en
forma de un sistema operativo al que se ha condenado una y otra vez, y
donde su propietario original hizo todo lo posible para sacar dinero de
un proyecto en el que el mismo realmente no tenía gran interés.

Se trata de un sistema operativo que se ha inspirado y copiado de muchos
otros, pero que independientemente de la forma que haya adoptado, sigue
basándose en la misma filosofía que cuando se presentó por primera vez
en 1969. Hablamos, por tanto, de Unix, que hoy en día puede verse como
una filosofía más que como un sistema operativo real. Un sistema
operativo que utilizas de una forma u otra a diario, lo quieras o no.


Un fracaso exitoso

Comenzó con un fracaso a mediados de la década de 1960 en la forma de un
sistema operativo llamado Sistema de Computación y Operación
Muliplexado, o Multics, desarrollado en colaboración entre General
Electric y Bell Laboratories. A medida que las computadoras se volvieron
cada vez más poderosas, creció el interés en hacer posible que varios
usuarios operasen la misma computadora al mismo tiempo. El primer gran
intento se desarrolló en la Universidad MIT de Estados Unidos a finales
de los años 50 y principios de los 60. El sistema operativo se denominó
Sistema de tiempo compartido compatible, CTSS, y se demostró por primera
vez en noviembre de 1961 en una computadora central IBM 709 propiedad
del MIT.

El MIT también puede considerarse el lugar donde nació la cultura hacker
y los hackers que eran estudiantes de la escuela consideraban, no del
todo injustamente, que la computadora IBM 709 era una abominación en
general (dependiendo mucho de las restricciones que rodeaban a la
computadora). En particular dado que CTSS se basaba en que cada usuario
tuviera sus propias cuentas de inicio de sesión, y si había algo que los
hackers del MIT no podían soportar era una puerta cerrada o al menos una
cuenta de inicio de sesión igualmente cerrada: la información debía
estar disponible gratuitamente para todos.

El hecho de que los estudiantes también tuvieran acceso más libre a una
computadora PDP-6 de Digital Equipment significó que pronto comenzaron a
improvisar una alternativa al CTSS, que el estudiante del MIT Tom Knight
denominó con cierta ironía Sistema de Tiempo Compartido Incompatible
(ITS), la cual fue ensamblado por la banda de hackers del MIT,
íntegramente según sus propias habilidades, con sus gustos y valores.

El desarrollo se traslada a una computadora PDP-10.

Había cuentas de usuario en ITS (pero se podían usar sin iniciar sesión,
lo cual se consideraba de mala educación), pero todos los archivos
almacenados en la computadora eran accesibles para todos. ITS se
escribió en Assembler en un tiempo récord; pronto los hackers obtuvieron
acceso a una computadora PDP-10 mucho más rápida y todo el desarrollo de
ITS se trasladó allí. El hecho de que ITS fuera escrito en Assembler
puede considerarse sin importancia hoy en día, pero influyó de muchas
maneras en cómo se desarrollaría Unix unos años más tarde.

Por cierto, ITS se utilizó en el MIT hasta 1990, pero se había extendido
por todo el mundo y el último lugar donde se utilizó fue en la
asociación de informática Stacken en el Real Instituto de Tecnología de
Estocolmo, donde se utilizó hasta 1995.

ITS tenía muchas características interesantes: por ejemplo, cada
computadora que ejecutaba ITS estaba conectada a Arpanet, el precursor
de Internet, y era posible ejecutar un programa en varias computadoras
con ITS al mismo tiempo, trabajando con archivos que existían
localmente, en cada terminal.

En ITS también se desarrollaron varios programas interesantes, incluido
Emacs.

CTSS también tuvo una buena cantidad de avances tecnológicos
interesantes: entre otras cosas, la primera variante del correo
electrónico apareció en CTSS en la forma en que los usuarios podían
enviarse cartas entre sí en la misma computadora.

Ken Thompson, a quien volveremos en breve en esta historia, desarrolló
un editor de texto llamado QED que luego sirvió de inspiración para Ed,
Vi y Vim. Y como mencionamos, CTSS fue el primer sistema operativo en
implementar cuentas protegidas con contraseña. CTSS fue posteriormente
portado a ti

Todo un modelo de computadora más grande de IBM, el 7094, pero al igual
que ITS no se extendió a otras plataformas de hardware.

Multics ha seguido evolucionando

CTSS se utilizó en el MIT hasta 1973 inclusive. A diferencia de ITS y
CTSS, Multics ha seguido evolucionando, al menos hasta diciembre de
2016, cuando se lanzó la versión 12.6f. Hoy en día, Multics se basa en
código fuente abierto y, naturalmente, se ejecuta en un emulador, ya que
el hardware para el que fue escrito no es realmente práctico de usar hoy
en día.

Cabe señalar que Multics -cuando era un producto comercial propiedad
primero de la división informática de General Electric, más tarde de
Honeywell y finalmente de Bull- funcionaba con una gama de modelos de
ordenador de las tres empresas. La última instalación conocida de
Multics fue operada por las Fuerzas de Defensa Canadienses y fue dada de
baja a finales de octubre de 1990. Entonces, ¿por qué es tan importante
esta introducción a la historia de Unix? La respuesta es Ken Thompson.
Fue uno de los desarrolladores detrás de Multics y pensó que había
muchas ideas interesantes en Multics que quería desarrollar más, al
mismo tiempo que Multics era demasiado complicado para su gusto y el
ritmo de desarrollo era demasiado lento. Estas ideas fueron compartidas
por cuatro personas más: Denis Ritchie, Brian Kernighan, Joe Ossanna y
Douglas McIlroy, quienes se unirían al proyecto un poco más tarde. Según
la leyenda, Ken Thompson envió a su esposa de vacaciones durante un mes
y luego se puso a escribir las bases de lo que se convertiría en Unix,
pero que luego recibió el nombre de "nuevo sistema de Ken": el nombre
Unics fue propuesto por Brian Kernighan en 1970, pero luego se cambió a
Unix.

El resultado del hackeo de Thompson fue un embrión, difícilmente un
sistema operativo terminado, sino de un núcleo, un intérprete de línea
de comandos simple, un sistema de archivos más simple y unas pocas
herramientas fueron suficientes para poner las cosas en marcha.
Curiosamente, todo esto fue escrito en Multics antes de que pudiera
ejecutarse en la computadora PDP-7 que estaba disponible.

Inicialmente, el proyecto tuvo dificultades para conseguir el apoyo de
los directivos de Bell Laboratories. La pandilla Unix nunca presentó
ningún plan sólido, sino que siguió adelante y cuando se pusieron manos
a la obra y quisieron comprar una computadora más rápida, los jefes los
rechazaron. A pesar de esto, Ken Thompson y Dennis Ritchie continuaron
su trabajo. El código para el sistema de archivos se escribió con tiza
en grandes pizarras y llegó a ser conocido como "sistema de archivos de
tiza", un tipo de metodología de programación que no se ve muy a menudo
hoy en día.

Un sistema de hermandad

En 1979, Dennis Ritchie escribió un documento llamado La historia del
sistema de tiempo compartido Unix en el que explicaba por qué él y sus
colegas del proyecto Multics decidieron desarrollar lo que se
convertiría en Unix:

"Lo que queríamos no sólo era preservar un buen ambiente para programar,
sino también un sistema donde se pudiera crear una hermandad. Sabíamos
por experiencia que una piedra angular de los sistemas informáticos
compartidos... no es sólo introducir programas a través de una terminal
en lugar de una perforadora de tarjetas, sino también fomentar una
comunicación estrecha”.

A principios de 1970, se permitió al proyecto encargar un modelo de
computadora completamente nuevo a Digital Equipment, una
"minicomputadora" llamada PDP-11 que estaba alojada en un bastidor de 19
pulgadas.

Increíblemente, la compra obtuvo el visto bueno de los directivos de los
Laboratorios Bell y el ordenador se encargó en mayo de 1970. Un par de
meses más tarde se entregó el ordenador, aunque sin ningún tipo de
sistema de disco, por lo que no se pudo entregar hasta diciembre del
mismo año.

Apuestas

El desarrollo de Unix cobró nuevo impulso y apenas medio año después de
la llegada de los discos, la actitud de los laboratorios Bell hacia el
nuevo sistema operativo había cambiado: ya nadie quería cerrar el
proyecto y se compró más hardware.

Un experimento en el que el departamento de patentes de Bell
Laboratories utilizó un procesador de textos desarrollado internamente
en la más simple computadora Unix resultó bien, y pronto más
departamentos de la compañía comenzaron a usar aplicaciones en la
computadora PDP-11, que ahora comenzó a tener problemas con el espacio
de almacenamiento. El disco sólo podía almacenar medio megabyte y el
resto de la información debía almacenarse en cinta.

Es hora de C

Unix fue escrito originalmente en Assembler, pero en 1971 se comenzó a
trabajar en lo que sería la programación del lenguaje C. En 1973 el
núcleo Unix fue reescrito en C y tomó la forma que perduraría durante
muchos años. En su artículo de 1979, Dennis Ritchie escribió sobre cómo
el éxito de portar el kernel de Assembler a C hizo que los programadores
de Unix se dieran cuenta de que C era casi la herramienta perfecta para
el desarrollo de software. Unix nunca estuvo completamente libre del
código ensamblador, pero las pequeñas piezas que quedaron eran fáciles
de portar a otras arquitecturas.

Pronto, básicamente todos los programas de utilidad en Unix se
escribieron en C y esto también hizo que Unix como sistema operativo
fuera extremadamente portable: la conexión casi metalúrgica que el
hardware subyacente requería con Assembler desapareció y en su lugar,
con un esfuerzo más o menos grande, se podía recompilar todo el Unix
para una nueva arquitectura de procesador o modelo de computadora donde
fuera necesario.

La portabilidad se convertiría en una de las principales características
de Unix. Uno de las peores sería sin embargo la manera cómo se
gestionaba el sistema operativo desde el punto de vista comercial.

Bell Laboratories formaba parte de la compañía telefónica estadounidense
AT&T, que ahora había comenzado a ofrecer Unix a universidades,
autoridades y clientes comerciales en forma de una licencia en la que se
incluía el código fuente completo de Unix en el paquete. Por supuesto,
no pasó mucho tiempo para que el código fuente se difundiera con
relativa libertad, lo que llevó, entre otras cosas, a que Arpanet
adoptara Unix como sistema operativo estándar para toda su matriz a
través de los antiguos ordenadores con procesador de mensajes de
interfaz (IMP) que se había utilizado desde que se empezó a construir
Arpanet, entre otros, en el ordenador DDP-516 de Honeywell.

Estos fueron reemplazados por computadoras PDP y, por lo tanto, también
tuvieron la posibilidad de correr Unix. Sin embargo, no fueron sólo los
militares los que empezaron a utilizar Unix a través de Arpanet: las
universidades también se interesaron, aunque a principios de los años
1980 el precio de Unix se volvió artificialmente tan alto que muchos
tuvieron que abandonarlo y seguir corriendo, por ejemplo, VMS en sus
computadoras DEC, comunes en ese momento.

En la Universidad de Berkeley estaban especialmente interesados ​​en
ejecutar Unix, lo que llevó ya finales de los 70s al legendario Bill Joy
-más tarde cofundador del farbicante de ordenadores Sun Microsystems- a
iniciar el clonaje de Unix, llamándolo Berkeley Standard Distribution,
BSD.

Joy y varios otros programadores trabajaron durante la primera mitad de
la década de 1980 en su clon de Unix, a partir del código fuente de
Unix. Al poco tiempo de rodar reescribieron el código lo mejor que
pudieron. En junio de 1991 lanzaron una versión de BSD llamada Net 2,
primer clon de Unix donde el código fuente se liberaba de forma
totalmente gratuita para que cualquiera pudiera utilizarlo y mejorarlo
si así lo deseaba bajo la licencia BSD.

Linux, GNU y BSD

En 1983, Richard Stallman comenzó a obrar en su propio clon de Unix al
que llamó GNU's Not Unix (GNU), pero el núcleo que debía formar la base
de GNU -llamado GNU Hurd- jamás fue lanzado. Más tarde, Stallman
afirmaría que Linux no habría existido sin sus esfuerzos y los de otros
y que, por tanto, debía denominarse GNU/Linux.

Si Stallman tiene razón en esa suposición está constantemente sujeto a
escrutinio, pero la consideración de que Stallman podría haber lanzado
su propio sistema operativo en lugar de intentar cambiar el nombre del
ítem de otra persona.

Linus Torvalds, por su parte, había empezado a trabajar en su propio
clon de Unix. Lanzó su primera versión del kernel para su sistema
operativo, que luego se llamó Freaxs (un acrónimo de las palabras free,
freak y Unix) en septiembre de ese año, pero no fue hasta 1994 que Linux
fue lanzado como un sistema operativo completo. Luego, el núcleo se
distribuyó bajo la licencia pública GNU GPL, desde 1992.

Entonces ¿por qué BSD no se convirtió en lo que es Linux hoy? A
principios de los años 1990, una empresa llamada Unix System Labs (USL)
había comprado los derechos de AT&T Unix y en 1992 demandó a Berkeley
Software Design (BSDI), una empresa formada en 1991 que entonces se
ganaba la vida desarrollando y distribuyendo BSD bajo el nombre BSD/OS.
En 1992, BSDI lanzó el sistema operativo BSD/386 y fue entonces cuando
"todo el asunto" se desató en serio. USL argumentó en su demanda que
BSD/386 contenía "código fuente y secretos comerciales" de AT&T Unix.
Todo el asunto se resolvió extrajudicialmente en 1994, cuando Novell
compró la USL.

Que USL demandara a BSDI probablemente tuvo poco que ver con el código
fuente o con secretos comerciales, sino con el hecho de que BSD/386
costaba entonces 995 dólares, lo que podría compararse con AT&T Unix,
que costaba más de 20.000 dólares. Probablemente también fue bastante
revelador que de diez sitios web que existían a mediados de la década de
1990, la mayoría absoluta funcionaba con BSD/386 sobre cualquier otro
sistema operativo, incluido AT&T Unix. La respuesta a por qué BSD no se
convirtió en lo que Linux es hoy se remonta a cuando Red Hat salió a
bolsa en agosto de 1999.

La IPO fue un gran éxito para Red Hat y, por supuesto, BSDI quería hacer
lo mismo, pero donde Red Hat tuvo éxito, BSDI se fue directo a la cuneta
y tanto la IPO como el éxito fracasaron. En cambio, al año siguiente,
BSDI se fusionó con Walnut Creek, una empresa que distribuía software
gratuito en CD-ROM. Poco después, la empresa fue comprada por Telenet
System Solutions y al año siguiente, en 2002, el negocio que incluía
BSD/OS se vendió a Wind River Software, quien descontinuó BSD/OS con
relativa rapidez. La competencia de FreeBSD y otros sistemas operativos
basados ​​en BSD se volvió demasiado fuerte.

Cambios continuos de propiedad

No fue sólo BSD el que cambió de propietario una, dos y tres veces.
Novell compró AT&T Unix en 1993 y cambió el nombre de todo el club a
Unixware. Luego lo revendieron a Santa Cruz Operations (SCO) en 1995. Al
menos esa era la opinión de SCO, pero Novell no compartió por qué SCO
demandó a Novell sobre si SCO realmente compró o no los derechos de
Unix.

En realidad, el caso nunca se decidió. SCO también demandó a varias
distribuciones de Linux y a las empresas detrás de ellas (si las había)
a principios de la década de 2000, lo que no hizo más que destruir
completamente la marca SCO a los ojos de la industria de TI.

Hoy en día, la marca Unix es propiedad de un consorcio llamado The Open
Group con 461 empresas y organizaciones miembros que garantizan que los
sistemas operativos que cumplan una serie de requisitos para que puedan
llamarse a sí mismos Unix, y si quieres utilizar la marca tienes que
certificarte y pagar una buena cantidad de dinero por ello, algo que
también han hecho varios sistemas operativos a lo largo de los años: AIX
y ZOS de IBM, HP-UX de Hewlett-Packard, Silicon Graphics Irix, Sun
Microsystems Solaris, Tru64 de Digital y Mac OS de Apple están todos
certificados. Por supuesto, había más variantes de Unix, quién no
recuerda Nextstep, Minix, Plan 9, QNX, Coherent, Interactive 386/ix (que
venía en más de 40 disquetes de 1,44 megabytes), Xenix, Unicos,
Ultrix...

Entonces, ¿qué tiene que ver todo esto con el teléfono móvil, el estéreo
del coche, el servidor, el dispositivo de almacenamiento, el router, el
ordenador y el televisor?

Bueno, pueden ejecutar IOS, que está basado en parte en código de
FreeBSD, o Android, que está basado en Linux. El estéreo del automóvil
puede ejecutar Android Auto y su servidor en Linux o tal vez OpenBSD. El
dispositivo de almacenamiento puede utilizar FreeNAS y el firewall
PFsense, ambos basados ​​en FreeBSD. Su computadora puede estar cargada
con Linux o Mac OS. Y tu televisor con Samsung Tizen o Android TV, ambos
basados ​​en Linux.

Allí ves a qué puede conducir un mes de programación.