martes, 13 de enero de 2009

Historia de Unix (parte 2)

Continuamos con la historia de Unix, parte 2.
Cabe mencionar que el libro 'The Art of Unix Programming' está repleto de citas de varias personas involucradas con Unix y su historia. Eric S. Raymond contactó con estas personas para que le dieran su opinión y revisaran el texto que estaba escribiendo, pero en vez de integrar sus opiniones en el mismo texto, decidió en gran medida dejar las citas textuales de las opiniones de estas personalidades en su libro. De esta manera, TAOUP se convierte también en una especie de testimonio de estas personas involucradas directamente con Unix...


Historia de Unix (2da parte)

Éxodo: 1971 - 1980

El sistema operativo Unix original estaba escrito en lenguaje ensamblador, y las aplicaciones en una mezcla de ensamblador y un lenguaje interpretado llamado B, que tenía la virtud de ser lo suficientemente pequeño para correr en la PDP-7. Pero B no era lo suficientemente poderoso para programación de sistemas, así que Dennis Ritchie le agregó tipos de datos y estructuras. El lenguaje C resultante evolucionó a partir del B a comienzos de 1971; en 1973 Thompson y Ritchie finalmente consiguieron reescribir Unix en su nuevo lenguaje. Esto fue un movimiento muy audaz; en esa época, la programación de sistemas se hacía en ensamblador para así extraer el máximo desempeño del hardware, y el concepto de un sistema operativo portable apenas resultaba difícil de creer [NT7]. En un tiempo tan tardío como 1979, Ritchie aún escribió: "Parece cierto que gran parte del éxito de Unix viene dado por su legibilidad, modificabilidad, y portabilidad de su software, que a su vez viene dada por estar expresado en lenguajes de alto nivel", a sabiendas de que este era un punto que aún había que remarcar.

[Ken (sentado) y Dennis (de pie) ante una PDP-11 en 1972]

Un artículo en la revista Communications of the ACM [Ritchie-Thompson] le dio a Unix su primer vistazo público. En él, los autores describen el diseño simple sin precedentes de Unix, reportando unas 600 instalaciones del sistema. Todas eran en máquinas consideradas de baja potencia para los estándares de la época, pero (tal como escriben Ritchie y Thompson) "las restricciones han motivado no solamente la economía, sino también cierta elegancia en el diseño".

Luego del artículo en la CACM, laboratorios de investigación y universidades por todo el mundo clamaban por poder probar Unix. Luego de un decreto de consentimiento en 1958, como resolución de un caso de competencia desleal, a AT&T (la organización padre de los Laboratorios Bell) le quedó prohibido el entrar al negocio de las computadoras. Por lo tanto, Unix no podía ser convertido en un producto; de hecho, bajo los términos del decreto de consentimiento, los Laboratorios Bell estaban obligados a ceder licencia de cualquier tecnología no telefónica que produjeran a quien se los solicitara. Ken Thompson comenzó entonces a responder calladamente a las solicitudes enviando cintas y paquetes de discos - todos, de acuerdo con la leyenda, acompañados con una nota firmada "love, ken" ('con amor, ken').

Esto sucedió años antes de las computadoras personales. No solamente el hardware necesario para correr Unix era muy caro como para caber en las posibilidades de cualquiera, sino que nadie imaginaba también que eso cambiaría en el futuro cercano. Así que las máquinas Unix sólo estaban disponibles por la gracia de grandes organizaciones con grandes presupuestos: corporaciones, universidades, agencias gubernamentales. Pero el uso de las minicomputadoras era menos regulado que el de los mainframes, aún más grandes, y el desarrollo de Unix rápidamente tomó un aire de contra-cultura. Era el principio de los 70s; los pioneros de la programación en Unix eran hippies peludos e imitadores de hippies. Se entretenían jugando con un sistema operativo que no solamente les ofrecía retos fascinantes en la punta de lanza de las ciencias de la computación, sino que además derribaba todas las presuposiciones técnicas y las prácticas de negocio que iban con el Gran Cómputo. Tarjetas perforadas, COBOL, suites de negocio, y mainframes por lotes IBM fueron calificados como la vieja escuela; los hackers de Unix se rebelaron en el sentido de que fueron simultáneamente construyendo el futuro y enseñando el dedo medio al sistema.

La emoción de aquellos días fue captada en una cita de Douglas Comer: "Muchas universidades contribuyeron a UNIX. En la universidad de Toronto, el departamento adquirió una impresora/plotter de 200 ppp (puntos por pulgada) y construyó un software que usaba la impresora para simular una fotocomponedora [NT8]. En la Universidad de Yale, los estudiantes y los científicos de la computación modificaron el shell de UNIX. En la Universidad Purdue, el Departamento de Ingeniería Eléctrica logró grandes avances en el desempeño, generando una versión de UNIX que soportaba un gran número de usuarios. En Purdue también se desarrolló una de las primeras redes de computadoras UNIX. En la Universidad de California en Berkeley, los estudiantes desarrollaron un nuevo shell y docenas de nuevas utilidades más pequeñas. Para fines de los 70s, cuando los Laboratorios Bell lanzaron UNIX Version 7, era claro que el sistema resolvía los problemas computacionales de muchos departamentos, y que incorporaba muchas de las ideas que habían surgido en las universidades. El resultado neto final fue un sistema fortalecido. Una ola de ideas comenzaron un nuevo ciclo, fluyendo desde la academia hacia el laboratorio industrial, de regreso a la academia, y finalmente logrando llegar a un creciente número de sitios comerciales". [Comer]

