💾 Archived View for texto-plano.xyz › peron › articulos › unix_historia.gmi captured on 2024-03-21 at 15:46:01. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2022-06-03)
-=-=-=-=-=-=-
Un notorio "efecto de segundo sistema" recae a menudo sobre los sucesores de los prototipos experimentales pequeños. La urgencia por agregarles nuevas características dejadas de lado un primer prototipo a menudo acarrean como consecuencia un diseño impráctico, grande y excesivamente complicado. Pero resulta menos conocido - por ser menos común - el llamado "efecto de tercer sistema": en ocasiones luego de que el segundo sistema ha colapsado por su propio peso, es posible avizorar un retorno a la simpleza, y obtener de allí un resultado funcionalmente correcto.
El Unix original fue un "tercer sistema". Su abuelo fue el pequeño y simple CTSS (Sistema de Tiempo Compartido Compatible) el primer - o bien el segundo, dependiendo de la definición que tomemos para determinarlo - de los sistema de cómputo de tiempo compartido. Su padre fue el Proyecto Multics, un intento pionero de elaborar una "utilidad de información" saturada de características que graciosamente otorgase cómputo a tiempo compartido de mainframes a enormes comunidades de usuarios. Multics, de hecho, colapsó por su propio peso. Pero de dicho colapso surgió Unix.
Unix nació en 1969 en la mente de un cientista del cómputo de los Laboratorios Bell, Ken Thompson. Thompson había sido investigador en el Proyecto Multics, experiencia que lo molestó por el primitivo cómputo por lotes que regía en casi todos los sitios de investigación con computadoras.
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 era el motivo de la tradición Unix de órdenes y respuestas cortas.
Al retirarse los Laboratorios Bell del consorcio de investigación de Multics, Ken Thompson conservó algunas ideas inspiradas por Multics sobre cómo crear un sistema de ficheros. También se quedó sin una máquina en la cual jugar un juego que había programado, el Space Travel (una simulación de aventuras de ciencia ficción que involucraba navegar en un cohete a través del sistema solar). Unix comenzó su vida en una minicomputadora DEC PDP-7 recuperada, 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 recordaba que un lavarropas actual tiene más 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.
Dennis Ritchie, Doug McIlroy y algunos pocos colegas más se habían acostumbrado a la computación interactiva que permitía Multics y no querían perder dicha capacidad. El sistema operativo de la PDP-7 de Thompson les ofrecía un bote salvavidas.
La historia se completa con Dennis Ritchie, primer colaborador de Thompson, hombre reconocido como co-inventor de Unix y fundamental creador 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 tema de las computadoras vistas no sólo como un dispositivo lógico sino como un núcleo de comunidad estaba rondando en el aire; además del año de llegada del hombre a la luna, 1969 fue también el año donde fue inventada 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 “Viaje al Espacio“ 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 escribieron Thompson y Ritchie 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 desarrollos livianos y métodos informales también se inició en sus comienzos. Mientras que 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 concebido por tres personas e implementado por Ken thompson en dos días - en una máquina obsoleta cuya función designada era ya ser apenas una terminal de gráficos para una "computadora real".
El primer trabajo real 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 provocaban que reescribiéramos o descartásemos los trozos de código fuente en la medida que emergían mejorea a las ideas más básicas. La rivalidad profesional y la protección del plantel prácticamente eran desconocidas: de modo que muchas cosas buenas sucedían que nadie necesitara ser propietario de las innovarciones.
Pero tomaría otro cuarto de siglo para que todas las implicancias de estas observaciones resultasen aparentes.
El sistema operativo Unix original fue escrito en Ensamblador, y sus aplicaciones 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. Pero B no era necesariamente potente como para programar sistemas, por lo que 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 finalmente tuvieron éxito en reescribir Unix dando uso al nuevo lenguaje. Esta fue una movida bastante 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 podía vislumbrarse.
Incluso en un momento tan tardío como 1979, Ritchie se siente 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 un paper conjunto de 1974 publicado en Comunicaciones del ACM, Ritchie y Thompson ofrecieron a Unix la oportunidad de su primer exposición pública. En este 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.
Luego 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
Esto fue años antes de las microcomputadoras personales. No solo el hardware que se requería para correr Unix era demasiado caro para encontrarse al alcance de un individuo, sino que nadie imaginaba 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 - cuando los Laboratorios Bell lanzaron Unix Versión 7 - estaba claro que el sistema resolvía los problemas de cómputo de numerosos departamentos de investigación, y que incorporaba muchas de las ideas que habían surgido en las universidades. El resultado final fue un sistema ampliado. Una marea de ideas había comenzado un nuevo ciclo, fluyendo desde la academia al laboratorio industrial, de vuelta a la academia, y finalmente moviéndose a un número creciente de sitios comerciales.
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. 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. Debido a que por las sublevaciones a la ley de Derecho de Autor un libro de tales características no podría resultar publicada en los EE.UU. sin problemas, proliferaron allí copias de copias. Por entonces no podías ser un hacker de kernel si un Lions.
Los comienzos de la industria de Unix también fueron condescendientes también. La primer compañía de Unix, Santa Cruz Operation ("SCO") inició sus actividades en 1978, y su primer compilador de C comercial se vendió ese mismo año. Para 1980 una oscura compañía de software de Seattle también se introducía en la jungla Unix, comerciando un portado de la versión de AT&T para microcomputadoras, 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 usado para la mayoría del desarrollo interno en la compañía incluso hasta después de 1990).
El campus de Berkeley de la Universidad de California rápidamente comenzó a emerger como el centro académico más importante en el desarrollo Unix. La investigación con Unix había comenzado allí en 1974, y cobró 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 para entonces estaban 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 producido 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 muy magro. Los primeros experimentos con Ethernet fueron insatisfactorios. Había sido desarrollada una funcionalidad improvisada pero operable en los laboratorios Bell, a la que habían llamado UUCP (programa de Copia Unix a Unix) destinada a distribuir software sobre líneas telefónicas convencionales vía módem. UUCP podía reenviar correo electrónico Unix a través de máquinas separadas ampliamentes, y - luego que la Usenet se inventara en 1981 - soportó Usenet, 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.
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 manera de "permitir la comunicación cercana" trataba en realidad de 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 lr resultaron mucho más interesantes a la comunidad hacker: el lanzamiento de Sun Microsystems.
Los fundadores de Sun Microsystems Bill Joy, Andreas Bechtolsheim y Vinod Khosla se propusieron construir una máquina de los sueños Unix, incorporándole capacidad de redes de datos. Combinaron hardware diseñado en Stanford con el Unix desarrollado 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 percatarse que el acceso al código fuente de una rama del árbol Unix gradualmente secaría las demás, 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; pero los Laboratorios Bell hacía la vista ciega a la cantidad de copias de las cintas del Unix de los Laboratorios Bell 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 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 ya por fuera del mundo Unix como el lenguaje de programación de sistemas por excelencia. Sólo le tomaría cinco años a C para dejar a los 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.
Cuando en 1983 DEC canceló el desarrollo de la máquina PDP-10 sucesora (el "Proyecto Júpiter"), 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.
Pero el efecto de largo plazo de la cancelación de Jupiter fue uno menos obvio: 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 a comenzar a escribir GNU, un clon de Unix 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, ya que ambos grupos consideraban al microprocesador 8086 desesperadamente poco potente y no tenían intención alguna de destinarle esfuerzos. Ninguno de los similares a Unix produjo éxito comercial alguno, pero eran indicio de una demanda significativa por Unix para hardware asequible que los proveedores mayores no estaban satisfaciendo. Tampoco l@s usuari@s individuales podían permitirse saciarla, no con la etiqueta de U$S 40.000 por la licencia del código fuente.
Sun ya era un éxito (¡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.
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.
Hubo otro lado de la historia: para decirlo, necesitamos volver a 1961 y a los orígenes de la cultura hacker.