Una historia de UNIX: el comienzo

Siguiente episodio de esta serie especial del mes de octubre en memoria de Dennis Ritchie. En esta segunda parte de Una Historia de UNIX, podrás descubrir la historia detrás de este sistema operativo con todo lujo de detalle. Ya sabes que el sistema operativo es un elemento crucial de los sistemas de computación, ya que sin él no se puede hacer gran cosa con el hardware, aunque se pueden hacer algunas aplicaciones bare-metal sin sistema operativo (pero esto ya son otras historias).

El hardware sin el software no es nada y viceversa. La actual electrónica programada necesita de instrucciones y datos para procesar información. Son inseparables por mucho que el gran Craig Bruce dijera aquello de «El hardware es lo que hace a una máquina rápida; el software es lo que hace que una máquina rápida se vuelva lenta«, o la famosa frase de Henry Petroski «El logro más impresionante de la industria del software es su continua anulación de los constantes y asombrosos logros de la industria del hardware«.

Antecedentes

Ada Lovelace (Byron)

De hecho, la importancia de los programas no es algo tan reciente como puedes pensar. Se remontan a los años de la máquina analítica de Charles Babbage. Él no consiguió que funcionase porque era una máquina totalmente mecánica y necesitaba algo para coordinarse y que sus mecanismos resultasen productivos. Fue una joven mujer de la época, Ada Lovelace (Ada Byron), la que creó una tarjeta perforada con el primer programa de la historia, como medio de entrada para hacer funcionar a la máquina…

Desde ese germen hasta las primeras máquinas de computación de los años 40 de la era de los tubos de vacío, pasando por la era de los semiconductores, mucho ha avanzado la computación en general. Las máquinas primitivas se conocían como «desnudas» porque carecían de gestión de memoria, todo el control lo tenía el usuario. Pero eran máquinas costosas, de enorme tamaño y con consumos eléctricos tremendos. Eso resultaba a que la inactividad de estas máquinas suponían pérdidas de hasta 50$/hora de la época.

Se solucionó contratando a más trabajadores para que fuesen introduciendo tarjetas perforadas o cintas magnéticas con los programas de trabajo para reducir los tiempos de inactividad. Así los programadores podían dedicar su tiempo a crear nuevos programas y depurarlos. De ese modo se hizo hasta la llegada de los programas por lotes (batch). Eso permitía que con solo preparar un lote se pudieran ejecutar varios programas seguidos (agrupados por similitud), es decir, de forma secuencial.

El problema seguía siendo que los operadores debían estar atentos a la consola para saber cuándo un programa finalizaba para poder iniciar el siguiente. Y cada operador solía atender varias consolas a la vez, separadas en distintas partes en la habitación donde se encontraba la máquina. Eso era un problema que se podía resolver contratando aún más trabajadores, pero igualmente poco rentable.

El siguiente avance fue implementar un sistema de secuenciamiento. Eso sería el germen de los primeros sistemas operativos, pero aún distaban mucho de lo que conocemos ahora como SO. Un programa llamado «monitor residente» (llamado así porque siempre residía en la memoria) se encargaba del secuenciamiento de los programas, quitándose trabajo a los operarios. Cuando un programa terminaba la máquina devolvía el control al monitor y éste le daba de nuevo el control al siguiente programa a ejecutar.

Estos programas de secuenciamiento debían ser escritos por los propios usuarios de las computadoras. Antes de los 50 nadie comercializaba sistemas operativos. Algo que no suponía un gran problema, porque solo se podían permitir tener sus computadoras las grandes empresas u organizaciones, que tenían personal cualificado para programar.

Fue en 1956 cuando llega GM-NAA I/O de General Motors para máquinas IBM 704, considerado como el primer sistema operativo. Y a partir de ahí fueron evolucionando hasta lo que son en la actualidad… Especialmente importante fue la década de los 60s con la aparición de Unics de Bell Labs.

Personalmente discrepo con considerar ese SO como el primero. Es el mismo error que considerar el Intel 4004 como el primer microprocesador de la historia. El 4004 fue, en todo caso, el primer microprocesador comercial de propósito general. Pero antes de él ya estaba el microcontrolador de Texas Instruments que incluía en el mismo chip la CPU, memoria y E/S. Y también el CADC de Garrett AiResearch para los cazas de combate F-14 Tomcat, que probablemente sea una de las primeras CPUs, aunque se ocultó y no se desclasificó la información hasta 20 años después. Pues bien, con los SSOO ocurre algo similar, ¿qué hay del Tape Director del MIT para UNIVAC 1103? Además, la propia GM ya había creado un sistema operativo primitivo para el IBM 701 antes del GM-NAA I/O…

SSOO de usar y tirar

Dennis Ritchie y Ken Thompson
Dennis Ritchie (de pie) y Ken Thompson (sentado) ante una PDP-11 de DEC.