El primer Unix del que podría decirse que esencialmente puede ser totalmente reconocido por un programador moderno de Unix fue la Version 7 lanzada en 1979 [15]. El primer grupo de usuarios de Unix se formó apenas el año anterior. Para esta época Unix era usado para soporte de operaciones en todos los Laboratorios Bell [Hauben], y se había propagado a universidades tan lejanas como las de Australia, en donde las notas de John Lions en 1976 [Lions] del código fuente de la Version 6 se convirtieron en la primer documentación seria del funcionamiento interno del núcleo (kernel) de Unix. Muchos hackers mayores de Unix aún atesoran una copia.

"El Lions fue una sensación en la publicación samizdat [NT9]. Debido a violaciones en el copyright u otra cosa no podía ser publicado en E.U., así que copias de copias se filtraban por doquier. Yo aún conservo mi copia, que era al menos de 6ta generación. En ese entonces no se podía ser un hacker del kernel sin un Lions."
-- Ken Arnold --
Los inicios de una industria Unix se estaban uniendo también. La primer compañía Unix (la Santa Cruz Operation, SCO) comenzó a funcionar en 1978, y el primer compilador de C comercial (Whitesmiths) fue vendido ese mismo año. Para 1980 una obscura compañía de Seattle también se estaba metiendo al juego en Unix, migrando una versión del Unix de AT&T a microcomputadoras, llamada XENIX. Pero el afecto de Microsoft por Unix como un producto no duraría mucho (aunque Unix seguiría siendo usado para el trabajo de desarrollo interno en la compañía hasta 1990).


Notas al pie de esta sección:
[15] Los manuales de la Version 7 pueden verse en línea en http://plan9.bell-labs.com/7thEdMan/index.html.


Referencias bibliográficas de esta sección:
[Ritchie-Thompson] The Unix Time-Sharing System. Dennis M. Ritchie and Ken Thompson. Disponible en la Red.

[Comer] Unix Review. Douglas Comer. "Pervasive Unix: Cause for Celebration". October 1985. p.42.

[Hauben] Ronda Hauben. History of UNIX. Disponible en la Red.

[Lions] John Lions. Lions's Commentary on Unix 6th Edition. 1996. 1-57398-013-7. Peer-To-Peer Communications. Render PostScript de las copias originales del Lions en la Red. Esta URL puede ser inestable.


Notas de traducción de esta sección:
[NT7] La expresión 'was barely a gleam in anyone\'s eye', lit. 'era apenas un brillo en el ojo de cualquiera', quedó como 'apenas resultaba difícil de creer', pues la traducción literal de la frase original en inglés no me sonaba tan adecuada.

