peron:~$ cat historia_unix.txt

Origenes e Historia de UNIX, 1969-1995

En las ramas de la ingeniería suele afirmarse que la existencia de un notorio "efecto de segundo sistema" es capaz de impactar en los sucesores de los pequeños prototipos experimentales. A menudo la urgencia por incorporarle características prescindibles - y omitidas en un primer prototipo - provoca como consecuencia un diseño excesivamente complicado, grande e impráctico. Incluso resulta más desconocido aún un llamado "efecto de tercer sistema" (por resultar menos frecuente). Existen ocasiones en las que - una vez que el segundo sistema ha colapsado por su propio peso - se torna posible avizorar un retorno a la simpleza, para obtener a partir de allí un resultado funcionalmente correcto.

El Unix original es consecuencia de este "efecto del tercer sistema". Puede considerarse como su abuelo al pequeño y simple CTSS (Sistema de Tiempo Compartido Compatible), primer - o bien segundo, dependiendo de la definición que tomemos para determinarlo - sistema de cómputo de tiempo compartido. Su padre fue el MULTICS, un intento pionero por elaborar una "utilidad de información" saturada de características que graciosamente otorgase cómputo a tiempo compartido en mainframes para comunidades enormes de usuarios. MULTICS, de hecho, colapsó por su propio peso. Pero de dicho colapso surgió Unix.

Génesis: 1969-1971

Unix nació en 1969 en la mente de un cientista del cómputo de los Laboratorios Bell, Ken Thompson. Thompson se había desempeñado como investigador en el Proyecto Multics, una experiencia que le resultó molesta por el primitivo cómputo por lotes que regía en casi todos los sitios de investigación con ordenadores del momento.

El concepto de tiempo compartido era aún novel a finales de la década de 1960; su primer especificación había sido concebida apenas diez años antes por el científico de cómputo John McCarthy (también inventor el lenguaje LISP), mientras que el primer despliegue de este tipo de sistemas había ocurrido en 1962, siete años antes. Los sistemas operativos de tiempo compartido aún eran unas bestias experimentales y temperamentales.
El Hardware de computadora era por entonces mas primitivo que lo que los desarrolladores puedan hoy fácilmente recordar. Las máquinas más poderosas del momento disponían una potencia de cálculo inferior a la de un horno de microondas actual. Las terminales de presentación de video estaban en su infancia y no serían utilizadas ampliamente sino hasta transcurridos otros seis años. El dispositivo interactivo estándar de los primeros sistemas de cómputo a tiempo compartido era la teletipo ASR33 - un dispositivo lento, ruidoso que imprimía únicamente en mayúsculas sobre rollos de papel prensa. El ASR33 motiva la tradición Unix de órdenes y respuestas cortas.

La burocracia tecnocrática adoptada para el proyecto Multics no fue propensa a la improvisación en la programación, y la compartimentación de tareas provocó graves inconvenientes, primcipalmente en lo concerniente a obtener resultados rápidos en la programación.

Cuando los Laboratorios Bell se retiraron del consorcio de investigación de Multics en 1967, Ken Thompson conservó en su mente varias ideas inspiradas por Multics sobre cómo crear un sistema de ficheros. Lo que más lamentó Thompson - sin embargo - fue quedarse sin una máquina en la cual poder correr un juego de computadora que había escrito como excusa de evaluar Multics durante los frecuentes tiempos muertos surgidos en su desarrollo: su "Space Travel" (una simulación de aventuras de ciencia ficción que involucraba navegar en un cohete a través del sistema solar).

El desarrollo de juegos que - gracias al mainframe podrían emplear matemáticas, tablas algebraicas, fórmulas físicas, y despliegues lógicos constituyeron siempre un fuerte aliciente para Thompson, que los prefería como una manera de impulsarse a trabajar y condimentar el ambiente científico de laboratorio.

La PDP-7

Comenzó así a engendrarse Unix dentro de una superada minicomputadora DEC PDP-7, recuperada de los Laboratorios Bell, alegadamente para prestar soporte a la oficina de patentes del laboratorio, pero realmente como una plataforma para el juego de Viaje Espacial y un campo de pruebas para las ideas de Thompson sobre el diseño de sistemas operativos.

Ken Thompson recuerda que un lavarropas actual dispone de más memoria RAM que la PDP-7 tenía de RAM y espacio de disco combinado. En aquellos tiempo, un disco grande almacenaba menos de un megabyte de información.

La historia se completa con Dennis Ritchie, primer colaborador de Thompson, hombre reconocido como co-inventor de Unix y creador fundamental del lenguaje de programación C. Richie observa:

"Lo que queríamos preservar no era sólo un buen ambiente en el cual programar, sinu un sistema alrededor del cual pudiese formarse una comunidad. Sabíamos por experiencia que la escencia de la computación comunal - como la ofrecida por máquinas de acceso remoto y tiempo de cómputo compartido - no significa sólo mecanografiar programas en un terminal en lugar de hacerlo con conmutadores, sino permitir una comunicación cercana".

El asunto de los ordenadores considerados no sólo como un dispositivo lógico sino como un núcleo alrededor del cual se fundaría de comunidad rondaba en el aire; además del año de llegada del hombre a la luna, 1969 fue también el año donde se invetó la ARPANET (ancestro directo de la Internet actual). El tema de la "comunidad" resonaría a través de la historia subsecuente de Unix.

Dennis Ritchie, Doug McIlroy y algunos pocos colegas más del laboratorio se habían acostumbrado a la computación interactiva que permitía Multics y no querían perder dicha capacidad. El sistema operativo para la PDP-7 de Thompson les ofreció un bote salvavidas en su ambiente de trabajo.

