martes, 26 de julio de 2011

A quien le debemos el hecho de que Unix sea (casi siempre) gratis.

He leído (a trozos casi siempre) la historia de Unix varias veces en varios años (me gusta leer historia) y no se de donde saqué que Unix es (la mayoría de las veces) gratis porque el gobierno de los Estados Unidos lo financió (o algo así). ¿Creían ustedes lo mismo? pues no es así, la razón es otra bien diferente y tiene finalmente (según este articulo de arstechnica) que ver  con un acuerdo que el Departamento de Justicia le hizo firmar a AT&T por supuestas practicas monopólicas (sip, lo mismo que hizo Microsoft varias décadas mas tarde y lo mismo que hace cada gigante que levanta la cabeza, ustedes nómbrenlo). Siguen existiendo varios *nix de paga y/o código propietario (no se si oyeron hablar de cierta compañía de nombre Apple :-P) como Solaris, AIX, o el Unix de HP (HP/UX), pero no hacen nada que no hagan los cuatro BSDs o cualquier distribución de Linux (al final siempre he visto a Linux como un BSD que arranca por niveles, no es muy diferente de eso). En fin, aquí tienen el trozo de historia (si quieren la historia completa, aquí tienen un punto de partida inmejorable), hay algo divertido en todo esto, provecho!

La revolucion UNIX ¿Gracias al tío Sam?
Este mes de noviembre, la comunidad Unix tiene otro aniversario notable para celebrar: el cumpleaños número 40 de la primera edición del Manual del programador de UNIX de Ken Thompson y Dennis Ritchie, lanzado en noviembre de 1971. La elaboración del documento no fue tarea fácil, porque en ese momento el sistema operativo Unix crecía semanalmente, con muchos aficionados en ciernes añadiendo nuevos comandos y funciones al sistema de manera regular.
"La tasa de cambio del sistema es tan grande que un número alarmantemente elevado de las primeras secciones [del texto] tuvo que ser modificada mientras que el resto se estaba escribiendo", señalaban Thompson y Ritchie en su introducción. "El esfuerzo sin límites requerido para mantenerlo actualizado era evidente por el hecho de que varios de los programas descritos fueron escritos específicamente para ayudar en la preparación de este manual!"

Del prefacio a la Quinta Edicion
....el número de instalaciones de UNIX es hoy cerca de 50 y esperamos muchas mas. Ninguna de ellas tiene exactamente el mismo complemento de hardware y software. Por esta razón en cualquier instalación particular, es bastante posible que este manual les proporcione información inapropiada ....

Es por eso que las lineas de tiempo de Unix son divertidas de leer, pues dan una idea de la rapidez con la que se desarrollo el sistema colaborativamente. Sin embargo, algunas de estas lineas bien omiten o mencionan sin explicación alguna la decisión del Gobierno que, en retrospectiva, allanó el camino no sólo para Unix, sino tal vez para el movimiento de código abierto también: el Decreto de Consentimiento de 1956 entre el Departamento de Justicia estadounidense y AT & T.

Esta decisión crucial no forzó exactamente a AT & T a compartir Unix con el mundo, pero hizo mucho más fácil la decisión.

Programa peligroso!
El sistema operativo Unix nació durante el punto más creativo en cualquier historia de la tecnología: el fracaso. Un día en 1969, un administrador llegó con malas noticias al quinto piso de los Laboratorios Bell de AT & T (BTL) en Murray Hill, en Nueva Jersey. Bell estaba cerrando el proyecto Multics, explicó. (Multics fue el primer intento de BTL de crear un sistema de tiempo compartido que permitiría a muchos usuarios acceder y trabajar en una red informática a la vez.)

Unix explicado por Ken Thompson y Dennis Ritchie
Para el personal del proyecto, la noticia fue un golpe. Este fue un cambio "traumático ... El juguete se había acabado ... había una clara falta de impulso ", recordó uno de los empleados. Pero la cruda realidad era que Multics no funcionó.

"Multics no podía albergar a tres usuarios de manera eficiente", escribe el historiador de Unix Peter Salus en su libro "Un cuarto de siglo de Unix". "La investigación de Computación en BTL estaba de capa caída".
Sin desanimarse, los programadores de BTL Thompson, Ritchie, y otros de manera informal siguieron adelante con una versión a pequeña escala del concepto en una minicomputadora PDP-7. La versión estándar de la historia de Unix indica que Ken Thompson ejecutaba el programa de juego Space Travel en Multics y quería conservarlo. El nuevo proyecto, sin embargo, era mucho más que eso. Diciéndole a sus superiores que estaban desarrollando software de edición de texto, el grupo incluso se las arregló para hacerse con una máquina PDP-11/20 de Bell.

