ArchiTecnologia

Aprendizaje abierto. Conocimiento libre.

ArchiTecnologia
LinuxNoticiasProgramación

Una historia de Unix: curiosidades que no sabías…

Siguiente artículo especial de octubre en memoria de Dennis Ritchie. Después de haber contado algo sobre el propio dmr, sobre los primeros sistemas operativos, y la historia de Unix, ahora toca algo un poco más ameno… o eso espero. Voy a listar una serie de curiosidades sobre el mundo *nix que quizás no sabías. Gracias a recortes de revistas antiguas, documentos, manuales y algunos otros trabajos, he podido ir recuperando lo más interesante.

A veces son cosas que pasan desapercibidas y tampoco se suelen contar en la historia de Unix. Pero algunos detalles son interesantes y te ayudan a entender mucho mejor lo que es ahora Unix, derivados y otras implementaciones. Y por cierto, si conoces alguna anécdota más, alguna curiosidad, o algo que puedas aportar, puedes dejar un comentario …

Curiosidades *nix

¡Vamos allá!

Dennis Ritchie y Ken Thompson
Dennis Ritchie (de pie) y Ken Thompson (sentado) ante una PDP-11 de DEC.
  • UNIX Version Zero escrita en ensamblador para PDP-11 llegó en 1971. Dennis Ritchie fue el encargado de describirla en un documento que aún se conserva. Este manual fue desenterrado por Doug McIlroy en 2015. En esta versión temprana del manual se decía cómo funcionaba el sistema en las máquinas de DEC con 21 syscalls, pero en noviembre de ese mismo año se incluirian más llamadas al sistema hasta completar un total de 35.
  • Fue en 1980 cuando Dennis Ritchie introduce el reconocimiento de #! en Unix. Dennis lo llamaba «hash-bang» (ahora también conocido como shebang o sharpbang). Cuando el kernel detectaba que un fichero estaba encabezado por 0x23 y 0x21 (#!) interpretaba que lo que venía justo después era el path o ruta del binario del shell que debía interpretar dicho script. En el kernel Linux puedes localizar el código referente a esto en la función load_script() localizada en fs/binfmt_script.c. No lo confundas con __do_execve_file() de fs/exec.c, en este caso es la función que se encarga de ejecutar programas en Linux…
  • Un email de 2002 de Jim Allchin, directivo de Microsoft, dejaba ver el pánico que tenían a Linux: «Mi conclusión: no estamos en el camino para ganar contra Linux … el equipo debe obtener un par de recursos más que se le asignen de inmediato para que puedan desmontar Linux» Dos años antes, ex empleados de Microsoft también habían hecho algunas declaraciones sobre que Unix estaba por todas partes… Los servicios de las empresas, incluidas las de Microsoft en aquella época se basaban en sistemas *nix. Por ejemplo, Hotmail estaba sobre FreeBSD y MSN sobre Apache en Solaris. Incluso las aeronaves modernas de la época, como el Boeing 787 estaban controladas por sistemas operativo de tiempo real como VxWorks e Integrity, ambos con una fuerte herencia Unix.
  • En 1999, solo 8 años después de la creación de Linux, el 28,5% de Internet estaba construido sobre él. eL 71,4% estaba sobre otros *nix. Windows suponía un 24,4%, Solaris/SunOS aún mantenía un 17,7%, la familia BSD se quedaba con el 15%, IRIX y AIX le seguían con un 5.3 y un 1.7% respectivamente. Luego le seguían otros Unix y Novell Netware solo representaba el 0.4%, igualado con SCO UNIX. A partir de ahí, todos fueron bajando hasta dejar casi el monopolio a Linux…
  • El programa sendmail fue escrito por Eric Allman como evolución de delivermail creado para BSD 4.1c en 1983 para ARPANET. En 1998, entorno al 70% de los servicios de correo estaban usando sendmail. Junto con BIND (1984) y Apache (1995), *nix daba pasos de gigante en cuando a servidores.
UNIX V7
UNIX V7 sobre PDP-11
  • El UNIX de 1971-72 para PDP-11 tenía un sistema de permisos para ficheros que comenzaban por la letra s o l según fuese un archivo pequeño o grande, seguido de d/-/x (directorio, fichero, o ejecutable) y dos sets de rw que se referían a los permisos de lectura y escritura para usuario y otros (los grupos no existían en esa época, tampoco pwd). Es decir, cuando usabas un «ls -l» podías ver algo como sdrwr- o lxrwr-, etc.
  • El gobierno de Bill Clinton fue la que financiaría la totalidad de la PCTS (POSIX Conformance Test Suite) para poderse usar en Linux en todas las administraciones públicas de EE.UU., ya que antes de eso Linux no se ajustaba al estándar POSIX y era necesario para usarse en estas organizaciones. Por cierto, la Administración Clinton y la Administración Bush también liberarían algunos items en cuanto a cifrado que antes se denegaban…
  • Microsoft licenció UNIX V7 de AT&T en 1978, y lo comenzó a vender bajo el nombre XENIX. Aún se conserva en el Museo de Historia e Industria de Seattel una nota escrita a mano de Bill Gates en las que se pueden ver que escribía que tenía que preguntarle algunas cosas sobre XENIX a Steve Jobs. También se apreciaban algunas anotaciones sobre Apple Lisa, etc. Aunque las preguntas son un misterio…
  • El primer programador pagado de la FSF (Free Software Foundation) fue Brian J. Fox, y fue el que escribiría GNU bash. Comenzó a trabajar en 1988 y la primera versión fue lanzada en 1989. En 1992 se incorpora Chet Ramey, que se transforma en el mantenedor principal desde 1993 y sigue trabajando en ello décadas después…
  • El primer coqueteo de Apple con Unix no fue tras la compra de NeXT. De hecho, en 1988 lanzaron el Mac II con A/UX, un port de Unix V con extensiones BSD. El precio total del equipo con el sistema era de 14000-15000$ en aquella época, como si ahora se vendiese por unos 30000€ a 34.000€. El hardware incluido era una RAM de 2 MB y 80 MB de disco duro (interno o externo). Además, este Macintosh II tenía una CPU Motorola 68020 de 16 Mhz.
DEC VAX-11/780
VAX-11/780
  • Sony creó su propio laptop-workstation llamado NEWS 3250 en 1991. Este equipo incluía un microprocesador MIPS R3000 y su propio sistema operativo UNIX llamado NEWS-OS. El precio con la configuración básica era de 9900$.
  • UNIX, hasta 1977, corría principalmente en máquinas DEC PDP-11. Pero ese mismo año DEC lanzaría VAX-11/780, una máquina significativamente más potente de 32-bit que incluía su propio sistema operativo VMS. Inmediatamente Bell Labs comenzaría a portar Unix para VAX y se llamó UNIX/32V. Sobre 1984 casi un cuarto de las máquinas VAX tenían instalado Unix, a pesar de que DEC no le había dado soporte oficial… Los encargados de portar UNIX V7 para VAX fueron Tom London y John Reiser.
  • En 1988 Microsoft contrata a Dave Cutler, uno de los principales desarrolladores del sistema operativo VMX de DEC, uno de los mayores rivales de Unix. Microsoft estaba comenzando a trabajar en un nuevo kernel: Windows NT. Este se hizo para ser el Unix-killer. En 1990, Steve Ballmer decía que estaban posicionando OS/2 como competencia de Unix, a pesar de que ya habían decidido crear Windows NT.
  • A mediados de 1992 aparece Softlanding Linux System o SLS, una de las primeras distribuciones Linux. Fue precedida por Slackware y Yggdrasil. Luego vendría Debian, otro de los proyectos más antiguos basados en Linux. El ausante Ian Murdock no estaba satisfecho con SLS como argumentó en agosto de 1993, por eso inició su proyecto Debian (nombre procedente del nombre de su novia por aquella época, DEBora, y su nombre IAN).
  • En 1985, una compañía de Yugoslavia llamada Iskra Delta produjo una computadora modular que podía ser configurada con diferentes microprocesadores: Motorola 68010, DEC J11 e Intel 80286. Además, soportaba varios sistemas operativos como CP/M, UNIX, XENIX, RT-11 y DOS. Lo interesante de este proyecto fue que resultaba tan prometedor que tanto la CIA como la KGB rusa se interesaron por él en plena Guerra Fría.