La implementación del "Space Travel" de Thompson y Ritchie no pasaría desapercibida. Inicialmente, el software de la PDP-7 hubo de ser compilado de forma cruzada en un mainframe General Electric. Los programas utilitarios que Thompson y Ritchie escribieron para dar soporte al juego en la PDP-7 constituyeron - en sí mismos - un núcleo de base para Unix - a pesar que este nombre en sí no se aplicaría hasta 1970. Su nombre original fue "UNICS" (Servicio de Información y Cómputo Uniplexado), al cual Ritchie describiría como "una burla algo traicionero sobre Multics", que significaba Sistema de Información y Cómputo Multiplexado.

Incluso en sus primeras etapas, el Unix de la PDP-7 tenía una gran similitud con los Unix actuales y proveía un ambiente de programación más agradable de lo que se encontraba disponible en el resto los mainframes de la era del procesamiento por lotes alimentado a tarjetas perforadas. Unix podía considerarse tal vez el primer sistema bajo el cual un programador podría sentarse directamente en una máquina y programar al vuelo, explorando las posibilidades y evaluarlas mientras lo componía. Gracias a ello Unix contaría a lo largo de su vida con un patrón de retroalimentación incorporando características mediante la atracción de programadores voluntarios altamente experimientados impacientes por contar con unambiente de programación sin las limitaciones de otros sistemas operativos. Este patrón fue demarcándose desde un comienzo en los laboratorios Bell en sí.

La Tradición Unix de concebir programas pequeños con métodos informales también tuvo sus inicios desde sus comienzos. Donde Multics había sido un proyecto grande con miles de páginas de especificaciones técnicas - elaboradas antes de que el hardware siquiera arribase - el primer código Unix en ejecucióin fue escrito por tres personas e implementado por Ken thompson en dos días - en una máquina obsoleta cuya función designada era constituirse apenas una terminal de gráficos para una "verdadera computadora".

El primer trabajo oficial de Unix, en 1971, fue dar soporte a lo que hoy llamaríamos procesamiento de textos para el departamento de patentes de los Laboratorios Bell; de hecho la primer aplicación fue el ancestro del formateador de texto nroff. Este proyecto por sí solo justificó la compra de una PDP-11, una minicomputadora mucho más capacitada.

La Administración de los Laboratorios Bell siguió sin enterarse que el sistema de procesamiento de texto que Thomson y sus colegas estaban construyecto estaba incubando en realidad un sistema operativo.

Los Laboratorios Bell no tenían planeado desarrollar sistemas operativos - de hecho AT&T se había unido al consorcio Multics precisamente para evitar tener que programar uno por sí misma. Aún así, el complicado sistema resultó un éxito resonante, estableció a Unix como componente permanente y valioso de la ecología de cómputo en los Laboratorios Bell, y alumbró otro tópico recurrente en la Historia de Unix: una asociación cercana con el armado y formateo de documentos, y las herramientas de comunicación. El manual de 1972 declara 10 instalaciones.

Sobre este período, escribiría Dough McIlroy:

"La revisión de pares y el simple orgullo por la calidad de la mano de obra nos acicateaba para reescribir o descartar partes del código fuente en la medida que emergían mejoras a nuestras ideas más básicas. Nos era prácticamente desconocida la rivalidad profesional y la protección del plantel: de modo que sucedían muchas cosas buenas sin que nadie necesitara ser propietario de las innovarciones".

Pero tomaría otro cuarto de siglo para que todas las implicancias de estas observaciones se hicieran aparentes.

Éxodo: 1971-1980