"Sabíamos que hacíamos trampa - habíamos prometido un sistema de procesamiento de texto, no un sistema operativo", Ritchie admitió más tarde. El equipo de hecho entregó Unix como una aplicación de procesamiento de texto para el Departamento de Patentes, pero lo que Bell consiguió eventualmente fue un sistema operativo aunque en los inicios era complicado.
"El desarrollo del programa generalmente, ocurría fuera de horas", explicó posteriormente un programador a Salus. "Los terminales de la máquina de desarrollo se encontraban en una sala común y cuando varias personas estaban en el trabajo, uno decía !programa peligroso!" antes de ejecutar un archivo a.out nuevo (el archivo de salida por defecto del editor de enlace). Esto permitía los demás salvar a su editor de archivos de forma rápida (y a menudo). "

A principios de 1970, los componentes y conceptos básicos relacionados con Unix se habían establecido. Escrito en el lenguaje de programación C, Unix ofrecía un apretado conjunto de "herramientas" o aplicaciones, cuyas cadenas de texto podían ser "conducidas" (piped en el original (*)) de un programa a otro.
"Unix ahora tenía su propio lenguaje", señala Salus. "Tenía una filosofía, una ética. Tenía un grupo relativamente pequeño de usuarios dedicados en un puñado de sitios de Bell AT & T". La pregunta ahora era que haría AT & T con el nuevo sistema operativo?.

Dispuestos a hacer nuestra parte
Casi veinticinco años antes de que el primer manual del programador de UNIX fuera publicado, el Departamento de Justicia de los Estados Unidos anunció que iba a proceder con una acción antimonopolio contra AT & T, que controlaba la mayor parte de la red telefónica del país. La queja de 73 páginas fue publicada en 1949, justo después de que Harry Truman fuera reelegido a la Casa Blanca. Acusaba a AT & T de operar una conspiración para fijar los precios. El documento también acusó a la subsidiaria de AT & T Western Electric de monopolizar el mercado de los teléfonos.
El Departamento de Justicia exigió que AT & T se despojara de la empresa fabricante de dispositivos, pero la guerra de Corea estalló un año después. AT & T respondió envolviéndose en la bandera de Estados Unidos, destacando su papel como un contratista de defensa y su administración de los Laboratorios Sandia.

"Bell Systems siempre ha estado dispuesto a hacer su parte en la defensa nacional mediante la realización de trabajos para los que está especialmente equipado", escribió el presidente de AT & T a David Lilienthal, presidente de la Comisión de Energía Atómica. Sin embargo, agregó, "esta situación en relación con la demanda antimonopolio nos hace preguntarle si en realidad sería deseable en el interés nacional para nosotros llevar a cabo este proyecto."
En 1951, AT & T tenía el Pentágono de su lado. "Es claro para mí que los esfuerzos de movilización se verán obstaculizados por presionar con esta demanda", advirtió el secretario de Defensa ese año. Pidió que la acción del Departamento de Justicia se aplazara " mientras que la situación actual existiera."

Un año más tarde, Truman había desaparecido, reemplazado por Dwight Eisenhower. AT & T presionó a Eisenhower a desestimar la demanda antimonopolio. En el verano de 1953, el nuevo fiscal general del gobierno Herbert Brownell se reunió con el abogado general del la empresa T.B. Price.

En la reunión, Brownell pidió a AT & T pensar en un acuerdo voluntario. "Me preguntó si, si revisamos nuestras prácticas, seríamos capaces de encontrar cosas que estamos haciendo que alguna vez fueron consideradas completamente legales, pero ahora podrían estar en violación de las leyes antimonopolio o cuestionables en ese sentido", recordó después el representante de AT & T. El nuevo fiscal general también aseguró a AT & T que "si conseguían llegar a un acuerdo ​​él podría conseguir la aprobación del Presidente en 5 minutos".
Tal lista de cosas fue presentada, y en 1956 AT & T y el gobierno llegaron a lo que se llamó el "Decreto de Consentimiento" sobre el asunto.

Mantener la bestia tranquila
Central en el decreto de consentimiento había una disposición que indicaba que las patentes de Bell Systems pudieran ser objeto de licencia a los competidores por encargo. AT & T tenía 8.600 patentes de licencias cruzadas con General Electric, RCA, y Westinghouse. Estas ahora serían licenciadas sin pago de regalías a los solicitantes que no fueran las mencionadas empresas, y las patentes futuras de AT & T tuvieron que ser autorizados a los solicitantes a tasas razonables, y la información técnica necesaria tenía que ser compartida.
Igualmente importante fue la exigencia de que AT & T se mantuviera al margen de "cualquier otro negocio que el suministro de los servicios de una compañía común de comunicaciones". El decreto también ordenaba a Western alejarse de "cualquier negocio, diferente del carácter o tipo realizado por Western o cualquiera de sus filiales para empresas de Bell Systems."