Actualmente estamos acostumbrados a una cierta estabilidad. De vez en cuanto aparecen nuevos sistemas operativos, pero por lo general hay un grupo reducido de ellos que son los más importantes y utilizados: Android, Windows, iOS, macOS, GNU/Linux, y otros. Pero eso no fue siempre así, de hecho, hubo una era en la que los sistemas operativos eran muy experimentales y se creaban sistemas operativos como churros…

Si te fijas en el timeline de los SSOO desde la aparición del primero hasta los 1980, cuando se estabilizó algo y surgían escasos sistemas operativos nuevos, eran más derivados o implementaciones de los ya existentes que otra cosa. ¿No te lo crees? Echa un vistazo a este resumen:

  1. Aparece Tape Director del MIT en 1954 para UNIVAC. Ese mismo año también se crea DYSEAC, con capacidad distributiva y General Motors crea también algo similar a un sistema operativo para IBM 701.
  2. En 1956 llega GM-NAA I/O de General Motors para máquinas IBM.
  3. En 1957, la Universidad de Manchester crea Atlas Supervisor y Bell Labas crean BESYS.
  4. Un año más tarde la Universidad de Michigan crea UMES y General Motors vuelve a desarrollar otro sistema conocido como SHARE OS o SOS.
  5. Hasta este momento todos los sistemas eran muy limitados, con procesamiento por lotes, almacenamiento temporal y monitor residente funcionando con cintas magnéticas o tarjetas temporadas. La década de los 60s no fue muy mejor, aunque hubo algunos pasos con la llegada de la segunda generación de computadoras con el concepto de multiprogramación, tiempos compartidos, el concepto de procesamiento en tiempo real y las primeras máquinas multiprocesador. Por tanto, los sistemas operativos de debían adaptar a esto. Los primeros sistemas de 1960 fueron IBSYS y KDF9 de IBM y Englis Electric respectivamente.
  6. Un año después aparece CTSS del MIT y MCP de Burroughs.
  7. General Electric crea GCOS en 1962.
  8. En 1963, la firma Ferranti desarrolla Titan Supervisor e IBM crea AN/FSQ-32.
  9. El 64 fue muy productivo. Aparece EXEC8 para UNIVAC, OS/360 de IBM, SCOPE para CDC, TOPS-10 de DEC (Digital Equipment Crop), la Universidad de Berkeley crea Berkeley TImesharing System, y DTSS de Dartmouth College.
  10. En 1965 llega THE Multiprograming System, BOS/360 y también TOS/360 de IBM, TSOS (VMOS) de RCA, Pick Operating System de Don Nelson y Richard Pick para TRW, y Multics de Bell Labs. Multics sería el germen de Unix… Fue creado en colaboración del MIT para máquinas General Electric GE-645.
  11. En el 66 se crea DOS/360 de IBM, Richard F. Lary de DEC crea MS/8 para las PDP-8. También aparecen GEORGE 1 y GEORGE 2 para ICT 1900 Series (para trabajo por lotes y spooling respectivamente).
  12. 1967 sería el año de CP-40, CP/CMS y TSS/360 de IBM. También nacen MTS (Michigan Terminal System), ITS (Incompatible Timesharing System) del MIT, ORVYL de Stanford, y WAITS de SAIL.
  13. En el 68, IBM vuelve a cambiar de sistema para crear ACP, DEC lanza TSS-8 para PDP-8, y también TENEX de Bolt, BBN, GEORGE 3.
  14. Comienza la época dorada de los sistemas operativos. En 1970 llega DOS-11 para PDP-11 de DEC.
  15. Un año después también aparecen OS/8 y RSTS-11 de DEC.
  16. Data General crea RDOS, IBM crea OS/SV1, OS/SV2 y VM/CMS. La Universidad de McGill también lanza MUSIC/SP.
  17. 1973 se inicia con Elbrus, un sistema operativo ruso para su Elbrus-1. ICL (Fujitsu) trae VME, DEC renueva sus productos con el RSX-11D y RT-11, y Xerox inventa Alto OS.
  18. En 1974, DEC vuelve con OS-11, mientras Norsk Data crea SISTRAN III, la Universidad de Monash crea MONECS, y HP diseña MPE.
  19. En la mitad justa de los 70s, Digital Research crea CP/M y Fujitsu el BS2000.
  20. Un año después aparecerían CAP de Cambridge, Cray OS de Cray, FLEX de TSC y TOPS-20 de DEC.
  21. 1977 sería un año muy importante con KERNAL de John Feagans, OASIS (THEOS) de Phase One Systems, TRS-DOS de Tandy, VMS de DEC/HP, PRIMOS de Prime Computer, y nace el proyecto BSD.
  22. 1978 trae Apple OS, HDOS de Health Company, TripOS de Cambridge, UCSD P-System de la Universidad de California, y Lips Machine del MIT.
  23. Atari DOS de Atari aparece en 1979. También llegarían POS de 3RCC, NLTSS de Lawrence Livermore Lab, y UNIX/32V de Bell Labs.
  24. Pasamos a los años ochenta con 86-DOS de Seattel Computer Products, CTOS de Borroughs, NewDos/80 de Apparat Inc., OS-9 de Microware, SOS de Apple Computer, Xenix de Microsoft (siempre me pregunto cómo sería Windows de haberse basado en este *nix y no en NT), Panos de Acorn (ahora ARM Holdings), y TUNIS de la Universidad de Toronto.
  25. 1981 sería el año en el que Acorn volvería con su Acorn MOS, CAP crea Business Operating System, Apollo Computer idea Aegis SR1 (Domain/OS), IBM en colaboración con Microsoft crean PC-DOS, Xerox trae Pilot, Amdahl Corp crea UTS, y el iMAX para los Intel iAPX 432. Microsoft también lanzaría MS-DOS.
  26. Commodore DOS de Commodore llegaría en 1982, mismo año en el que aparece LDOS de Logical Systems, QNX Software System de QNX, Ultrix de DEC, y SunOS de Sun Microsystems (Oracle). SunOS sería el germen de Solaris.
  27. Apple sorprende con Lisa Office System 7/7 en 1983, y nace también el proyecto GNU. También se comienza a comercializar Novell NetWare, Sinclair lanza QDOS, Cray crea UNICOS, VenturCom lanza Venix, BAE Systems cierra el año con XTS-400.
  28. 1985 se abre con AmigaOS de Commodore. Pero también aparece Atari TOS, DG/UX de Data General, MIPS OS de MIPS, la primera versión de Microsoft Windows, etc.
  29. Un año más tarde viene IBM AIX, HP-UX, GEOS de Berkeley Softworks, etc.
  30. Los *nix siguen proliferando con IRIX de SGI, y Minix del profesor Andrew S. anenbaum. También aparecerían en 1987 el IBM 0S/2, que tiene mucha relación con Windows NT…
  31. En 1988 llega A/UX de Apple, RISC iX de Acorn, LynOS de LynuxWorks, MVS/ESA y OS/400 de IBM, RDOS, HeliOS, etc.
  32. Llega EPOC de Symbian Ltd., NeXTSEP de NeXT Computer (base para MacOS X tras la absorción de Apple de esta empresa creada por Jobs cuando fue despedido de Apple). 1989 sería el año de RISC OS de Acorn, que seguro te suena ahora de la Raspberry Pi. Y no podría olvidarme de The SCO Group y su SCO UNIX.
  33. En los 90s llega aún más estabilidad y se comienzan a fraguar los sistemas operativos que realmente usamos en la actualidad. En 1990 aparce BeOS de Be Inc, OSF/1 de DEC/HP/Compaq y se inicia GNU Hurd.
  34. En 1991, un estudiante finlandés llamado Linus Benedict Torvalds inicia un proyecto como hobby, nada importante… pues menos mal… puesto que así nació Linux.
  35. 1992 se crea Solaris, OpenVMS de DEC/HP, y Bell Labs crea, el que debía ser el sucesor de Unix, el fallido Plan 9. De él ha eredado Linux algunas cosas como sabes…
  36. En 1993 llega FreeBSD, NetBSD, y Newton OS de Apple. Microsoft también rediseña su núcleo y lanza Windows NT.
  37. Dando un pequeño salto, en 1995 aparece Tru64 UNIX, OpenBSD y OS/390 de IBM.
  38. En 1998 tienes FreeDOS de Jan Hall y ReactOS. Proyectos que siguen manteniendo una cierta importancia en la actualidad.
  39. Con la llegada del efecto 2000 y el siglo XXI, los sistemas operativos siguen bajando en número. Aparece Darwin y MacOS X de Apple, ahora sí basado en Unix (BSD). Así la compañía de Cupertino deja atrás los MacOS clásicos y tras absorver NeXT adopta sistemas *nix como base.
  40. 2003 es el año en que Nokia, en colaboración con otros desarrolladores, crea Symbian OS. Ni se imaginarían el fracaso que tendrían años más tarde al no querer adoptar Android como sistema operativo para sus dispositivos. Y eso que eran los reyes de la telefonía móvil…
  41. Nokia vuelve a ser protagonista por poner en marcha Maemo en 2005. Mismo año en el que se lanza DragonFly BSD, openSolaris y eyeOS (proyecto español).
  42. 2007 es el año de iOS de Apple. Las compañías buscan sistemas operativos para dispositivos móviles e Intel lanza Moblin.
  43. Google no se quiere quedar atrás y un año más tarde lanza Android. Un año antes de ChromeOS de 2009.
  44. En 2010, Nokia e Intel unen fuerzas con MeeGo. También se crea Illumos.
  45. En 2013 comienzan a desaparecer algunos proyectos que van cobrando menor importancia por el reinado de iOS y Android en los dispositivos móviles. Pero Mozilla crea B2G o Firefox OS, aunque no tendría demasiado futuro…

Y apartir de aquí creo que conoces la historia bastante bien…

Isaac

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

Deja un comentario

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

A %d blogueros les gusta esto:

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