El sistema operativo Unix original fue programado en lenguaje ensamblador, y sus aplicaciones lo fueron en una mezcla de ensamblador y un lenguaje interpretado llamado B, cuya virtud era ser lo suficientemente pequeño para correr en la vieja PDP-7. A resultas de que B no era necesariamente potente como para programar sistemas, Dennis Ritchie le incorporó tipos de datos y estructuras. A comienzos de 1971 el lenguaje resultante de la mejora evolutiva de B fue bautizado C, y para 1973 Thompson y Ritchie tuvieron éxito en reprogramar Unix con este nuevo lenguaje. La movida fue decididamente audaz (en ese momento la programación de sistemas se realizaba en ensamblador de manera de poder extraer el máximo rendimiento del hardware, y el concepto mismo de un sistema operativo portable apenas si se había dislumbrado.

Incluso en un momento tan tardío como 1979, Ritchie se sintió obligado a escribir:

"Parece cierto que mucho del éxito de Unix proviene de la legibilidad, modularidad, y portabilidad de su software, que de hecho fluye de su expresión en lenguajes de alto nivel".

Esto denotaba que aún necesitaba llamar la atención sobre dicho particular.

En el paper conjunto de 1974 publicado en Comunicaciones del ACM, Ritchie y Thompson ofrecieron a Unix la oportunidad de alcanzar su primer exposición pública. En dicho paper, sus autores describen la simpleza sin precedentes del diseño de Unix, y reportan unas 600 instalaciones del mismo. Todas lo fueron en máquinas que - incluso para los estándares del momento - contaban con escasa potencia, pero - como Ritchie y Thompson escribieron:

"Las limitaciones no sólo instigan la economía, sino que también una cierta elegancia en el diseño".

Tras la exposicón del Paper CACM, laboratorios de investigación de todo el mundo clamaron por la oportunidad de probar Unix por sí mismos. Bajo un Decreto de Consenso de 1959 originado en un Acuerdo por un caso por libre competencia, AT&T - la organización madre de los Laboratorios Bell - tenía legalmente prohibido ingresar al negocio del cómputo. Unix no podía - por tanto - ser convertido en un producto comercial. En efecto, bajo los términos del Decreto de Consenso, Laboratorios Bell tenía requerido licenciar toda su tecnología no telefónica a quienquiera que lo solicitase. Ken Thompson comenzó silenciosamente a contestar pedidos haciendo despacho de paquetes de cintas y discos - y de acuerdo con la leyenda, cada uno acompañado con una nota escrita de puño y letra que decía:

Con amor, Ken

Esta expansión se dio años antes que se popularizaran las microcomputadoras personales. No solo el hardware requerido para correr Unix era demasiado costoso como para quedar al alcance de un individuo, sino que nadie consideraba aún siquiera que esta preposición cambiaría en un futuro cercano. De modo que las máquinas Unix estvieron disponibles únicamente por gracia de las grandes organizaciones con los mayores presupuestos: corporaciones, universidades del sistema privado, agencias gubernamentales. Aún así, la utilización de estas minicomputadoras se hallaba menos regulado que el de los mayores mainframes, por lo que el desarrollo rápido de Unix cobró un aire contracultural. Eran principios de los 70s, los programadores pioneros del Unix eran hippies desgarbados. Disfrutaban de la computación recreativa con un sistema operativo que no sólo les ofrecía desafíos fascinantes en la cresta de la ola de las ciencias de la computación, sino que también subvertía todas las enunciaciones técnicas y las prácticas de negocios que iban de la mano con el Gran Cómputo. Tarjetas perforadas, COBOL, trajes de negocios, y mainframes IBM de procesamiento por lotes, todas estas visiones eran despreciados como algo atildadamente viejo; los hackers de Unix se rebelaban en el sentido que construían el sistema del futuro en simultaneidad con hacerle Fuck You "al sistema".

La excitación de esos días está capturada en una frase de Douglas Comer:

"Muchas universidades contribuyen a Unix. En la Universidad de Toronto, el departamento adquirió una impresora/plotter de 200 puntos por pulgada y construyó software que usaba la impresora para simular una fotocomponedora. En la Universidad de Yale, los estudiantes y cientistas del cómputo modificaron el intérprete de comandos de Unix. En la Universidad Purdue, el Departamento de Ingeniería Eléctrica ha realizado grandes mejoras en su desempeño, produciendo una versión de UNIX capaz de soportar un mayor número de usuarios. Purdue también ha desarrollado una de las primeras redes de datos de computadoras UNIX. En la Universidad de California en Berkeley, los estudiantes programaron un intérprete nuevo y docenas de utilitarios pequeños".

Para finales de los 70s -momento en que los Laboratorios Bell lanzaron Unix Versión 7 - no cabían dudas que éste daba cuenta de los problemáticas de cómputo de numerosos departamentos de investigación, y que al hacerlo incorporaba muchas de las ideas que habían surgido en las universidades.

La Versión 7 fue el primer Unix del que puede decirse que todos sus componentes serían reconocibles a un programador moderno de Unix fue la Versión 7 lanzada en 1979. El primer grupo de usuarios de Unix se había formado el año anterior. El resultado final no fue solamente un sistema mejorado. La marea de ideas había iniciado un nuevo reflujo, desplazándose desde la academia al laboratorio industrial, fluyendo de vuelta a la academia, y finalmente moviéndose a un número creciente de sitios comerciales.

Para este momento Unix estaba operativo en funciones de soporte en todos los Laboratorios Bell, y se había esparcido a universidades tan alejadas como las de Australia, donde las notas de 1976 de John Lions sobre el código fuente de Unix Versión 6 se convirtieron en la primer documentación seria que enseñaba los mecanismos internos del kernel de Unix. Muchos hackers de Unix mas antiguos aún atesoran una copia.

El libro de Lions fue una sensación editorial sorprendente en este contexto. Debido a que las sublevaciones a la ley de Derecho de Autor no podrían permitir tal publicada en los EE.UU. sin problemas, allí proliferaron las fotocopias de fotocopias. Se decía por entonces que no podías ser un hacker de kernel sin un Lions.

Los comienzos de la industria de Unix también fueron condescendientes. La primer compañía dedicada a Unix, Santa Cruz Operation ("SCO") dio comienzo a sus actividades en 1978, y su primer compilador de C comercial se vendió ese mismo año. Para 1980 otra oscura compañía de software de Seattle también se adentró en la jungla Unix, portando la versión de AT&T y vendiéndola para microcomputadoras, criatura a la que llamó XENIX. Pero el idilio de Micro-soft con Unix como producto no duraría mucho tiempo (aunque Unix continuaría siendo utilizado para afrontar la mayoría del desarrollo interno en la compañía incluso hasta después de 1990).

TCP/IP y las Guerras UNIX

El campus de Berkeley de la Universidad de California rápidamente comenzó veerse como el centro académico más importante en el desarrollo Unix. La investigación con Unix había comenzado allí en 1974, cobrando un ímpetu sustancial cuando Ken Thompson enseñó en dicha Universidad durante su año sabático de 1975-76. El primer lanzamiento de la Distribución de Software de Berkeley (BSD) fue en 1977, desde un laboratorio conducido por el entonces casi desconocido estudiante graduado Bill Joy. Para 1980, Berkeley constituía el epicentro de una sub-red de universidades que activamente contribuían a esta variante de Unix. Las ideas y el código fuente del Unix de Berkeley (incluyendo su editor vi) fueron realimentados desde Berkeley a los Laboratorios Bell.

Con el cambio de década en 1980, la Agencia de Proyectos de Investigación Avanzada para la Defensa (DARPA) requirió un equipo para implementar la novísima pila de protocolos TCP/IP a las microcomputadoras VAX que corrían Unix. Las PDP-10s que habían impulsado la ARPANET estaban para entonces próximas a ser superadas, y ya circulaba en el ambiente gubernamental rumores según los cuales DEC podría forzar la cancelación en el desarrollo de la serie PDP-10 para concentrarse en dar soporte a sus VAX. DARPA se había propuesto inicialmente contratar a DEC para implementar TCP/IP, pero rechazó tal idea porque consideraron que DEC podría no tener voluntad a los pedidos de modificaciones a su sistema operativo propietario VAX/VMS. En lugar de ello, DARPA escogió al Unix de Berkeley como plataforma - explícitamente porque "su código fuente está disponible y no encumbrado" (cerrado). El Grupo de Investicación de Ciencias de la Computación de Berkeley se encontró en el lugar adecuado en el momento adecuado, y con las herramientas de desarrolló más potentes: el resultado se convirtió posiblemente en el giro más crítico en la historia de Unix desde su invención.

Hasta que no se produjo el lanzamiento de BSD 4.2 con la implementación de TCP/IP en 1983, Unix había contado únicamente con un soporte para redes de datos que podría describirse como muy magro. Los primeros experimentos con Ethernet habían resultado insatisfactorios, pero se había implementado una funcionalidad en los Laboratorios Bell - improvisada pero operable - a la que habían llamado UUCP (programa de Copia Unix a Unix). Esta se encontraba destinada a distribuir software por módem vía las líneas telefónicas convencionales. UUCP era capaz de reenviar correo electrónico Unix a través de máquinas separadas ampliamentes, y - luego que en 1981 se organizara un conjunto de carteleras electrónicas distribuidas que permitía a sus usuarios emitir mensajes de texto a cualquier lugar que tuviese líneas telefónicas y sistemas Unix (el USENET) - Unix le dio soporte.

Aún así, los pocos usuarios Unix enterados de las brillantes luces de la ARPANET se sentían atrapados en un pantano. No disponían de FTP, no tenían Telnet, sólo la ejecución de trabajos remotos más restringidos, y dolorosamente la UUCP se popularizó cuando los módems veloces contaban con 300 baudios.

Antes de TCP/IP, las culturas de ARPANET y Unix no se entremezclaban. La visión de Dennis Ritchie de computadoras como una forma de "permitir la comunicación cercana" consideraba en realidad poco más que comunidades colegiadas operando a través de máquinas individuales de tiempo compartido o en un mismo centro de cómputo; no la extendía a las "redes distribuidas continentales" de las que los usuarios de la red ARPA habían comenzado a formar parte desde mediados de la década de 1970. Los primeros ARPANETeros - por su parte - consideraban a Unix como un sistema crudo e improvisado que se arrastraba en hardware risiblemente raquítico.

Luego de TCP/IP, todo cambió. La cultura de ARPANET y las culturas Unix comenzaron a unirse por sus flancos, en un desarrollo que podría eventualmente salvar a ambas de su desaparición. Pero habrían de sortear un infierno a pagar primero como consecuencia de dos desastres no relacionados; el crecimiento de Microsoft y la desinversión de AT&T.

En 1981, Micro-soft hizo un trato histórico con IBM concerniente a su nueva microcomputadora IBM PC. Bill Gates compró QDOS ("Sistema Operativo Sucio y Desprolijo"), un clon de CP/M que su programador Tim Paterson había improvisado en seis semanas para su compañía empleadora, Seattle Computer Products. Gates, ocultando el trato con IBM a Paterson y SCP, adquirió todos los derechos por el código fuente por U$S 50.000. Luego habló con IBM para que permitiera a Micro-soft comerciar MS-DOS de forma separada del hardware de la PC. Durante la década siguiente, Bill Gates sacaría provecho de un código que no escribió para hacerse miltimillonario, y tácticas de negocios aún más dañinas que el trato original terminarían otorgando a Microsoft un monopolio cerrado sobre el cómputo de escritorio. XENIX como producto resultaría rápidamente desinflado, y eventualmente vendido a SCO.

No resultó aparante en tal momento cuán exitoso (o cuan destructivo) podría ser Microsoft. Como el primer modelo de la PC de IBM carecía de la potencia de hardware necesaria para afrontar la ejecución de Unix, muchos hackers apenas si la notaron del todo (a pesar que, irónicamente, DOS 2.0 eclipsó a CP/M principalmente gracias a que el co-fundador de Microsoft Paul Allen le había incorporado funcionalidades de tipo Unix que incluían el uso de subdirectorios y caños).

En 1982 hubo situaciones que resultaron mucho más interesantes para la comunidad hacker: el lanzamiento de Sun Microsystems.

Los fundadores de Sun Microsystems Bill Joy, Andreas Bechtolsheim y Vinod Khosla se propusieron construir la "máquina Unix de los sueños", incorporándole capacidad de redes de datos. Combinaron hardware diseñado en la Universidad de Stanford con el Unix escrito en Berkeley para producir un éxito arrasador, plantando así el ladrillo fundacional de la industria de las estaciones de trabajo ("Workstations"). Por entonces, nadie se había ocupado demasiado en percatar que el acceso al código fuente de una rama del árbol Unix gradualmente secaría las demás, especialmente en la medida que Sun comenzara a comportarse menos como una compañía en sus inicios y más como una firma convencional. Berkeley aún distribuía BSD junto con su código fuente.

Oficialmente, cada licencia del código fuente del System III costaba U$S 40.000 cada una; no obstante los Laboratorios Bell hacía la vista ciega a la gran cantidad de copias de las cintas del Unix de los Laboratorios Bell que se encontraban en circulación; las univeresidades aún intercambiaban código con los Laboratorios Bell, y por entonces parecía que la comercialización de Sun de Unix podría llegar a ser lo mejor que podría suceder.

1982 fue también el año en donde el lenguaje C comenzó a mostrar los primeros signos de encontrarse establecido, destacando como el lenguaje de programación de sistemas por excelencia incluso por fuera del mundo Unix . Sólo le tomaría cinco años a C dejar a los demás ensambladores de código máquina prácticamente en desuso.

Para comienzos de la década de 1990, C y C++ dominarían nó sólo los sistemas sino la programación de aplicaciones; y para finales de 1990 todas los otros lenguajes compilados convencionales quedarían efectivamente obsoletos.

En el momento en que DEC canceló el desarrollo de la máquina PDP-10 sucesora (el "Proyecto Júpiter") en 1983, las VAXxen que corrían Unix comenzaron a tomar la posta como los equipos dominantes en la ARPANET, posición que mantendrían hasta ser desplazadas por las estaciones de trabajo Sun.

Para 1985, casi el 25% de todas las VAXxen corrían Unix a pesar de la fuerte oposición de DEC, que incentivaba su propio VMS.

La cancelación de Júpiter tuvo una consecuencia de largo plazo menos obvia: la muerte de la cultura hacker centrada en las PDP-10s de Laboratorio de Inteligencia Artificial del MIT motivó a un programador llamado Richard Stallman para comenzar a escribir GNU, un clon de Unix de código completamente libre.

Para 1983 existían no menos de seis sistemas operativos similares a Unix para la microcomputadora IBM PC: uNETix, Venix, Coherent, QNX, Idris y el port almacenado en la plaqueta hija de desarrollo para PC, el Sritek. Sin embargo, aún no existía un port de Unix de las versiones nuevas System V o BSD para la PC, ya que ambos grupos coincidieron en considerar al microprocesador 8086 como desesperadamente poco potente para esta tarea, y ninguno mostró predisposición alguna de destinarle esfuerzos. Ninguno de estos sistemas operativos similares a Unix constituyó éxito comercial alguno, aunque no dejaban de ser indicio de una demanda significativa de Unix para hardware asequible, la cual no estaba siendo satisfecha por los proveedores principales. L@s usuari@s individuales tampoco podían permitirse saciarla con una etiqueta de U$S 40.000 por la licencia del código fuente.

Sun ya tenía un éxito entre manos (¡y con imitadores!) cuando en 1983 el Departamento de Justicia de los Estados Unidos ganó su segundo caso antimonopolios contra AT&T, y procedio a dividir el Sistema Telefónico Bell en un proceso de desinversión. Esto desahució a AT&T del Decreto de Consenso de 1958 que le había impedido convertir a Unix en un producto comercial. AT&T se apuró a comercializar Unix System V - una movida que casi mató a Unix.

"Es verdad, pero su estrategia de mercadeo expandió a Unix internacionalmente". Ken Thompson

La mayoría de los incentivadores de Unix sostienen que la desinversión fue una gran noticia. Consideraron ver en la post-desinversión de AT&T, Sun Microsystems, y los pequeños imitadores de Sun, el alumbramiento de un núcleo industrial Unix sano, uno que - utilizando estaciones de trabajo baratas centradas en microprocesadores Motorola 68000 - podría desafiar y eventualmente romper el monopolio opresivo que se avecinaba sobre la industria del cómputo - el de IBM.

Lo que ninguno de ellos comprendió por entonces fue que la comercialización de Unix destruiría el libre intercambio de código fuente que había amamantado y dado vitalidad al sistema en su infancia. Al no conocer otro modelo que el secreto para recoger ganancias monetarias del software, y no disponer de otro modelo que el control centralizado para el desarrollo de un producto comercial, AT&T se aferró con uñas y dientes a la distribución paga del código fuente licenciado. Las copias de cintas de Unix se hicieron mucho menos interesantes ante la amenaza de procedimientos legales que podrían surgir a consecuencia de ellas. Las contribuciones de las universidades comenzaron a secarse.

Para empeorar las cosas, las nuevos grandes jugadores en el mercado Unix cometieron rápidamente errores estratégicos enormes. Uno fue intentar aventajarse con la diferenciación de producto, táctica que implicó que las interfaces de los Unix diferentes divergieran. Esto dio por el suelo con la compatibilidad cruzada inter-plataforma y fragmentó el mercado de Unix.

El otro error comedido adicional fue comportarse como si las computadoras personales y Microsoft fuesen absolutamente irrelevantes al prospecto de Unix. Sun Microsystems no llegó a ver que la expansión de la PC como commodities inevitablemente terminaría royendo el mercado lucrativo de sus estaciones de trabajo desde abajo. AT&T - fijada en las minicomputadoras y los mainframes de este tipo - intentó varias estrategias diferentes para convertirse en un jugador mayor en la industria del hardware (y fracasó en todas ellas). Una docena de pequeñas compañías dieron soporte a Unix en la PC, pero todas ellas lo hicieron con escasos aportes de inversión, y para colmo se enfocaron en vender sus estaciones de trabajo a desarrolladores e ingenieros, sin bajar sus miras jamás al sector de negocios o al mercado hogareño, al que se destinó Microsoft.

De hecho, incluso transcurridos años de la desinversión, la comunidad Unix continuó preocupada con la primer fase de las Guerras Unix - una disputa interna, la rivalidad entre el Unix System V y el Unix BSD. Los "pelolargos", repitiendo el grito de guerra de los primeros días de Unix una década antes, se veían a sí mismos como rebeldes contra un imperio corporativo (una de estas compañías pequeñas publicó un poster mostando un caza espacial similar a un X-Wing llamado BSD, que se alejaba a la velocidad de la luz de un logotipo similar al de "la Estrella de la Muerte" de AT&T, recucida en una explosión y llamas, como si tocaran la lira mientras Roma se incendiaba).

Pero en el año de la desinversión de AT&T también se produjo un hecho que tendría gran importancia a largo plazo para Unix. El programador/lingüista llamado Larry Well inventó silenciosamente la utilidad patch. Este programa de emparchado es una herramienta simple que aplica cambios generados por diff ("diferenciador") a un fichero de base. Implicó que los desarrolladores de Unix podían cooperar a partir de entonces transmitiéndose conjuntos de parches - cambios incrementales en el código fuente - en lugar de tener que transmitir los archivos completos del código fuente. Esto fue importante no sólo porque los parches ocupan menos espacio que los ficheros completos, sino que los parches podían a menodo aplicarse limpiamente incluso si el código base había resultado bastante alterado desde el momento en que el programador había escrito su parche. Con esta herramienta, las sendas de desarrollo de un código fuente común podrían divergir, crecer en paralelo, y reconvergir. El programa patch hizo mas que cualquier otra herramienta para afianzar el desarrollo colaborativo en la Internet - un método que revitalizaría a Unix luego de 1990.

En 1985 Intel sacó su primer microprocesador 80386, un chip capaz de direccionar 4 gigabytes de memoria RAM con un espacio de direccionamiento fijo. El diseccionado segmentado simplón implementado en el pobre 8086 y el 80286 resultó obsoleto en lo inmediatato. Esto constituyó grandes noticias, porque significaba que por primera vez, un microprocesador en la familia dominante Intel tendría la capacidad de correr Unix sin tomar compromisos dolorosos. Este suceso fue el muro contra el cual impactarían Sun y otros fabricantes de estaciones de trabajo. No lo percibieron.

1985 también fue el año en el que Richard Stallman publicó el Manifiesto GNU y creó la Fundación del Software Libre. Muy poca gente lo tomó a él o al Proyecto GNU seriamente, una opinión que demostraría estar seriamente errada. En un desarrollo no relacionado del mismo año, los creadores del sistema de ventanas X dieron publicidad a su código fuente sin royalties, restricciones o licencias. Como resultado directo de esta decisión, se congenio ésta como una zona neutral segura para la colaboración entre los vendedores de Unix, socavando argumentos entre los contendientes propietarios para establecer el motor gráfico de Unix.

En 1983 habían comenzado los primeros esfuerzos serios de estandardización apuntados a reconciliar las APIs del System V y las de Berkeley bajo el estandar /usr/group. En 1985 esto resultó continuado con la aparición del estándar POSIX, un esfuerzo respaldado por la IEEE. Este describe el conjunto de intersección de BSD y las llamadas de SVR3 (System V Publicación 3), y dispone el manejo de señales y gestión de trabajos superiores de Berkeley pero con retiene el control de terminal de SVR3. Todos los Unix estándares posteriores incorporarían POSIX como su directriz nuclear, y los Unix posteriores adherirían a ella. El único agregado fundamental en el kernel Unix moderno vendría luego a cargo de los sockets BSD.

En 1983 Larry Wall - el inventor de Patch - comenzó a trabajar en Perl, el cual se convertiría en el primero y más ampliamente utilizado de los lenguajes de guionado de código abierto. A comienzos de 1987 apareció la primera versión del compilador GNU C, y para finales de 1987 el núcleo del herramental GNU quedó completo: editor, compilador, depurador y otras herramientas básicas de desarrollo. En tanto, el sistema de ventanas gráficas X iniciaba su aparición en estaciones de trabajo relativamente baratas. En conjunto, estos proveerían una estructura para el desarrollo Unix de código abierto para la década de 1990.

1986 fue el año en que la tecnología de la PC se liberó de las garras de 1987. IBM, aún intentando preservar una curva precio/potencia entre su líneas de producto que favorecieran su negocio de alto margen en los mainframes, rechazó al 80386 para la mayoría de sus nuevas PC de escritorio PS/2, en favor del debilitado 80286. La serie PS/2 - diseñada alrededor de una arquitectura de bus de memoria propietaria encargada de desbarrancar a los fabricantes de clones - se convirtiría en un fracaso colosalmente caro. Compaq - el productor de clones más agresivo del mercado - arruinó la movida de IBM lanzando el primer microordenador clon de PC con procesador 80386. Incluso dotada con una velocidad de reloj de 16 MHz, este procesador podía correr un Unix de manera tolerable. Fue la primer PC que pudo hacerlo. La PS/2 pudo - por su parte - dejar una marca en PCs posteriores, haciendo del ratón un periférico estándar, por lo cual el conector establecido para el ratón fue del "tipo PS/2".

Podría hacer sido posible imaginar - por principio - que el Proyecto GNU de Stallman podría ser capaz de conjugarse a máquinas 80386 con el fin de concebir unas estaciones de trabajo Unix casi un órden de magnitud más baratas que las ofrecidas hasta el momento. Sin embargo, nadie parece haber puesto manos a la obra con esto. La mayoría de los programadores Unix ligados a las minicomputadoras y las estaciones de trabajo continuaban tratando con desdén a las baratas máquinas de microprocesadores 80x86 en favor de los diseños más elegantes badados en el microprocesador Motorola 68000. Y si bien muchos programadores contribuyeron al Proyecto GNU, entre los hackers de Unix tendía a ser considerárselo como un gesto computacionalmente quijotesco que improbablemente tuviese consecuencias prácticas de corto plazo.

La comunidad Unix no perdió jamás su veta rebelde. En retrospectiva, fue casi tan ciega como sus "enemigos imperiales" de IBM o AT&T. Ni siquiera Richard Stallman - quien ha declarado una cruzada moral contra el software propietario - realmente entendió cuan grave había resultado el daño de la comercialización de Unix; por entonces sus preocupaciones eran de índole abstracta y consideraciones de largo plazo. El resto de los hackers se mantuvieron a la espera de alguna variante imaginativa en la fórmula corporativa que resolviese los problemas de fragmentación, mercadeo agresivo, y giros estratégicos, y redimiera la promesa pre-desinversión del Unix. Pero lo peor estaba por venir.

1988 fue el año en que Ken Olsen (CEO de DEC) describió legendariamente a Unix como "aceite de serpiente". DEC había comercializado su propia variante de Unix para la PDP-11 ya desde 1982, pero realmente deseaba que el mercado del cómputo terminara por decantarse hacia su sistema operativo propietario VMS. DEC y la industria de las minicomputadoras estaban en graves problemas, arrastradas por mareas de potentes máquinas de bajo precio fabricadas por Sun Microsystems y los demás vendedores de estaciones de trabajo. La mayoría de estas estaciones corrían Unix.

Pero los problemas propios a la industrialización de Unix comenzaron a tornarse más severos. En 1988 AT&T ofertó por un 20% de Sun Microsystems. Estas dos compañías - líderes del mercado de Unix - comenzaban a despertarse ante la amenaza impuesta por las PC, IBM y Microsoft, y a percibir que cinco años de mutuo desangre habían dado poco resultado para mostrar. La alianza AT&T/Sun y la concreción de los estándares técnicos de la norma POSIX eventualmente hirvieron los vasos comunicantes entre las líneas de System V y BSD Unix. Pero la segunda fase de las Guerras Unix estallaría definitivamente cuando los comerciantes de seugunda mano (IBM, DEC, Hewlett-Packard y otros) se dieron a consolidarse en la Fundación de Software Abierto y se alinearon contra el Eje AT&T/Sun (representados por Unix International). Esto aseguraría más rounds a la pelea Unix Vs. Unix.

Mientras tanto, Microsoft hacia miles de millones de dólares explotando un jugoso mercado hogareño y de pequeños negocios, que las facciones de Unix nunca habían tenido la voluntad de explorar. El lanzamiento de Windows 3.0 en 1990 - la primera interfaz gráfica exitosa para el sistema operativo DOS de Microsoft - cementó el dominio de los de Redmont, y creó las condiciones que les permitirían arrasar y monopolizar el mercado para las aplicaciones de escritorio en la década de 1990.

Los años transcurridos entre 1989 y 1993 fueron los más oscuros en la historia de Unix. Parecía entonces que todos los sueños de la comunidad Unix habían fracasado. Las luchas intestinas habían reducido la industria Unix propietaria a bandas armadas que no podían confabular la determinación a la capacidad de desafiar a Microsoft. Los elegantes microprocesadores Motorola que habían sido los anhelados por la mayoría de los programadores de Unix habían perdido ante los microprocesadores Intel comunes y corrientes. El proyecto GNU fracasó en producir el kernel libre de Unix que venía prometía desde 1985, y luego de años de excusas era lógico que su credibilidad comenzara a desgastarse. Por su parte, la tecnologia de la PC estaba tornándose cada vez más corporativa. Los hackers pioneros de Unix de los 70s habían llegado a su edad madura y no eran eminentemente productivos ya. Si bien el costo del hardware disminuía rápidamente, Unix aún continuaba siendo demasiado caro. De a poco, los hackers comenzaron a darse cuenta que el viejo monopolio de IBM habia dado lugar a un nuevo monopolio de Microsoft, y que el software mal ingeniado de Microsoft arrastraría todo como un Tsunami.

Golpes contra el Imperio: 1991-1995

La primer luz al final del túnel surgió en 1990 a consecuencia de un esfuerzo de William Jolitz para portar BSD a un clon con 80386 (publicitado por una serie de artículos de revista de 1991 en adelante). Este portado 386BSD resultó posible ya que en 1988 - y parcialmente influenciado por Stallman - el hacker de Berkeley Keith Bostic había comenzado a limpiar a los ficheros de código fuente de BSD de código propietario de AT&T. Aún así el proyecto 386BSD recibió un golpe severo cuando - cerca de finales de 1991 - Jolitz se alejó de él destruyendo su propio trabajo. Existen explicaciones contradictorias sobre el asunto, pero el eje común en todas radica en el hecho que Jolitz anhelaba que el código fruto de su trabajo fuese publicado como código fuente libre, despreciando el hecho que sus espónsors corporativos optaran por un modelo de licenciamiento propietario.

En agosto de 1991 Linus Torvalds - por entonces un desconocido estudiante universitario de Finlandia - aunció el Proyecto Linux. Torvalds afirma que su principal motivación residía el alto costo del Unix de Sun en su universidad. Torvalds aduce también que en lugar de iniciar un esfuerzo propio se habría unido al esfuerzo BSD si hubiese conocido de él. Pero 386BSD no comenzó a aparecer sino hasta inicios de 1992, algunos meses más tarde que la primer publicación de Linux.

La importancia de ambos proyectos se hizo clara sólo retrospectivamente. En su momento, llamaron muy poco la atención incluso dentro de la cultura Hacker de la Internet - mucho menos en la comunidad Unix - que aún permanecía fijada en las máquinas más capacitadas que las simples PC, intentando reconciliar las propiedades especiales de Unix con las del modelo de negocios centrado en ventas.

Llevaría otros dos años de la gran explosión de la internet de 1993-94 hasta que la verdadera importancia de Linux y de las distribuciones BSD de código abierto fuese evidentes al resto del mundo Unix. Desafortunadamente para los BSDseros, un juicio de AT&T contra BSDi (la compañía startup que había respaldado el portado de Jolitz) consumió mucho de ese tiempo y motivó que algunos desarrolladores clave de Berkeley se pasaran a Linux.

Se alegó el copiado de código fuente y el robo de secretos comerciales. El código inflingido en sí no estuvo identificado por casi dos años. El juicio podría haber procedido por mucho más tiempo, si no hubiese sido por el hecho de que Novel adquirió USL a AT&T, y a resultas se buscó un acuerdo. Al final, se removieron tres ficheros de un total de 18.000 que por entonces componían la distribución, y se congeniaron una serie de cambios menores a otros ficheros. Por demás, la Universidad acordó agregar anoticiamientos de derechos de autor de USL a 70 ficheros, con la estipulación que aquellos ficheros continuarían siendo libremente distribuidos.

El acuerdo sentó un presedente importante al liberar un Unix entero y funcional del control propietario, pero sus efectos en BSD mismo fueron duros. El asunto no mejoró cuando entre 1992-94 cerraron el Grupo de Investigación para las Ciencias del Cómputo en Berkeley; a partir de entonces, la guerra facciosa dentro de la comunidad BSD pugnaría el desarrollo a tres bandas. Como resultado, el linaje BSD perdió la delantera con respecto a Linux en el momento crucial de la industria y perdió así la posición de liderazgo en la comunidad Unix.

Los esfuerzos de desarrollo de Linux y BSD fueron nativos a la Internet en un sentido que los Unix previos no habían podido. Confiaron en un desarrollo distribuido y en la herramienta patch de Larry Wall, reclutando desarrolladores vía correo electrónico y a través de grupos de noticias de Usenet. De manera acorde, obtuvieron un empuje sideral cuando los Proveedores de Servicio de Internet comerciales comenzaron a proliferar a partir 1993 activados por los cambios en la tecnología de telecomunicación y la disponibilidad comercial del backbone de Internet. La demanda de un acceso a Internet barato creció explosivamente a consecuencia de un hecho práctico definido: la invención de 1991 de la Telaraña de Alcance Global ("World Wide Web").

La Telaraña fue la "aplicación asesina" de la Internet, sus tecnologías de interfases gráficas de usuario la hicieron irresistible a una enorme población de usuarios finales no técnicos.

El mercadeo masivo de la Internet también incrementó la masa de programadores potenciales y disminuyó los costes transaccionales del desarrollo distribuido. Los resultados se reflejaron en proyectos tales como XFree86 - que empleó el modelo basado en la Internet para construir una organización de desarrollo más efectiva que la del Consorcio X oficial.

El primer XFree86 de 1992 le dio a Linux y a los BSDs la interfaz gráfica de usuario que habían echado de menos. En la siguiente década XFree86 constituiría el desarrollo principal de las interfaces gráficas X, y una porción cada vez mayor de la actividad del Consorcio X vendría a consistir en el tunelado de innovaciones originadas en la comunidad XFree86 como retroalimentación a los espónsores industriales del Consorcio X.

Para finales de 1993, Linux contaba tanto con la capacidad de Internet como del manejo gráfico por medio de la interfaz X. El herramental GNU al completo se encontraba disponible con él desde sus inicios, lo que afianzaba unos mecanismos de desarrollo de alta calidad. Por encima del herramental GNU, Linux oficiaba de polo de atracción, colectando y concentrando veinte años de desarrollo de software de código abierto, que había estado repartido a lo largo y a lo ancho de docenas de plataformas Unix propietarias anteriores. Para el momento en que el kernel Linux se encontrba en estadío Beta (versión 0.99), se trataba de un sistema esencialmente libre de cuelgues. La amplitud y la calidad de software que podía encontrarse en las distribuciones Linux implicaba que se podía construir un sistema completo listo para las actividades productivas más demandantes.

Uno a uno, los veteranos hackers de Unix más flexibles comenzaron a notar que el sueño largamente alumbrado de un sistema Unix barato para toda la comunidad había arribado desde una dirección totalmente inesperada. No lo hizo desde AT&T, ni Sun ni alguno de los vendedores tradicionales. Tampoco provino de un proyecto de cómputo académico organizado. Sino que se trató de un bricolage efervescente surgido de ka Internet a través lo que parecería ser una generación espontánea, gracias a una sorprendente apropiación y recombinación de elementos congruentes con la tradición Unix.

En otros lares, el maniobrado corporativo continuó. En 1992 AT&T desinvirtió sus intereses en Sun, y luego vendió sus Laboratorios de Sistemas Unix a Novell en 1993; Novell se deshizo de su marca registrada Unix al grupo de estándar X/Open en 1994; AT&T y Novell se unieron a la Open Software Foundation en 1994, logrando el armisticio en las Guerras Unix. En 1995, SCO adquirió a UnixWare (y los derechos del código fuente del Unix original a Novell. En 1996, X/Open y la OSF se unificaron, creando un único grupo de estándares Unix grande.

Pero los vendedores convencionales de Unix y la destrucción provocadas por las Guerras Unix los hizo cada vez mas rehacios y a la vez menos relevantes. El momento y energía en la comunidad Unix fluctuó hacia Linux y BSD, y a los desarrolladores de código libre. Para el momento en que IBM, Intel y SCO anunciaron su Proyecto Monterrey en 1998 - intento postrero de unificar en Un Único Gran Sistema de todos los Unix propietarios desbandados - los hackers y la prensa de comercio reaccionaron sorprendidos. El proyecto fue cancelado abruptamente en 2001 luego de tres años sin llegar a puerto alguno.

No puede decirse que la transición de la industria hubiera sido completada hasta el año 2000, cuando SCO vendió UnixWare y el la base original del código fuente a Caldera - un distribuidor Linux. Pero ya para 1995, la historia de Unix se transforma en la historia del Movimiento de Software Libre.

peron:~$

Retorno