Como señala el historiados de las telecomunicaciones Gerald Brock, este acuerdo esencialmente no fue un problema. Le permitió a AT & T mantener la Western Electric y su monopolio, pero hizo la empresa de telecomunicaciones mucho más dependiente de las decisiones regulatorias. AT & T "perdió la libertad para entrar en otros mercados, cuando veía tal ventaja", señala Brock.
El convenio también hizo que AT & T fuera mucho más prudente acerca de las innovaciones que salían de los laboratorios Bell. "Los abogados de BTL eran conservadores", explica Salus. "No tenía ningún sentido agravar la bestia que era el Departamento de Justicia. No hay negocio, excepto los teléfonos y los telegramas."

Pagar por adelantado
Fue en este contexto en el que Ken Thompson presentó su trabajo en el Cuarto Simposio de la Asociación para Maquinaria de Computación sobre Principios de Sistemas Operativos en octubre de 1973. De repente, "una lluvia de solicitudes" para obtener más información empezaron a llegar de sitios "que no tenía nada que ver con el BTL, AT & T, o Western Electric," escribe Salus. La publicación del documento "inició una inundación", especialmente de las universidades en busca de software asequible.
La respuesta de AT & T a este golpe de suerte fue precavida. "La empresa adoptó una visión muy auto-restrictiva del decreto", explicó más tarde un programador de Bell, y muy preocupada por Unix. De hecho, la administración de AT & T "no entendía lo que había en Unix", admitió más tarde otro administrador.

Por lo tanto, "en lugar de irritar el dragón judicial", el departamento jurídico de AT & T decidió licenciar también patentes de UNIX, pero "dejando claro que no tenía intención de ejercer el software como un negocio". Una charla retrospectiva sobre la política de marketing de AT & T / Unix efectuada diez años más tarde describió los términos de Bell Unix:

1.- Sin Publicidad
2.- Sin soporte
3.- Si correcciones de errores
4.- Pago por adelantado

Esto no desanimó los operadores de las universidades y el gobierno. La oficina de licencias de patentes de Bell en 1970 generalmente negociaba cuatro o cinco ofertas al año. En 1974 "el personal de la oficina estaba, simplemente, abrumado por el número de solicitudes de licencias de Unix", explica Salus. Y todo empeoró "cuando las primeras empresas militares y comerciales empezaron a solicitar licencias."
Hizo daño a Unix la negativa de AT & T de proporcionar apoyo técnico? Por el contrario, argumenta Salus. En cambio, la política tuvo un "efecto inmediato: obligó a los usuarios a compartir unos con otros. Ellos compartieron ideas, información, programas, corrección de errores y correcciones de hardware. "

Unix era un "regalo del cielo" para las divisiones de computadora de las universidades, observa el historiador sobre computadoras Paul Ceruzzi. Por una tarifa de licencia nominal podrían obtener el código fuente, procesarlo con un compilador de C, y depurarlo y desarrollarlo masivamente con ayuda de mano de obra barata de estudiantes graduados. "En contraste, la mayoría de los vendedores de ordenadores guardaban su código fuente como las joyas de la familia, proporcionándolo en raras ocasiones, y hacían todo lo posible para casar a los clientes con sus productos."
En otras palabras, las políticas sobre UNIX de AT & T ayudaron a convertir a Unix el sistema operativo que todos hemos llegado a conocer, y, si no el amor, en entendimiento prevalece como la filosofía que igual guía el movimiento de "código abierto", de nuestro tiempo.

No todos están de acuerdo con esta interpretación. Las lineas de tiempo e historias sobre el código abierto rara vez o sólo brevemente mencionan el Decreto de Consentimiento o su impacto en el Unix de AT & T. "En la década de 1970 AT & T distribuyó las primeras versiones de UNIX sin costo alguno para el gobierno y los investigadores académicos", señala Wikipedia, "pero estas versiones no vienen con un permiso para redistribuir o distribuir las versiones modificadas, y por tanto no puede ser considerado software libre en el sentido moderno de la frase. "
Es difícil imaginar, sin embargo, que la experiencia inicial de Unix no ayudara a crear expectativas que abrieron el camino para el código abierto. En cualquier caso, el Decreto de Consentimiento de 1956 probablemente no reciba demasiados avisos de cumpleaños en Facebook. Para que conste, este año cumple 55 años.

Material de lectura adicional
Paul E. Cerruzi, Una historia de la computación moderna


(*)-> Se refiere a la capacidad de los sistemas *nix de conectar la salida de un comando con la entrada de otro (Por ejemplo en "# ls | less" la barra vertical conduce la salida del comando "ls" a la entrada del comando "less")(NDT). Regresar.