[NT8] En el original, 'phototypesetter', se refiere a una máquina de fotocomposición tipográfica que utilizaba papel fotográfico para las impresiones de textos. Hoy en día es una técnica obsoleta, por el advenimiento de las computadoras personales y el software de autoedición (http://en.wikipedia.org/wiki/Phototypesetting).

[NT9] de la Wikipedia en español: Samizdat (auto-publicado, en ruso) era una práctica en tiempos de la Unión Soviética destinada a burlar la censura impuesta por los gobiernos de los partidos comunistas en los países del Bloque oriental. Mediante esta práctica, individuos y grupos de personas copiaban y distribuían clandestinamente libros y otros bienes culturales que habían sido proscritos por el gobierno. La idea era hacer unas pocas copias cada vez y que cada persona que tuviese acceso a un medio de copiado hiciera más copias. (http://es.wikipedia.org/wiki/Samizdat) Existe una entrada para 'samizdat' en el Jargon File (http://www.catb.org/~esr//jargon/html/S/samizdat.html)




TCP/IP y las Guerras Unix: 1980 - 1990

El campus en Berkeley de la Universidad de California surgió desde el principio como el punto académico más importante en el desarrollo de Unix. La investigación en Unix comenzó ahí en 1974, y tuvo un gran ímpetu cuando Ken Thompson impartió clases en la Universidad durante un año sabático de 1975-76. El primer lanzamiento del BSD fue en 1977 por parte de un laboratorio dirigido por un entonces desconocido estudiante graduado llamado Bill Joy. Para 1980 Berkeley era el eje de una sub-red de universidades que contribuían activamente a esa variante de Unix. Las ideas y el código del Unix de Berkeley (incluyendo el editor vi(1)) se retro-alimentaban de Berkeley a los Laboratorios Bell.

Luego, en 1980, la Agencia de Investigación de Proyectos Avanzados de Defensa (Defense Advanced Research Projects Agency, DARPA), necesitaba de un equipo de trabajo para implementar su novel paquete de protocolos TCP/IP en una máquina VAX sobre un sistema Unix. Las PDP-10s que soportaban la ARPANET en esos tiempos se estaban volviendo viejas, y ya se rumoreaba que DEC se vería forzada a cancelar la PDP-10 para soportar la VAX. DARPA consideró contratar a DEC para implementar el TCP/IP, pero rechazó la idea porque les preocupaba que DEC no respondiera positivamente a sus solicitudes de cambio en su sistema operativo propietario VAX/VMS [Libes-Ressler]. En vez de ello, DARPA eligió el Unix de Berkeley como plataforma - explícitamente debido a que el código fuente estaba disponible y sin recargos por licencia [Leonard].

El Grupo de Investigación en Ciencias de la Computación de Berkeley estaba en el lugar y momento adecuados, con las herramientas de desarrollo más potentes; el resultado se convirtió, discutiblemente, en el momento más crucial en la historia de Unix desde su invención.

Hasta que la implementación de TCP/IP fue lanzada con la versión 4.2 de Berkeley en 1983, Unix tenía el soporte para red más débil. Los primeros experimentos con Ethernet fueron insatisfactorios. Una facilidad fea pero útil llamada UUCP (Unix to Unix Copy Program, Programa para Copiar de Unix a Unix) fue desarrollada por los Laboratorios Bell para distribuir software sobre lineas telefónicas convencionales vía módem [16]. UUCP podía enviar correo entre máquinas ampliamente separadas, y (luego de la invención de Usenet en 1981) soportaba Usenet, una facilidad de boletín informativo distribuido que permitió a sus usuarios difundir mensajes de texto a cualquier lugar con líneas telefónicas y sistemas Unix.

Aún así, los pocos usuarios de Unix enterados de los brillos de la ARPANET se sentían atorados en un remanso. Sin FTP, sin telnet, con ejecución remota de procesos muy restringida, y enlaces dolorosamente lentos. Antes de TCP/IP, las culturas de Internet y Unix no se mezclaban. La visión de Dennis Ritchie sobre las computadoras como un medio para "favorecer la comunicación cercana" era sobre comunidades colegiales conglomeradas alrededor de máquinas de tiempo compartido individuales o dentro del mismo centro de cómputo; no se extendía a la "red nacional" distribuida por todo el continente que los usuarios de ARPA comenzaron a formar a mediados de los 70s. Los primeros ARPANETeros, por su parte, consideraban Unix como una cruda improvisación que cojeaba sobre hardware risiblemente débil.

Luego de TCP/IP, todo cambió. Las culturas de ARPANET y Unix comenzaron a mezclarse en sus bordes, y este desenvolvimiento eventualmente salvaría a ambas de su destrucción. Pero antes debían de pagarlo muy caro, como resultado de dos desastres no relacionados: el surgimiento de Microsoft y la orden de venta en AT&T.

En 1981, Microsoft logró su histórico trato con IBM sobre la nueva IBM PC. Bill Gates compró QDOS (Quick and Dirty Operating System), un clon de CP/M cuyo programador Tim Paterson había desechado en seis semanas, a Seattle Computer Products, los patrones de Paterson. Gates, disimulando el trato con IBM a Paterson y SCP, compró los derechos por $50,000 USD. Después convenció a IBM para permitirle a Microsoft comercializar MS-DOS de forma separada al hardware de la PC. Durante la siguiente década, el impulsar código que no había escrito él mismo hizo de Bill Gates un multimillonario, y tácticas de negocio aún más astutas que el trato original le dieron a Microsoft un monopolio cerrado en el área del cómputo de escritorio. XENIX como producto fue rápidamente tomado a menos [NT11], y eventualmente vendido a SCO.

En ese tiempo no era aparente qué tan exitosa (o qué tan destructiva) se iba a convertir Microsoft. Ya que la IBM PC-1 no tenía un hardware capaz de ejecutar Unix, la gente de Unix apenas y se percató de ella (aunque, irónicamente, DOS 2.0 eclipsó a CP/M en gran parte debido a que el co-fundador de Microsoft, Paul Allen, le agregó características Unix como subdirectorios y tuberías). Sucedían entonces cosas que parecían mucho más interesantes - como el lanzamiento en 1982 de Sun Microsystems.

Los fundadores de Sun Microsystems, Bill Joy, Andreas Bechtolsheim y Vinod Khosla, emprendieron juntos para construir la máquina Unix de sus sueños con capacidades de red ya pre-construidas en ella. Combinaron hardware diseñado en Stanford con el Unix desarrollado en Berkeley para producir un éxito demoledor, y así fundaron la industria de las workstations (estaciones de trabajo). En ese entonces, a nadie le importaba mucho el ver como el acceso al código fuente de una rama del árbol familiar de Unix gradualmente disminuía conforme Sun empezaba a comportarse menos como una empresa despreocupada y más como una firma convencional. Berkeley aún distribuía el código fuente de BSD. Oficialmente, las licencias del código fuente del System III costaban $40,000 USD cada una; pero los Laboratorios Bell se hacían los ciegos ante el número de cintas contrabandeadas en circulación, las universidades aún intercambiaban código con los Laboratorios Bell, y parecía que la comercialización de Unix por parte de Sun no era sino la mejor cosa que le podría haber sucedido a Unix hasta entonces.

1982 también fue el año en que el lenguaje C mostró signos de establecerse fuera del mundo Unix como el lenguaje para programación de sistemas. Sólo le tomaría unos cinco años a C para desplazar fuera de uso a los lenguajes ensambladores. Para principios de los años 90s, C y C++ dominarían no solamente la programación de sistemas sino también la de aplicaciones; para fines de los 90s cualquiera otros lenguajes compilados convencionales quedarían efectivamente obsoletos.

Cuando DEC canceló el desarrollo de la máquina sucesora de la PDP-10 (Jupiter) en 1983, las VAXes ejecutando Unix comenzaron a dominar como las máquinas de Internet, un puesto que mantendrían hasta ser desplazadas por las estaciones de trabajo de Sun. Para 1985, cerca del 25% de todas las VAXes ejecutarían Unix a pesar de la dura oposición de DEC. Pero el efecto a largo plazo de la cancelación de la Jupiter fue menos obvio; la muerte de la cultura hacker centrada en la PDP-10 del Laboratorio de Inteligencia Artificial del MIT motivó a un programador llamado Richard Stallman a comenzar a escribir GNU, un clon completamente libre de Unix.

Para 1983 había no menos de seis sistemas operativos estilo Unix para la IBM-PC: uNETix, Venix, Coherent, QNX, Idris y la migración alojada en la tarjeta hija Sritek PC. Aún no se había migrado Unix ni en su versión System V ni en BSD; ambos grupos consideraban al microprocesador 8086 lamentablemente infra-potente y ni siquiera se le acercaban. Ninguno de los sistemas estilo Unix fueron éxitos comerciales significativos, pero sí indicaban una demanda de Unix en hardware barato que los grandes vendedores no estaban abasteciendo. Y ningún individuo podía costearlo por sí mismo tampoco, no con el precio de $40,000 USD en una licencia del código fuente.

Sun ya era un éxito (¡con sus imitadores!) cuando, en 1983, el Departamento de Justicia de los E.U. ganó su segundo caso de competencia desleal contra AT&T y quebró al Sistema Bell. Esto liberó a AT&T del decreto de consentimiento de 1958 por el que se le prohibía convertir a Unix en un producto. Así que AT&T más pronto que tarde corrió a comercializar el Unix System V - un movimiento que por poco mata a Unix.

"Tan cierto. Pero su mercadotecnia promovió internacionalmente a Unix."
-- Ken Thompson --
Muchos de los promotores de Unix pensaron que la venta eran buenas noticias. Pensábamos que en la AT&T de después de la venta, en Sun Microsystems y en los pequeños imitadores de Sun se veía el núcleo de una industria sana de Unix - una que, usando estaciones de trabajo baratas y basadas en el 68000, podría competir y eventualmente romper con el opresivo monopolio que en ese entonces recaía sobre la industria de la computación - el de IBM.

Lo que ninguno de nosotros nos dimos cuenta en ese entonces fue que el hacer de Unix un producto destruiría los intercambios libres de código fuente que habían nutrido tanto al sistema en su vitalidad temprana. Sin conocer otro modelo que el secreto para acumular beneficios del software y ningún otro modelo que el control centralizado para desarrollar un producto comercial, AT&T le pegó duro a la distribución del código fuente. Las cintas promocionales de Unix se volvieron muy poco interesantes a sabiendas de que una demanda legal podía venir con ellas. Las contribuciones de las universidades comenzaron a disminuir.

Para empeorar las cosas, los nuevos grandes jugadores en el mercado Unix comenzaron a cometer grandes errores estratégicos. Uno fue el buscar la delantera a través de la diferenciación de su producto - una táctica que resultó en la divergencia de las interfaces entre los distintos Unixes. Esto echó por la borda la compatibilidad inter-plataformas y fragmentó el mercado de Unix.

El otro, más sutil error, fue comportarse como si las computadoras personales y Microsoft fueran irrelevantes desde la perspectiva de Unix. Sun Microsystems falló en ver que las PCs vistas como materia prima inevitablemente se convertirían en un ataque desde abajo al mercado de sus estaciones de trabajo. AT&T, fijada en sus minicomputadoras y mainframes, intentó varias diferentes estrategias para convertirse en el jugador mayor de las computadoras, y malamente remendó todas ellas. Una docena de pequeñas compañías se alinearon para soportar Unix en las PCs; todas tenían pocos fondos, enfocadas en vender a los desarrolladores e ingenieros, y nunca apuntaron al mercado de oficina y hogar al que Microsoft apuntaba.

De hecho, por años luego de la venta, la comunidad Unix estaba más preocupada aún con la primera fase de las guerras Unix - una disputa interna, la rivalidad entre el Unix System V y el Unix BSD. La disputa tuvo varios niveles, algunos técnicos (sockets vs. streams, tty de BSD vs. termio de System V) y otros culturales. La división estaba de manera general entre los de cabello largo y los de cabello corto; programadores y técnicos solían alinearse con Berkeley y BSD, los más orientados a los negocios con AT&T y System V. Los de cabello largo, repitiendo un esquema de los primeros días de Unix diez años antes, gustaban de verse a sí mismos como rebeldes contra el imperio corporativo; una de las pequeñas compañías publicó un póster que mostraba una nave de combate espacial estilo X-wing con la marca "BSD" huyendo de una gigante "estrella de la muerte" con la forma del logotipo de AT&T en llamas. Así tocábamos la lira mientras Roma ardía.

Pero algo más pasó el año de la venta en AT&T que tendría mayor importancia a largo plazo para Unix. Un programador/lingüista llamado Larry Wall calladamente inventó la utilidad patch(1). El programa patch es una simple herramienta que aplica los archivos de cambios generados por diff(1) sobre un archivo base, lo que significaba que los desarrolladores Unix podían cooperar entre sí pasándose conjuntos de parches - cambios incrementales al código - en vez de archivos de código enteros. Esto fue importante no solamente porque los parches estorban menos que los archivos completos, sino porque los parches seguido se aplican limpiamente, incluso si gran parte del archivo base ha cambiado desde que quien envió el parche hizo su copia del archivo base. Con esta herramienta, distintas corrientes de desarrollo a partir de un código fuente común pueden divergir, ir en paralelo, y reconvergir. El programa patch hacía más que cualquier otra herramienta por sí sola para habilitar el desarrollo colaborativo en Internet - un método que revitalizaría a Unix luego de 1990.

En 1985 Intel lanzó su primer chip 386, capaz de direccionar 6 giga bytes de memoria con un espacio plano de direcciones. El torpe direccionamiento de segmentos del 8086 y del 286 se volvieron inmediatamente obsoletos. Esto eran grandes noticias, porque significaba que por primera vez, un microprocesador en la dominante familia Intel tenía la capacidad de ejecutar Unix sin compromisos dolorosos. El presagio estaba a la vista [NT12] para Sun y los otros fabricantes de estaciones de trabajo. Y ellos no pudieron verlo.

1985 también fue el año en que Richard Stallman publicó el manifiesto GNU [Stallman] y lanzó la Free Software Foundation. Muy poca gente lo tomó a él o a su proyecto GNU seriamente, un punto de vista que resultó estar seriamente equivocado. Sin tener relación alguna ese mismo año, los creadores del sistema X window lanzaron su código fuente sin exigir derechos, restricciones o licenciar el código. Como resultado directo de esta decisión, se convirtió en un área neutral y segura para la colaboración entre los vendedores de Unix, y venció a los competidores de software propietario para convertirse en el motor gráfico de Unix.

Esfuerzos serios de estandarización comenzaron en 1983 tratando de reconciliar las APIs del System V y Berkeley con el estándar /usr/group. Lo siguieron en 1985 los estándares POSIX, un esfuerzo respaldado por la IEEE. Éstos estándares describen la intersección entre las llamadas de BSD y SVR3 (System V Release 3), con el manejo de señales y control de tareas superiores de Berkeley pero el control de terminal de SVR3. Todos los posteriores estándares Unix incorporarían POSIX en su núcleo, y los Unixes posteriores se adherirían a éste de forma muy cercana. La única mayor adición a la API del núcleo de Unix que vendría después serían los sockets de BSD.

En 1986 Larry Wall, el inventor de patch(1), comenzó a trabajar en Perl, que se convertiría en el primero y mayoritariamente usado de los lenguajes de script de código abierto. A principios de 1987 apareció la primera versión del GNU C compiler (GCC, compilador C de GNU) y para finales de ese año el núcleo del conjunto de herramientas GNU estaba quedando en su lugar: editor, compilador, depurador, y otras herramientas básicas de desarrollo. Mientras tanto, el sistema X window comenzaba a utilizarse en estaciones de trabajo relativamente baratas. Juntas, estas herramientas proveerían la armadura de los desarrollos Unix de código abierto de los 90s.

1986 también fue el año en que la tecnología PC quedó libre de las garras de IBM. IBM, tratando aún de preservar la curva del precio vs. potencia entre su línea de productos para favorecer su negocio de mainframes de alto margen, rechazó el 386 para sus computadoras de la nueva línea PS/2 en favor del más débil 286. La serie PS/2, diseñada alrededor de una arquitectura de bus propietaria para cerrarle el paso a los fabricantes de clones, se convirtió en un fracaso colosalmente caro [17]. Compaq, el más agresivo de los fabricantes de clones, aprovechó la movida de IBM sacando al mercado la primera máquina 386. Incluso con una velocidad de reloj de apenas 16 MHz, la 386 hacía una máquina Unix tolerable. Era la primera PC de la que tal cosa podía ser dicha.

Comenzaba a ser posible imaginar que el proyecto GNU de Stallman podría casar con máquinas 386 para producir estaciones de trabajo Unix casi un orden de magnitud más baratas que la que cualquiera estaba ofreciendo. Curiosamente, de hecho nadie parece haber llegado tan lejos en su pensamiento. La mayoría de los programadores Unix, viniendo de los mundos de las minicomputadoras y las estaciones de trabajo, continuaban desdeñando las baratas máquinas 80x86 en favor de los diseños más elegantes basados en el 68000. Y, aunque muchos programadores contribuyeron al proyecto GNU, entre la gente Unix ésto tendía a ser considerado un gesto quijotesco que a duras penas tendría consecuencias prácticas a corto plazo.

La comunidad Unix nunca perdió su línea rebelde. Pero en retrospectiva, estábamos tan ciegos como IBM o AT&T al futuro que nos marcaba el rumbo. Ni siquiera Richard Stallman, que había declarado una cruzada moral contra el software propietario unos años antes, entendió qué tanto el hacer de Unix un producto dañó a la comunidad alrededor del mismo Unix; sus preocupaciones eran con cuestiones más abstractas y de largo plazo. El resto de nosotros nos quedamos esperando que alguna variación inteligente a la fórmula de las corporaciones pudiera resolver los problemas de la fragmentación, la comercialización desalmada, y la deriva estratégica, para redimir la promesa del Unix anterior a la venta. Pero aún habrían de venir tiempos peores.

1988 fue el año en que Ken Olsen (director ejecutivo de DEC) describió en una famosa cita a Unix como "estafa" [NT13]. DEC había estado lanzando su propia variante de Unix en las PDP-11 desde 1982, pero en realidad quería que el negocio se dirigiera hacia su sistema operativo propietario VMS. DEC y la industria de las minicomputadoras estaban en serios problemas, hundidos por las olas de las poderosas máquinas de bajo costo de parte de Sun Microsystems y el resto de los vendedores de estaciones de trabajo. La mayoría de esas estaciones de trabajo ejecutaban Unix.

Pero los propios problemas de la industria Unix estaban creciendo y haciéndose más severos. En 1988 AT&T obtuvo un 20% de Sun Microsystems. Estas dos compañías, líderes en el mercado Unix, estaban comenzando a despertar ante la amenaza puesta por las PCs, IBM y Microsoft, y a darse cuenta que los anteriores cinco años de sangrado les habían dejado poco. La alianza AT&T/Sun y el desarrollo de estándares técnicos alrededor de POSIX curaron eventualmente la brecha entre las líneas del Unix System V y BSD. Pero la segunda fase de las guerras Unix comenzó cuando los vendedores de segundo rango (IBM, DEC, Hewlett-Packard y otros) formaron la Open Software Foundation y se alinearon contra el eje AT&T/Sun (representado por Unix International). Más rounds de Unix contra Unix sobrevinieron.

Mientras tanto, Microsoft hacía millones en los mercados del hogar y los pequeños negocios a los que las facciones en guerra de Unix nunca quisieron dirigirse. El lanzamiento en 1990 de Windows 3.0 - el primer sistema operativo exitoso de Redmond - cimentó el dominio de Microsoft, y creó las condiciones que les permitieron aplanar y monopolizar el mercado de las aplicaciones de escritorio en los 90s.

Los años de 1989 a 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 fallado. La guerra fratricida había reducido a la industria del Unix propietario a disputas confusas que nunca llamaban a la determinación o a la capacidad de enfrentar a Microsoft. Los elegantes chips Motorola favorecidos por la mayoría de los programadores Unix habían perdido ante los feos pero baratos procesadores Intel. El proyecto GNU había fallado en producir el núcleo libre de Unix que venía prometiendo desde 1985, y luego de años de excusas, su credibilidad comenzó a disminuir. La tecnología PC implacablemente comenzaba a volverse una industria de corporaciones. Los hackers pioneros de Unix de fines de los 70s llegaban a los 40s y se alentaban. El hardware se volvía más barato, pero Unix aún era muy caro. Tardíamente nos estábamos dando cuenta que el antiguo monopolio de IBM había sucumbido ante un nuevo monopolio de Microsoft, y el software de mala ingeniería de Microsoft estaba alzándose a nuestro alrededor como una ola de aguas residuales.


Notas al pie de esta sección:
[16] UUCP llegó a causar furor [NT10] cuando un módem 'rápido' era de 300 baudios.

[17] La PS/2, sin embargo, dejó marca en las PCs posteriores - haciendo del mouse un periférico estándar, razón por la cual el conector del mouse en la parte posterior del chasis de tu computadora se llama "puerto PS/2".


Referencias bibliográficas de esta sección:
[Libes-Ressler] Don Libes and Sandy Ressler. Life with Unix. 1989. ISBN 0-13-536657-7. Prentice-Hall.

[Leonard] Andrew Leonard. BSD Unix: Power to the People, from the Code. 2000. Disponible en la Red.

[Stallman] Richard M. Stallman. The GNU Manifesto. Disponible en la Red.


Notas de traducción de esta sección:
[NT10] En el original en inglés, 'hot stuff' es una expresión para indicar algo que está de moda, está al día y es atractivo, pero en el texto el sentido que interpreto es también de algo considerado lo más avanzado en cierta área. Para traducir la expresión, utilicé una expresión local que me sonó adecuada.

[NT11] En el original en inglés, 'deep-sixed' es una expresión para denotar algo que ya no se quiere conservar, que se desecha o desprecia. La expresión en español 'tomar a menos' tiene aquí el mismo sentido.

[NT12] 'The handwriting was on the wall' es una expresión en inglés tomada del libro bíblico de Daniel, en el que Dios anuncia a los babilonios la próxima caída de su imperio por parte de las fuerzas persas invasoras. Es una expresión que denota un presagio maligno próximo a suceder, y puesto que en español no encontré una expresión literal para el mismo sentido, utilizo la frase 'presagio a la vista' en la traducción.

[NT13] 'snake oil' en el original en inglés es una expresión que hace referencia a un producto que se vende con engaños, siendo en sí mismo un fraude, o que se vende con exagerada mercadotecnia, siendo de calidad poco comprobable o confiable. Originalmente era una medicina china para las articulaciones, pero derivó en el sentido dado aquí. En español no encontré frases equivalentes que den el mismo sentido, así que dejo la traducción de forma genérica con la palabra 'estafa'.




Nosotros Venceremos: 1991 - 1995

El primer rayo de luz en la oscuridad vino en 1990 con el esfuerzo de William Jolitz de migrar BSD a una 386, publicando en una serie de artículos de revistas en 1991. El puerto 386BSD fue posible gracias a que, en parte influenciado por Stallman, el hacker de Berkeley Keith Bostic comenzó un esfuerzo de limpiar de código propietario de AT&T al código fuente de BSD en 1988. Pero el proyecto 386BSD recibió un golpe severo cuando, cerca de finales de 1991, Jolitz se apartó y destruyó su propio trabajo. Existen explicaciones en conflicto, pero en lo que son comunes dichas explicaciones es en que Jolitz quería que su código fuera liberado como código fuente sin recargos de licencia y se enojó cuando los patrocinadores corporativos del proyecto optaron por un modelo de licenciamiento más propietario.

En agosto de 1991, Linux Torvalds, entonces un desconocido estudiante universitario finalndés, hizo el anuncio del proyecto Linux. Torvalds ha reconocido oficialmente que una de sus principales motivaciones era el alto costo del Unix de Sun en su universidad. También Torvalds ha dicho que si se hubiera enterado de la existencia del esfuerzo en BSD se hubiera unido a él, en lugar de fundar el suyo propio. Pero el 386BSD no fue lanzado sino hasta principios de 1992, unos meses después del primer lanzamiento de Linux.

La importancia de estos dos proyectos se volvió clara solamente en retrospectiva. En su tiempo, atrajeron muy poca atención incluso dentro de la cultura hacker de Internet - y mucho menos en la más amplia comunidad Unix, que aún estaba fijada en máquinas más capaces que las PCs, y tratando de reconciliar las propiedades especiales de Unix con el modelo propietario convencional de un negocio de software.

Pasarían otros dos años y la gran explosión de Internet de 1993-1994 antes de que la verdadera importancia de Linux y las distribuciones de código abierto de BSD se volvieran evidentes para el resto del mundo Unix. Desafortunadamente para los BSDeros, una demanda de AT&T contra BSDI (la pequeña compañía que había respaldado el puerto de Jolitz) consumió mucho de ese tiempo y motivó a muchos desarrolladores clave de Berkeley a pasarse a Linux.
"Se alegó la existencia de copias de código y robo de secretos industriales. El código que en sí cometía la infracción no fue identificado por cerca de dos años. La demanda pudo haber durado mucho más sino fuera por el hecho de que Novell compró USL a AT&T y buscó un acuerdo. Al final, tres archivos fueron eliminados de los 18,000 que conformaban la distribución, y cierta cantidad de pequeños cambios fueron hechos a otros archivos. Además, la Universidad aceptó agregar notas de copyright para USL a cerca de 70 archivos, con la estipulación de que esos archivos continuaran siendo redistribuidos libremente."
-- Marshall Kirk McKusick --
El acuerdo estableció un precedente importante al liberar un Unix completamente operacional del control propietario, pero sus efectos en el propio BSD fueron calamitosos. Las cosas no mejoraron cuando, en 1992-1994, el Grupo de Investigación en Ciencias de la Computación de Berkeley cerró sus puertas; posteriormente, la guerra entre facciones de la comunidad BSD dividió al sistema en tres esfuerzos de desarrollo en competencia. Como resultado, el linaje de BSD se rezagó detrás de Linux en un momento crucial y perdió ante él la posición líder en la comunidad Unix.

Los esfuerzos de desarrollo de Linux y BSD eran nativos a Internet en una forma en que los Unixes anteriores no lo habían sido. Se basaban en el desarrollo distribuido y la herramienta patch(1) de Larry Wall, y reclutaban desarrolladores vía email y a través de grupos de noticias en Usenet. Por lo tanto, tuvieron un impulso tremendo cuando los negocios proveedores de servicio de Internet (ISP, Internet Service Providers) proliferaron en 1993, habilitados por cambios en la tecnología de telecomunicaciones y la privatización de la columna dorsal de Internet, eventos fuera del alcance de esta historia. La demanda por una Internet barata fue creada por algo más: la invención en 1991 de la World Wide Web (WWW, la Red). La Web fue la "killer app" [NT14] de la Internet, la tecnología de interfaz gráfica de usuario que la hizo irresistible para una larga población de usuarios finales no técnicos.

La mercadotecnia en masa de la Internet tanto incrementó la fuente de desarrolladores potenciales como bajó los costos transaccionales del desarrollo distribuido. Los resultados se vieron reflejados en esfuerzos como XFree86, que usó un modelo con Internet al centro para construir una organización de desarrollo más eficaz que el del Consorcio X oficial. El primer XFree86 de 1992 le dio a Linux y los BSDs el motor de interfaz de usuario gráfica que les hacía falta. Durante la siguiente década XFree86 estaría en la delantera del desarrollo en X, y una porción en aumento de la actividad del Consorcio X consistiría en concentrar las innovaciones originadas en la comunidad XFree86 hacia los patrocinadores industriales del Consorcio.

Para fines de 1993, Linux ya tenía capacidades de Internet y X. Todas las herramientas GNU fueron alojadas en él desde el principio, proveyéndolo de herramientas de desarrollo de alta calidad. Además de las herramientas GNU, Linux actuó como un punto de atracción, colectando y concentrando veinte años de software de código abierto que anteriormente había estado disperso en una docena de diferentes plataformas Unix propietarias. Aunque el kernel de Linux aún estaba oficialmente en versión beta (a nivel 0.99), ya era remarcablemente libre de caídas. La amplitud y la calidad del software en las distribuciones Linux era ya la de un sistema operativo listo para el nivel de producción.

Algunos pocos de los de mente más abierta entre los desarrolladores Unix de la vieja escuela comenzaron a percatarse de que el sueño tan largamente esperado de un sistema Unix barato para todo mundo se coló [NT15] enfrente de ellos desde una dirección inesperada. No provino de parte de AT&T o de Sun o de cualquiera de los vendedores tradicionales. Tampoco emergió de un esfuerzo organizado en la universidad. Fue un bricolaje que burbujeó fuera de la Internet a partir de lo que pareciera generación espontánea, apropiándose y recombinando elementos de la tradición Unix en formas sorprendentes.

En otros lados, las maniobras corporativas continuaron. AT&T vendió sus intereses en Sun en 1992; luego vendió sus Unix Systems Laboratories (USL, Laboratorios de Sistemas Unix) a Novell en 1993; Novell pasó la marca registrada Unix al grupo de estándares X/Open en 1994; AT&T y Novell se unieron en la OSF [Open Software Foundation] en 1994, dando fin a las guerras Unix. En 1995 SCO compró UnixWare (y los derechos al código fuente original de Unix) de Novell. En 1996, X/Open y la OSF se fusionaron, creando un gran grupo de estándares Unix.

Pero los vendedores convencionales de Unix y los escombros de sus guerras parecieron cada vez menos y menos relevantes. La acción y la energía de la comunidad Unix estaba cambiando a Linux y BSD y a los desarrolladores de código abierto. Para ese tiempo IBM, Intel y SCO anunciaron el proyecto Monterrey en 1998 - un último intento de obtener una mezcla para Un Gran Sistema a partir de los Unixes propietarios que aún sobrevivían - los desarrolladores y la prensa comercial reaccionaron con diversión, y el proyecto fue abruptamente cancelado en 2001 luego de tres años de ir a ningún lado.

La transición de la industria no puede decirse que se completó hasta el año 2000, cuando SCO vendió UnixWare y el código fuente original de Unix a Caldera - un distribuidor Linux. Pero luego de 1995, la historia de Unix se convirtió en la historia del movimiento del código abierto. Hay aún otro lado de esa historia; para contarlo, necesitaremos regresar a 1961 y a los orígenes de la cultura hacker de Internet.


Notas de traducción de esta sección:
[NT14] El original 'killer app' es una expresión del mundo de la informática que en realidad no tiene traducción al español, a pesar de lo que diga la Wikipedia en español. De la misma Wikipedia, una 'killer app' es una aplicación determinante, es decir, que su implantación supone la asimilación definitiva por parte de los usuarios. Una aplicación así ejerce una enorme influencia en el desarrollo de posteriores desarrollos informáticos y en la forma en como se ofrece un servicio a partir del momento en que dicha aplicación se populariza. Dejé en el texto la versión en inglés, pues la traducción 'aplicación asesina' no me termina de gustar ni convencer en nada. Existe una entrada para 'killer app' en el Jargon File (http://www.catb.org/~esr//jargon/html/K/killer-app.html)

[NT15] El original 'snuck' en realidad no es una palabra del inglés, sino una expresión inventada como si fuera el tiempo pasado de 'sneak', otra palabra inventada que significa introducirse furtivamente. De ahí que utilicé la expresión 'colarse' (utilizado por lo que sé en México, en España, y no se si en otros lugares también) para denotar el mismo significado.




--
Eru kaluva tielyanna (Dios iluminará tu camino)
Visita la página de la Casa de la Juventud, TOR: www.torcasajuv.com
"Ama y haz lo que quieras. Si callas, callarás con amor; si gritas, gritarás con amor; si corriges, corregirás con amor; si perdonas, perdonarás con amor. Si tienes el amor arraigado en ti, ninguna otra cosa sino amor serán tus frutos." (San Agustín) Solamente asegúrate que en realidad sea AMOR...

No hay comentarios.: