peron:~$ cat historia_unix.txt
Entre las ramas de la ingeniería suele afirmarse que la existencia de un notorio "efecto de segundo sistema" es capaz de impactar los sucesores de los prototipos experimentales. A menudo, la urgencia por incorporar características prescindibles - y omitidas en un prototipo inicial - provoca como consecuencia un diseño excesivamente complicado, grande e impráctico. Más desconocido - por resultar infrecuente - es el denominado "efecto de tercer sistema". Detalla las ocasiones en las cuales - una vez que el segundo sistema ha colapsado por su propio peso - se avizora un retorno a la simpleza, haciendo posible obtener a partir de allí un mecanismo de funcionamiento adecuadamente 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 pionero intento de elaboración de una "utilidad de información", aunque saturada de características de las que se esperaba graciosamente que otorgasen cómputo a tiempo compartido a los mainframes de comunidades enormes de usuarios. MULTICS colapsó - de hecho - por su propio peso. De dicho colapso surgió - en efecto - Unix.
Unix nació en 1969 en la mente de un cientista del cómputo de los Laboratorios Bell, Ken Thompson.
La burocracia tecnocrática adoptada para el proyecto Multics no era 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. Thompson se había desempeñado como investigador en el Proyecto Multics, experiencia que le resultó algo traumática si consideramos el primitivo cómputo por lotes que regía en casi todos los sitios de investigación con ordenadores del momento.
A finales de la década de 1960 el concepto de tiempo de cómputo compartido era aún novel; existen posibilidades que su primera concepción apenasa diez años antes hubiese sido elaborada por el cientista de cómputo John McCarthy (también creador del lenguaje LISP), mientras que el primer despliegue práctico de este tipo de sistemas había ocurrido en 1962, siete años antes. Los sistemas operativos de tiempo compartido por entonces seguían siendo artefactos 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 un potencial de cálculo inferior al de un horno de microondas actual. Los 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 consistía en la teletipo - dispositivos lentos, ruidosos que imprimía únicamente en mayúsculas sobre rollos de papel prensa. El modelo ASR33 motiva la tradición Unix de órdenes y respuestas breves.
Cuando los Laboratorios Bell se retiraron del consorcio de investigación de Multics en 1967, Ken Thompson retuvo en su mente varios conceptos fundamentales inspirados por Multics que hacían a la manera de crear un sistema de ficheros.
Sin embargo, lo que más lamentó Thompson fue quedarse sin una máquina en la cual poder correr un juego de computadora que había escrito con la 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 - podí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.
Ken Thompson recuerda que un lavarropas actual dispone de más memoria RAM que la que disponía la PDP-7 como espacio de almacenamiento en disco y en memoria de acceso volátil. En aquellos tiempos, 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, sino 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 fundar una cofradía 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.
La implementación del "Space Travel" de Thompson y Ritchie no pasaría desapercibida. Dennis Ritchie, Doug McIlroy y otros pocos colegas más del laboratorio se habían acostumbrado a la computación interactiva que había permitido Multics, y no querían abandonar dicha capacidad. El sistema operativo para la PDP-7 de Thompson les ofreció un bote salvavidas en su ambiente de trabajo.
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 la práctica - un núcleo de base para Unix - a pesar que este nombre en sí no se aplicaría hasta 1970. El nombre adoptado originalmente fue "UNICS" (Servicio de Información y Cómputo Uniplexado), al cual Ritchie describiría como "un chascarrillo algo traicionero a Multics", que había sido glorificado con el apelativo de "Sistema de Información y Cómputo Multiplexado".
Ya desde sus primeras etapas, el Unix de la PDP-7 contó con una gran similitud a los Unix actuales, y ofrecía un ambiente de programación notablemente más agradable que los que podían encontrarse por entonces en el resto los mainframes de la era del procesamiento por lotes alimentado a tarjetas perforadas. Es posible considerar a Unix como el primer sistema informático en 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 estas funcionalidades, Unix daría pruebas - a lo largo de toda su vida - de contar con una patrón de retroalimentación, atrayendo programadores voluntarios altamente experimientados impacientes por contar con un ambiente de programación sin las limitaciones de otros sistemas operativos anteriores. Dicho patrón oficioso lo desmarcó 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 génesis desde los orígenes de Unix. Mientras que Multics había sido un proyecto grande con miles de páginas de especificaciones técnicas elaboradas antes siquiera de que el hardware arribase - el primer código ejecutable de Unix fue escrito por apenas tres personas e implementado por Ken thompson en dos días - dando uso a 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 un ancestro del formateador de texto nroff. Por sí solo, la confección de este proyecto justificó la compra de una PDP-11, una minicomputadora mucho más capacitada que la PDP-7 inicial.
La Administración de los Laboratorios Bell siguió sin enterarse que el sistema de procesamiento de texto que Thompson y sus colegas estaban construyendo en realidad incubaba un sistema operativo con todas las de la ley.
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 sistema simplificado 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 Unix 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 este modo que sucedían muchas cosas buenas sin que nadie necesitara sentirse propietario de las innovarciones".
Pero tomaría otro cuarto de siglo para que todas las implicancias de estas observaciones se hicieran aparentes.
El sistema operativo Unix original había sido programado en lenguaje ensamblador, y sus aplicaciones lo fueron en una mezcla de ensamblador y un lenguaje interpretado llamado lenguaje B, cuya única virtud determinante era ser lo suficientemente pequeño para correr en la anquilosada PDP-7. A resultas de que B no era necesariamente potente como para programar sistemas de manera efectiva, Dennis Ritchie le incorporó tipos de datos y estructuras. A comienzos de 1971 el lenguaje resultante de la mejora evolutiva de B fue bautizado como C, y para 1973 Thompson y Ritchie alcanzaron un éxito notable al reprogramar Unix en este nuevo lenguaje. La movida fue decididamente audaz, puesto que por entonces era correinte que la programación de sistemas se efectuara en ensamblador específico, para poder extraer el máximo rendimiento del hardware del procesador. El concepto mismo de un sistema operativo escrito en un lenguaje capaz de ser portado a varios procesadores distintos apenas si había sido dislumbrado.
Incluso en una etapa tan tardía como 1979, Ritchie se sentpia obligado a describir:
"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 denota que por entonces, 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 el mencionado paper, sus autores describen la simpleza sin precedentes del diseño de Unix, y reportan unas 600 instalaciones realizadas al momento. Todas lo fueron en máquinas que - incluso para los estándares del momento - revestían de escasa potencia, pero - como Ritchie y Thompson describían:
"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 expresaron los deseos de tener la oportunidad de evaluar Unix por sí mismos. Bajo un Decreto de Consenso fechado en 1959 - originado en un Acuerdo por un conflicto legal concerniente a la libre competencia - la organización madre de los Laboratorios Bell, la compañía de telecomunicaciones Bell Telephone - había sido conminada legalmente a ingresar al negocio del cómputo. Unix no podía - por tanto - volverse un producto comercial. Bajo los efectos de 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". En virtud del mismo, Ken Thompson comenzó silenciosamente a contestar pedidos despachando paquetes de cintas y discos magnéticos - 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 difusión de software se dio años antes que se popularizaran las microcomputadoras personales. No sólo el hardware requerido para correr Unix era demasiado costoso como para quedar al alcance de un individuo, sino que nadie aún consideraba que esta preposición siquiera se alteraría en un futuro cercano. De tal modo, las máquinas Unix estuvieron disponibles mayormente por gracia de las grandes organizaciones con los mayores presupuestos: corporaciones, universidades del sistema privado, agencias gubernamentales, con escasas excepciones notables.
Aún así, el empleo de estas minicomputadoras se hallaba menos regulado que el de los mayores mainframes, por lo que el desarrollo independiente de Unix cobró rápidamente un aire contracultural. Para mediadaos 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 del cómputo, sino que también subvertía todas las enunciaciones técnicas y las prácticas de negocios que habían venido 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 "compilar el sistema del futuro a la vez que le hacían Fuck You «al sistema»".
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 las problemáticas de cómputo de numerosos departamentos de investigación, y que al hacerlo incorporaba muchas de las ideas abrevadas en distintas universidades.
Puede afirmarse que la Versión 7 de 1979 de Unix fue la primera en la que todos sus componentes serían reconocibles a un programador moderno. El primer grupo de usuarios del mismo había recibido formación el año anterior en la Versión 5. Para entonces Unix se estaba operativo prestando funciones de soporte en todos los departamentos de los Laboratorios Bell, y se había esparcido ya 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 reseñaba los mecanismos internos de Unix a nivel kernel).
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 acarrear problemas legales, allí proliferaron las fotocopias de fotocopias. Se decía por entonces que no podías ser un hacker de kernel sin un Lions; muchos de los hackers más veteranos de Unix aún atesoran una copia.
La excitación de esos días aparece registrada en una frase de Douglas Comer:
"Muchas universidades contribuyen a Unix. En la Universidad de Toronto, el departamento de cómputo adquirió una impresora/plotter de 200 puntos por pulgada y compilaron no sólo el software necesario para operar la impresora, sino otro que le permite simular una fotocomponedora mucho más costosa. 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 alcanzar 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 han escrito un intérprete de comandos nuevo, que cuenta con docenas de utilitarios pequeños".El resultado final no fue solamente un sistema mejorado; la marea de ideas inició un nuevo reflujo, que se desplazó desde la academia al laboratorio industrial, fluyendo de vuelta a la academia, y finalmente circulando por un número creciente de sitios comerciales.
Los comienzos de Unix en la industria del software también fueron condescendientes. La primer compañía propiamente dedicada a Unix, Santa Cruz Operation ("SCO"), comenzó sus actividades en 1978, y su primer compilador de C comercial surgió a la venta ese mismo año. Para 1980 otra oscura compañía de software de Seattle decidió adentrarse en la jungla Unix también, portando la versión de AT&T y vendiéndola para microcomputadoras, criatura a la que llamó XENIX. El idilio de Micro-soft con Unix como producto duraría cierto de tiempo, al punto que Unix continuaría siendo utilizado para afrontar la mayoría del desarrollo interno en la compañía incluso hasta después de 1990).
Rápidamente, el campus de la Universidad de California en Berkeley comenzó ser considerado como el centro del desarrollo académico de Unix más relevante. Los trabajos con el sistema había comenzado allí en 1974 con el Unix de Investigación, cobrando un ímpetu sustancial cuando Ken Thompson en persona se dedicó a enseñarlo en dicha Universidad durante su año sabático de 1975-76. El primer lanzamiento de la Distribución de Software de Berkeley (BSD) tuvo lugar en 1977, desde un laboratorio de computación conducido por un estudiante graduado, el por entonces casi desconocido Bill Joy. Gracias a la labor de su equipo, 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) permearon, y 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) solicitó un equipo de programadores que implementaran la novísima pila de protocolos TCP/IP para comunicaciones de datos en las minicomputadoras VAX que corrían Unix. Para entonces, las minicomputadoras PDP-10s que habían impulsado la ARPANET se encontraban próximas a su superación, y circulaban rumores ya en el ambiente gubernamental según los cuales DEC podría forzar la cancelación en el desarrollo de la serie PDP-10 para centrarse en dar soporte a sus máquinas VAX. DARPA se había propuesto inicialmente contratar a DEC para la tarea implementar TCP/IP, pero rechazaron tal idea tras considerar que DEC podría verse refractiva a las solicitudes de modificaciones a su sistema operativo propietario VAX/VMS. Por tal motivo, DARPA escogió al Unix de Berkeley como plataforma - explícitamente porque "su código fuente se encuentra disponible y no encumbrado" (cerrado). De esta manera, el Grupo de Investigación de Ciencias de la Computación de Berkeley se vió en el lugar adecuado durante el momento adecuado, y con las herramientas de desarrolló más potentes. El resultado del esfuerzo se convertiría, posiblemente, en el giro más crítico en la historia de Unix desde su concepción.
Previamente al lanzamiento del BSD 4.2 junto con su implementación de TCP/IP en este 1983, ciertamente Unix había contado con un soporte para redes de datos particularmente magro. Hasta entonces, los experimentos académicos iniciales con redes universitarias de tipo Ethernet habían resultado - de hecho - insatisfactorios, si bien en los Laboratorios Bell se había logrado implementar una funcionalidad improvisada pero operable a la que habían bautizado UUCP ("programa de Copia Unix a Unix"). Esta se encontraba destinado a la difusión de software por módem recurriendo a líneas telefónicas convencionales. UUCP era capaz de reenviar correo electrónico a través de máquinas Unix separadas ampliamente, y - una vez que en 1981 se hubo organizado un conjunto distribuído de carteleras electrónicas - Unix le dio soporte, permitiendo a sus usuarios emitir mensajes de texto a cualquier centro de datos que contase con líneas telefónicas y sistemas Unix (el USENET).
A pesar de ello, los usuarios de Unix enterados de las brillantes luces de la ARPANET, eran escasos y se sentían atrapados en un pantano. Por entonces aquella red operaba mayormente a través del sistema TOPS-20, y Unix carecía entonces de FTP, Telnet, y aunque permitía la ejecución de trabajos remotos más restringidos, dolorosamente UUCP se volvió popular cuando los módems más extendidos alcanzaban sólo 300 baudios.
Ciertamente antes de la existencia TCP/IP, las culturas de ARPANET y Unix no se habían entremezclado. La visión Ritchiana de computadoras como una forma de "permitir la comunicación cercana" en realidad consideraba 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 se encontraba 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 de las PDP-10 de 36 bits - por su parte - consideraban a Unix como "un sistema crudo e improvisado que se arrastraba en hardware risiblemente raquítico".
Surgido TCP/IP, todo cambió. La cultura de ARPANET y las culturas Unix diversas comenzaron a unirse por sus flancos, en un desarrollo ad-hoc que eventualmente salvaría a ambas de la extinción. Pero primero deberían sortear el 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 cerró su trato histórico con el gigante IBM, concerniente a su nueva microcomputadora IBM PC. Bill Gates adquirió 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, la Seattle Computer Products. Gates, ocultando el trato con IBM a Paterson y SCP, se hizco con todos los derechos del código fuente por U$S 50.000. Acto seguido entró en tratativas con IBM, logrando que esta permitiera a a Micro-soft comerciar MS-DOS de forma separada al hardware de la PC. Merced del trato, durante la década siguiente Bill Gates sacaría provecho monumental de un código que no escribió para volverse miltimillonario, y el empleo de tácticas de negocios aún más insinceras que el trato original terminarían otorgando a Microsoft un monopolio de facto sobre el cómputo de escritorio. Su anterior XENIX resultaría rápidamente desinflado como producto, y eventualmente vendido a SCO.
En estos inicios, no resultaba evidente cuán exitosa (o cuan destructiva) podría resultar Microsoft. Considerando que 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 lo tuvieron en cuenta (a pesar que, irónicamente, MS-DOS 2.0 eclipsó a CP/M fundamentalmente debido a que el co-fundador de Microsoft Paul Allen le incorporó funcionalidades de estilo Unix, incluyendo el empleo de subdirectorios y caños).
En 1982 se dieron situaciones que resultaron mucho más interesantes para la comunidad de hackers de la academia: el lanzamiento de Sun Microsystems.
Los fundadores de Sun Microsystems Bill Joy, Andreas Bechtolsheim y Vinod Khosla se propusieron montar la "máquina Unix de los sueños", incorporándole las depuradas capacidades de comunicación intermaquinal que permitían las redes de datos. Combinaron hardware diseñado en la Universidad de Stanford con el Unix escrito en Berkeley para producir un producto de éxito arrasador en la academia estadounidense, plantando así el ladrillo fundacional de lo que sería la industria de las estaciones de trabajo ("Workstations"). Berkeley aún distribuía BSD junto con su código fuente, y 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 unicornio y más como una firma convencional).
Durante 1983 comienzan a aparecer sistemas basados en Unix destinado a la microcomputadora IBM PC, no menos de seis sistemas operativos similares a Unix: 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 consideraban desesperadamente irrisorio al microprocesador 8086 para afrontar esta tarea, y ninguno demostró predisposición alguna a destinarle esfuerzos. A pesar de constituir indicio de una demanda significativa e insatisfecha por los proveedores principales de un Unix destinado al hardware asequible, ninguno de estos sucedáneos obtuvo éxito comercial alguno. Los usuarios individuales, por otro lado, tampoco podían permitirse saciarla con una etiqueta de U$S 40.000 por el licenciamiento del código fuente.
Oficialmente, cada licencia del código fuente del Unix System III costaba U$S 40.000 cada una; lo cierto es que los Laboratorios Bell hacían la vista gorda a la gran cantidad de copias de las cintas del Unix de los Laboratorios Bell que ya se encontraban en circulación; las universidades intercambiaban código con los Laboratorios Bell aún, y parecía por entonces que la comercialización de Sun de Unix podría llegar a ser lo mejor que podría suceder.
Para esta época, el lenguaje C comenzó a mostrar los primeros signos de madurez completa, destacando como el lenguaje de programación de sistemas por antonomasia (incluso por fuera del mundo Unix). Sólo le tomó unos cinco años a C dejar a los demás ensambladores de código máquina prácticamente en el ocaso del desuso.
Para comienzos de la década de 1990, C y C++ dominarían no sólo la programación de sistemas sino también la de aplicaciones; y para finales de 1990 todas los otros lenguajes compilados convencionales quedarían efectivamente obsoletos.
Para cuando en 1983 DEC canceló finalmente el desarrollo de una sucesora en la mítica línea de las máquina PDP-10 (el "Proyecto Júpiter"), sus VAXxen que corrían Unix comenzaron a tomar la posta entre los equipos dominantes de la ARPANET, posición que mantendrían hasta ser desplazadas por las estaciones de trabajo Sun a finales de los 80s.
La marea Unix fue considerable, al punto que para 1985, casi el 25% de todas las VAXxen corrían Unix preferentemente, a pesar de la fuerte oposición de DEC, que incentivaba su propio VMS.
La cancelación de la Júpiter tuvo una consecuencia de largo plazo que resultó momentáneamente menos obvia: la defunción de la cultura hacker centrada en las PDP-10s de Laboratorio de Inteligencia Artificial del MIT, lo cual motivó a un programador llamado Richard Stallman a iniciar la escritura de GNU, un clon de Unix de código completamente libre.
A finales de 1983 Sun ya contaba con un éxito entre manos (¡y con imitadores!), cuando el Departamento de Justicia de los Estados Unidos ganó su segundo caso antimonopolios contra AT&T, procediendo a dividir el Sistema Telefónico Bell en un llamado proceso de desinversión. Esto desahució a AT&T del Decreto de Consenso de 1958 (que previamente le había impedido convertir a Unix en un producto comercial). Como consecuencia, 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 exégetas de Unix sostienen que la desinversión constituyó 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 del sistema terminaría destruyendo el libre intercambio de código fuente que había amamantado y ofrecido vitalidad de Unix en su infancia. Al no conocer otro modelo que el secreto para obtener pingües ganancias a partir del software (y no disponer de otro modelo que el control centralizado para el desarrollo de un producto comercial), AT&T decidió aferrarse con uñas y dientes a la distribución paga del código fuente licenciado. El copiado de cintas de Unix se volvió mucho menos interesante ante la amenaza de procedimientos legales que a consecuencia de ello podrían surgir. 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 adicional cometido fue considerar a las computadoras personales y a Microsoft como absolutamente irrelevantes al prospecto de Unix. Sun Microsystems no percibió a tiempo que la expansión de la PC como commodities inevitablemente terminaría afectando al lucrativo mercado de sus estaciones de trabajo desde abajo. AT&T - concentrada en las minicomputadoras y los mainframes de este tipo - intentó varias estrategias para convertirse en un jugador mayor en la industria del hardware (y en todas ellas fracasó). Una docena de pequeñas compañías se propusieron ofrecer soporte a Unix en la PC, pero todas ellas lo hicieron con escasos medios de inversión enfocándose en vender sus estaciones de trabajo a desarrolladores e ingenieros, sin jamás bajar sus miras al sector de negocios o al mercado hogareño al que apuntó 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 de rivalidad interna entre el Unix System V y el Unix BSD. Habiendo pasado una década, los "pelolargos", continuaban repitiendo el grito de guerra de los primeros días de Unix, considerándose a sí mismos como rebeldes contra un imperio corporativo (de hecho una de estas pequeñas compañías publicó un póster con la ilustración de 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, reducida en una explosión en llamas, como tocando la lira mientras Roma ardía).
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 el utilitario patch. Este programa es una herramienta simple de emparchado que aplica cambios generados por diff ("diferenciador") a un fichero de base. Implicó que los desarrolladores de Unix podrían ahora prestarse cooperación, difundiendo conjuntos de parches con alteraciones incrementales de código fuente (en lugar de tener que transmitir los los archivos completos del código fuente). La importancia de esto reside en el menor espacio requerido por los parches con respecto a los archivos completos, sumando que estos podían aplicarse limpiamente incluso ante un código base sumamente alterado desde el momento en que el programador hubiese escrito su parche. Con esta herramienta, puede divergirse las ramas de código fuente, hacerlo crecer en paralelo, y reconvergir en un tronco común sin mayores problemas. El programa patch tuvo una importancia mayor que cualquier otro herramental en el afianzamiento y desarollo colaborativo en la Internet - destacando como metodología que revitalizaría a los derivados de Unix luego de 1990.
En 1985 Intel sacó al ruedo su primer microprocesador 80386, un chip capaz de direccionar 4 gigabytes de memoria RAM con un espacio fijo, y como consecuencia, el diseccionado segmentado simplón implementado en el pobre 8086 y el sucesor 80286 cayó inmediatamente en la obsolescencia. Esto constituyó grandes noticias, pues por vez primera significó que un microprocesador dominante de la familia Intel contaba con la capacidad de correr Unix sin necesidad de hacer compromisos dolorosos en cuanto a la performance y uso. 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 difundió su Manifiesto GNU, creando la Fundación del Software Libre. Muy poca gente lo tomó a él o al Proyecto GNU seriamente, opinión que demostraría estar seriamente errada. En un desarrollo no relacionado, los creadores del sistema de ventanas X dieron publicidad a su código fuente sin royalties, restricciones o licencias este mismo año. Como resultado directo de esta decisión, se congenió este ámbito como una zona neutral para la colaboración segura entre los vendedores de Unix, socavando argumentos entre los contendientes para establecer el motor gráfico propietario para Unix.
En 1983 habían comenzado los primeros esfuerzos serios de estandarización apuntados a reconciliar las APIs del System V y las de Berkeley bajo el estandar /usr/group. Fue en 1985 que se continuó dicho avance con la aparición del estándar POSIX, respaldado por la IEEE. Este describe el conjunto de intersección de BSD y las llamadas de SVR3 (System V Publicación 3), disponiendo la gestión de señales y de trabajos superiores tomada de Berkeley, y conservando el control de terminal de SVR3. Todos los Unix estándares 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 1987 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 herramental central de 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. Todo este conjunto proveería una estructura para el desarrollo Unix de código abierto para la década de 1990.
1987 fue el año en que la tecnología de la PC se liberó de las garras de IBM. Esta, intentando aún preservar la relación precio/potencia entre sus líneas de productos en favor de su negocio de alto margen con mainframes, rechazó proveer el 80386 en la mayoría de sus nuevas PC de escritorio de la línea PS/2, favoreciendo el debilitado 80286. Compaq - el fabricante de computadoras clónicas más agresivo del mercado - arruinó la movida de IBM lanzando el primer microordenador clon de PC con procesador 80386. Incluso a pesar de contar por entonces con una velocidad de reloj de 16 MHz, este procesador era capaz de correr un Unix de manera tolerable, convirtiéndose en la primer PC que pudo hacerlo. La serie PS/2 - diseñada alrededor de una arquitectura de bus de memoria propietaria encargada de desbarrancar a los fabricantes de clones - terminaría convirtiéndose en un fracaso colosalmente caro. Su legado a los PC posteriores se limitó al conector estándar para el ratón "de tipo PS/2".
Podría entonces haber sido posible imaginar - por principio - que el Proyecto GNU de Stallman debería portarse a máquinas con procesadores 80386 a fin de concebir unas estaciones de trabajo Unix un órden de magnitud menos costosas que las ofrecidas hasta el momento. Sin embargo, nadie parece haber puesto manos a la obra en este sentido. La mayoría de los programadores Unix ligados a las minicomputadoras y las estaciones de trabajo continuaban tratando con desdén a las máquinas de escritorio baratas con microprocesadores 80x86, en favor de diseños más elegantes basados en el microprocesador Motorola 68000. Y si bien muchos programadores contribuyeron al Proyecto GNU, la mayoría de los hackers de Unix tendían a considerarlo como un gesto computacionalmente quijotesco del cual era improbable que surgieran consecuencias prácticas en un corto plazo.
Aunque la comunidad Unix jamás perdió su veta rebelde, en retrospectiva, fue casi tan ciega como sus "enemigos imperiales" de IBM o AT&T. Ni siquiera Richard Stallman - quien declaró una cruzada moral contra el software propietario - comprendió realmente cuan grave había sido afectada 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 sus problemas de fragmentación política, mercadeo agresivo, y giros estratégicos, y redimiera la promesa pre-desinversión del Unix. Pero lo peor estaba por venir.
Al alcanzar 1988, Ken Olsen (CEO de DEC) sufrió su furcio legendario al considerar a Unix como "aceite de serpiente". Ya desde 1982 DEC venía comercializado su porte propio de Unix para la veterana arquitectura PDP-11, pero su estrategia siempre había sido promover que el mercado se decantase por equipamiento de mayor costo y potencia corrindo su sistema operativo propietario VMS. DEC y la industria de las minicomputadoras comenzaron a verse en graves problemas, arrastrados por las mareas provocadas por potentes estaciones de trabajo de mucho menor costo fabricadas por Sun Microsystems y los demás fabricantes de estaciones de trabajo. La mayoría de estos equipos corrían Unix.
Pero los problemas a la industrialización del propio Unix comenzaron a tornarse severos. En 1988 AT&T ofertó por un 20% del paquete accionario de Sun Microsystems. Ambas compañías - líderes del mercado de Unix - comenzaban a despertar a la novedad que cinco años de desangre mutuo les había ofrecido escasos resultados para mostrar, frente a la amenaza representada por PC de IBM y Microsoft cada vez más potentes. La alianza AT&T/Sun y la concreción de los estándares técnicos de la norma POSIX hicieron por fin hervir los vasos comunicantes entre las líneas de System V y del Unix de Berkeley. Sin embargo, la segunda fase de las Guerras Unix estallaría con todo su fulgor y de manera definitiva cuando los capitalistas de segunda mano (IBM, DEC, Hewlett-Packard y otros) dicidieron aliarse en la Fundación de Software Abierto y se alinearon contra el Eje AT&T/Sun (representados por un consorcio al que llamaron Unix International). Esto aseguraría más rounds a la pelea Unix Vs. Unix.
La pelea en el gallinero fue aprovechada por el zorro. Microsoft hacía miles de millones de dólares explotando el cada vez más jugoso mercado del cómputo hogareño y de pequeños negocios, al que los Unix facciosos jamás tuvieron voluntad de explorar. El lanzamiento de Windows 3.0 en 1990 - la primera interfaz gráfica exitosa para el sistema operativo DOS de Microsoft - cementaría el dominio de los de Redmont, creando las condiciones que les permitirían arrasar y monopolizar el mercado para las aplicaciones de escritorio en la década de 1990.
No es de extrañar que los años transcurridos entre 1989 y 1993 fueran los más oscuros en la historia de Unix. Por entonces parecía entonces que todos los sueños de la comunidad Unix terminarían en un estrepitoso fracaso. Las luchas intestinas habían reducido la industria Unix propietaria a bandas armadas incapaces siquiera de confabular con determinación para desafiar la capacidad de Microsoft. Por entonces los barrocos microprocesadores de 32 bits de la arquitectura Motorola anhelada por la mayoría de los programadores de Unix se vieron superados por veresiones comunes y corrientes fabricados por Intel. El proyecto GNU no mostró éxitos en producir el kernel libre de Unix que venía prometiendo desde 1985, y tras años de excusas era lógico que la credibilidad del esfuerzo comenzara a desgastarse. Por su parte, la tecnologia de las computadoras PC se estaba volviendo cada vez más corporativa. Los hackers pioneros de Unix de los 70s habían llegado a su edad madura y ya no eran eminentemente productivos, y si bien el costo del hardware disminuía rápidamente, Unix -como software- aún continuaba siendo demasiado caro. De a poco, los hackers comenzaron a darse cuenta que el viejo monopolio del gigante azul de IBM habia muerto, sólo para dar lugar a un nuevo monopolio de Microsoft, y que el software mal ingeniado de Microsoft arrastraría todo como un Tsunami.
La primer luz al final del túnel se produjo en 1990 como consecuencia de un esfuerzo del matrimonio de William Jolitz y su esposa tendientes a portar BSD a un clon con 80386 (lo cual recibió publicidad en una serie de artículos de revista de 1991 en adelante). Este portado denominado 386BSD resultó posible puesto que en 1988 - y parcialmente influenciado por Stallman - el hacker de Berkeley Keith Bostic había comenzado a sanear los ficheros de código fuente de BSD del código propietario de AT&T. A pesar de ello, el proyecto 386BSD acusó un severo golpe cuando a finales de 1991 los Jolitz se alejaron de él, destruyendo su propio trabajo. Sobre el asunto existen explicaciones contradictorias, aunque el eje cumún entre versiones parecería indicar el hecho que los Jolitz anhelaban que el código fruto de su trabajo fuese publicado como código fuente libre, despreciando el hecho que sus spónsors corporativos optaran por un modelo de licenciamiento propietario.
En agosto de 1991 Linus Torvalds - un por entonces desconocido estudiante universitario de Finlandia - anunció el Proyecto Linux. Torvalds afirmaba que su principal motivación estaba dada por el elevadísimo coste que el Unix de Sun tenía para su universidad. Torvalds también adujo que se habría unido al esfuerzo BSD en lugar de iniciar uno propio de haberlo conocido antes. Puesto que 386BSD no comenzó a difundirse 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. 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, obtuvieron un empuje sideral y acorde. 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 interconectar redes (Internet) como la de ofrecer el 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 anteriormente se había visto repartido a lo largo y a lo ancho de docenas de plataformas Unix propietarias. Para el momento en que el kernel Linux alcanzó el estadío Beta (versión 0.99), se trataba de un sistema esencialmente libre de cuelgues. La amplitud y calidad de los utilitarios de software que podía encontrarse en las distribuciones Linux implicó la posibilidad de cementar un sistema completo listo para llevar a cabo 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, Sun ni alguno de los proveedores comerciales tradicionales. Tampoco provino de un proyecto de cómputo académico organizado, sino que se trató de un bricolage efervescente surgido de Internet a través lo que pareció generación espontánea, y sin embargo era una sorprendente apropiación y recombinación de elementos congruentes con la más pura tradición Unix.
En otros lares, continuaron las manuobras corporativas. En 1992 AT&T desinvirtió sus intereses en Sun, vendiendo luego en 1993 sus Laboratorios de Sistemas Unix a Novell; Novell se deshizo de su marca registrada Unix cediéndola al grupo de estándar X/Open en 1994; AT&T y Novell unieron destinos en la Open Software Foundation en 1994, arribando finalmente a un armisticio en las Guerras Unix. En 1995, SCO se hizo con UnixWare (junto a 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 las acciones originales tomadas por los vendedores convencionales de Unix y la destrucción provocadas por las Guerras Unix los volvió cada vez mas rehacios a tomar riesgos, y a la vez se volvieron menos relevantes. El momento de impulso y la energía de la comunidad Unix derivó progresivamente 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 - el postrero intento 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 tras tres años sin arribar 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:~$ █