emacs
GNU emacs
  • En el mundo UNIX se conoce al compilador C como «the Ritchie compiler» para distinguirlo de otros compiladores C. Aunque Dennis Ritchie era tan modesto que nunca lo reconocía. Por cierto, el compilador aparecería entre Unix version 1 y version 2 de 1971 y 1972. Gracias a Warren Toomey, que completó en 2009 un interesante trabajo, aún se conservan las dos piezas de v1 y v2.
  • Los operadores de asignación x=+y fueron copiados por Ken Thompson de ALGOL 68 e introducidos en el lenguaje de programación B. Dennis Ritchie invento sus propios operadores de incremento y decremento ++ y — para C.
  • EMACS para UNIX (no el primer EMACS) fue escrito originalmente por James Gosling en 1981, uno de los chicos de Java. En 1984, Stallman comenzó a desarrollar GNU Emacs. El EMACS de Gosling en aquella época se vendía por entre 375 y 2500$ en UniPress. Eso equivale a licencias de entre 1000 a 7000€ de la actualidad. ¡Una barbaridad!
  • Commodore 900 fue un equipo vendido en 1985 que podía correr Coherent, un clon de UNIX desarrollado por Mark Williams. Este equipo no se llegaría a vender, Commodore lo canceló cuando compró Amiga. Commodore 900 estaba equipado con un microprocesador Zilog Z8000, compatible con Z80. Aunque Coherent también estaba disponible para i386.
  • Una pequeña compañía llamada Sritek de Cleveland, anunció en 1983 un IBM PC XT con XENIX de Microsoft. Este equipo incluía un microprocesdor Intel 8088 y una tarjeta para un co-procesador matemático con un Motorola 68000. Su precio 2999$ de la época.
NextCube
NEXTCUBE
  • Freax, el sistema operativo de Linus Torvalds no era de código abierto en un inicio. En 1992 fue cuando Torvalds evaluó lanzarlo bajo la licencia GNU GPL. Un amigo de la universidad de Torvalds, Ari Lemmke, no solo fue el encargado de animar a Linus a subir la primera copia del kernel a un servidor FTP, también fue el artífice del nombre Linux (combinando Linus con la X de los *nix). De hecho, Ari subió el kernel al servidor y nombró el directorio como linux, por eso terminó llamándose así.
  • Aunque Xerox Star, con procesador AMD Am2900, fue la primera computador con una interfaz gráfica, a partir de ahí este tipo de interfaces proliferó. Por ejemplo, NeXSTEP (Mach kernel – 4.3BSD) para la NeXTCUBE (Motorola 68040 25 Mhz, 16-24 MB de RAM) de 1990 venía equpada con una interfaz gráfica, TeX, GNU Emacs, y otras herraminetas GNU (sí, Jobs usó herramientas GNU para sus sistemas).  Silicon Graphics Indigo con IRIX comenzó a dar soporte nativo para X Window System, y el gestor de ventanas 4DWM. Y lo hizo antes que Microsoft Windows.
  • El navegador web desarrollado por Tim Berners-Lee del CERN en 1990 solo funcionaba en NeXSTEP. Recuerda que NeXT Computer fue la empresa creada por Steve Jobs cuando fue despedido de Apple. Y su sistema operativo NeXSTEP, cuando Apple compró la compañía y Jobs volvió así a sus filas, fue el usado como base para Mac OS X, basado en Unix, dejando atrás a los MacOS Classic.
  • Steven D’ Aprano, en una carta de 2012 deja claro que Python fue desarrollado principalmente en Linux, y Linux es la plataforma favorita para los desarrolladores de Python, aunque sea multiplatforma y promovida por Microsoft. Por cierto, Python y Ruby fueron acabando con Perl como lenguaje interpretado para el mundo *nix…
  • En 1992 aparecen los dos primeros navegadores web con GUI para Unix. Fue ViolaWWW y NCSA Mosaic.
SPARCstation
SPARCstation
  • «No le presto mucha atención a lo que hacen con otros sistemas operativos. No compito. Sólo me preocupa hacer que Linux se supere a sí mismo, no a los otros.» Linus Torvalds
  • En 1989, Sun Microsystems lanza SPARCstation 1/1+, una estación de trabajo con un microprocesador SPARC corriendo SunOS 4. Un sistema basado en 4BSD UNIX. El precio en la época de este equipo era de entre 9000 y 30000€. Esta sería la época dorada de Sun, con otras máquinas de eito como SPARCstation 5 de 1994 con microSPARC a 70Mhz, 16 MB de RAM y 535 MB de disco duro por 6595$.
  • «Unix es muy simple, solo hace falta un genio para entender su simplicidad». Dennis Ritchie
  • El shell original de Unix fue escrito por Ken Thompson en 1971. John Mashey y Thomson agregaron capacidades de programación entre 1974-1975.
SGI Indigo
SGI Indigo
  • El shell original de Unix sería reemplazado por Bourne shell en Unix v7. Eso sucedió en 1976, aunque Stephen Borune comenzó a trabajar en su shell en 1976.
  • «Solía [mirar el código fuente de Linux], para el Plan 9. Siempre estuvieron por delante de nosotros, simplemente tenían muchísimos más recursos para lidiar con el hardware. Entonces, cuando nos topamos con un hardware nuevo, lo miraba en los controladores de Linux y escribía los controladores del Plan 9. Ahora no tengo ninguna razón para mirarlo. Yo uso Linux. Y ocasionalmente miro el código, pero rara vez, así que realmente no puedo decir si la calidad ha mejorado o no [desde 1999]. Pero ciertamente la fiabilidad ha mejorado.«. Ken Thompson hablando sobre Linux y Plan 9
  • En 1985, SGI (Silicon Graphics Inc) lanza IRIS 2400, una estación de trabajo con IRIX  (BSD4.2-based) con un precio de 39000$ en su versión más potente. Podía mostrar gráficos «avanzados» de la época…
  • En 1993, SGI introduce Indy, una estación de trabajo con un microprocesador MIPS R4000 de 64-bit, 16-32 MB de RAM y con el sistema operativo IRIX 5.1. El precio era de 5000$ de base, aunque si querías el kit completo se podía disparar hasta los 15 o 23000$.
  • «Recuerdo el primer día no festivo tras Año Nuevo. Yo fui a comprar un PC…386 DX33, 4MB de RAM, sin co-procesador. Realmente medio año después tuve que comprar una FPU solo porque no podía estar seguro si (Linux) podría funcionar.» – Linus Torvalds – 1991
Corel Linux
Corel Linux
  • En los 80, Borland fue uno de los software de desarrollo más destacados para Windows, como TuboPascal, Turbo C, etc. Pero Microsoft decidió sacarlos del mercado. Borland intentó entonces en salvarse moviéndose a Linux, y lanzaron el IDE Kylix en 1999.
  • «Unix era pequeño, y podías revisarlo línea por línea y entender exactamente cómo funcionaba. Ese fue el origen de la llamada cultura Unix […] Creo que la principal buena idea en Unix era su nítida y sencilla interfaz: abrir, cerrar, leer y escribir. «. Ken Thompson sobre Unix
  • UNIX V6 fue la primera versión de AT&T licenciada a entidades comerciales y académicas. John Lions de la Universidad de Wollongong usaría el código fuente de esta versión para darsela como lecturas a sus estudiantes.
  • Sun Microsystems introdujo Ultra 5 y Ultra 10, dos estaciones de trabajo de 1998 que usaban una ISA SPARC de 64-bit. Fueron los primeros en hacerlo, antes de que Intel comenzase a vender sus chips basados en IA-64 (Itanium) en 2000.
  • En 1999, Corel lanza su distribución Corel Linux. La compañía conocida por su software WordPerfect, Corel Draw, y otros programas para Windows, también hizo sus pinitos en el mundo Linux. De hecho, esta distro incluía WordPerfect 8 entre su software. También se basaba en un entorno de escritorio KDE, usaba GIMP, y otros paquetes de software populares. Todo el paquete se podía adquirir por unos 89,95$.
ed editor
ed
  • En 1973 aparece sed, un editor de texto descendiente del editor ed de UNIX. Incluía algunas características de ed y ex.
  • De Bell Labs no solo surgió C y Unix, también el láser, el transistor, fíbra óptica, la célula fotovoltaica, el primer satélite de comunicaciones, la teoría de Shannon, efecto Hall, DSP, el teléfono de tonos, etc. Con un total de 9 Premios Nobel por sus inventos, y 4 Turing Awards, que compartieron algunos de sus miembros.
  • Tras AT&T, los Bell Labs pasaron a ser Lucent Technologies en 1996, y diez años más tarde llegaría la fusión Alcatel-Lucent. En 2015, Nokia adquiere Alcatel-Lucent (Nokia Bell Labs).
  • En 1979, Bjarne Stroustrup aseguró que comenzaron a analizar el kernel UNIX para determinar en qué medida se podía distribuir en una red de ordenadores conectados por una red de área local. Ese trabajo iniciado en abril terminó en la creación del lenguaje de programación C++.

En la actualidad, Linux se está transformando en el «UNIX» de facto, en el «estándar» para muchos usuarios diversos. Poco a poco los otros *nix van cediendo. No hace mucho hablando con un ingeniero de Oracle me contaba cómo cada vez ellos desplazaban Solaris y usaban Linux para más máquinas, y eso no es algo exclusivo de Oracle. Pero Linux no sería lo que es hoy sin el legado UNIX…

Isaac

Apasionado de la computación y la tecnología en general. Siempre intentando desaprender para apreHender.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Si continuas utilizando este sitio aceptas el uso de cookies. más información

Los ajustes de cookies de esta web están configurados para "permitir cookies" y así ofrecerte la mejor experiencia de navegación posible. Si sigues utilizando esta web sin cambiar tus ajustes de cookies o haces clic en "Aceptar" estarás dando tu consentimiento a esto.

Cerrar