[A01] Un poco de Historia: Mundo Unix

  • septiembre 20, 2019
  • | 1797 palabras
  • | 9 minutos de lectura

Bienvenidos al mundo UNIX, en el siguiente capítulo hablaremos sobre los inicios de los ordenadores y como han ido evolucionado los primeros sistemas operativos. Explicaremos que significa que un sistema operativo sea multitarea o multiusuario y explicaremos una extensa historia sobre el sistema operativo base UNIX.

[01.1] Un nuevo mundo

GNU/Linux no es una moda, desde sus inicios en 1991 hasta en la actualidad, este característico sistema operativo no ha dejado de evolucionar. GNU/Linux no es un sistema operativo complicado, es un sistema operativo más dentro del ecosistema de la informática.

[01.2] Historia de los ordenadores

Un ordenador es una máquina electrónica extremadamente compleja pero a su vez muy sencilla de entender. Desde los primeros ordenadores electromecánicos compuestos de miles de tubos de vacío y cuya programación se llevaba a cabo conectando cables, al ordenador moderno de hoy, la complejidad del hardware ha sido creciente. Los primeros ordenadores podían ocupar una planta entera de un edificio con un circuito de agua que lo enfriaba.

Un ordenador no deja de ser una maquina pero es una maquina que no sabe hacer cosas por si sola, sino que tiene que haber una persona cárnica que le ordene hacer un cálculo, o una instrucción. El ordenador no tiene inteligencia pero conoce un idioma llamado binario. Seguramente habrás oído hablar del binario, eso de ceros y unos. Los ordenadores hablan con combinaciones eternas de 0s y 1s. Estas combinaciones de ceros y unos son instrucciones que pueden ejecutar las maquinas y se le llama lenguaje de maquina. Los seres humanos no conocemos este idioma y tenemos otros lenguajes llamados lenguajes de programación donde nos es más fácil escribir instrucciones. Dichas instrucciones se deben de traducir o compilar a lenguaje maquina para que el ordenador pueda ejecutarla. Por ejemplo, los microprocesadores emplean un lenguaje llamado Ensamblador.

[01.3] El sistema operativo

Desde el momento en el que pulsas el botón de encendido de tu ordenador y el momento en el que puedes ponerte a trabajar y usar tus programas favoritos, pasa un tiempo que cada vez es menor. Durante ese tiempo, se cargan programas en la memoria del ordenador. Estos programas tienen el objetivo de simplificar la vida del usuario y del informático y es lo que conocemos como Sistema Operativo.

Dicho de otra forma, el sistema operativo es un programa o un conjunto de programas que garantiza la gestión del ordenador y de los periféricos. Sirve de interfaz entre el medio físico (que viene siendo el hardware) y el programa (que es el Software). Es un conjunto de programas muy complejos cuya meta es hacer más sencillos los programas y el uso del ordenador.

De esta forma, el sistema operativo ofrece una interfaz de programación de aplicaciones llamada API que permite a los programadores gestionar la memoria, los accesos a los periféricos, los datos en el disco, la seguridad, los programas y la recopilación de la información.

GNU/Linux es un sistema operativo tipo UNIX y además es multitarea y multiusuario. Que sea multitarea significa que el sistema gestiona la ejecución simultánea de varios programas llamados procesos y que sea multiusuario significa que el sistema permite la existencia de varios usuarios diferentes en una misma máquina conectados o no (ya que se pueden ejecutar programas sin estar conectados, por ejemplo el Apache2)

IMAGEN DE ARQUITECTURA LOGICA DE UN SISTEMA UNIX PAGINA 43

[01.4] El sistema UNIX, una breve Historia

La historia de UNIX empieza como no podía de ser de otra forma en el MIT por allá el año 1964, el laboratorio Bell Labs de AT&T y General Electric comenzaban a desarrollar un proyecto experimental llamado MULTICS (Multiplexed Information and Computing Service.) MULTICS se desarrolla en un enorme sistema GE-645 de General Electric y está equipado con dos procesadores que pueden tratar cada uno 435000 instrucciones por segundo. Estaba pensado para ser utilizado por varias personas a la vez y para poder lanzar procesos en segundo plano. También incluía tres unidades de memoria de 1MB cada una y 136MB de almacenamiento.

Sin embargo, si bien MULTICS alcanzó a tener 82 estaciones de trabajo y un máximo de 200 usuarios trabajando de forma simultanea, al momento de pasarlo a producción, resultó que su rendimiento era menor de lo esperado. En 1969 Bell Labs abandona el proyecto para dedicarse al desarrollo de otro sistema llamado GECOS.

De todos modos, Ken Thompson que es desarrollador de Bell Labs, continuó con trabajo de GE-645 y se propuso crear un juego llamado Space Travel. Al ejecutarse en MULTICS resultó ser muy lento y costoso, así que Ken reescribe el juego en Ensamblador para el mini ordenador llamado DEC PDP-7. En esta misión le ayuda un personaje bien conocido: Dennis Ritchie.

Dennis Ritchie también era un desarrollador de Bell Labs y Dennis y Ken tras la experiencia adquirida con MULTICS acaban creando un sistema operativo para PDP-7. Al mismo tiempo, Rudd Canaday, también de Bell Labs, estaba desarrollando justamente un nuevo sistema de archivos que diseña como si fuera un sistema operativo. Le añadieron un intérprete de comandos y algunas herramientas. Lo llamaron Uniplexed Information and Computing System (UNICS) según una idea de Brian Kerninghan. Desde el principio el proyecto podía gestionar dos usuarios al mismo tiempo en modo multitarea real.

FOTO DE DEC PDP-7 PAGINA 45

UNICS no deja de ser un MULTICS mejorando los conceptos. En particular, sus diseñadores proponen un sistema de comunicación completamente nuevo entre los programas, en el cual un primer programa puede enviar sus datos a otro programa. En ese momento el CS de UNICS fui sustituido por una X. La leyenda UNIX acaba de nacer.

Inmediatamente, los ingenieros se enfrentan a un nuevo problema. Al principio, en UNIX todo estaba desarrollado en ensamblador, por lo tanto en lenguaje máquina. Para quien haya desarrollado algo en ensamblador sabrá que no es tarea fácil. Ken Thompson se interesa por este problema, primero piensa en desarrollar UNIX en lenguaje TMG y luego en Fortran. Al encontrar el lenguaje incompleto, se junta con Dennis Ritchie para crear el lenguaje [B](https://es.wikipedia.org/wiki/B_(lenguaje_de_programaci%C3%B3n), que proviene del lenguaje [BCPL](https://es.wikipedia.org/wiki/BCPL_(lenguaje_de_programaci%C3%B3n). Pero BCPL tenía problemas con el tipado de las variables y los números reales, por lo que partiendo de B desarrolla New B, que más tarde llamará C.

UNIX es reescrito en lenguaje C a partir de 1973, de esta forma para pasar UNIX a una maquina únicamente es necesario que en esa máquina haya un compilador de C (para pasar de C a lenguaje máquina). De esta forma, UNIX se hace portable y acelera su desarrollo.

Bell Labs es una empresa que depende de AT&T, una empresa que tiene un potencial muy importante en el mundo de las telecomunicaciones de EEUU (y que tubo uno de los grandes hackeos del mundo). AT&T fue objeto en 1956 de un decreto antimonopolio que le prohibía comercializar cualquier producto ajeno a su sector industrial: las telecomunicaciones. Así que AT&T no puede vender UNIX y por lo tanto no le ve futuro comercial. Entonces en 1974 decide liberar completamente el sistema operativo bajo una licencia poco restrictiva. Aún así solo permite que se pueda usar con fines educativos en las universidades y en las empresas.

Durante 10 años con UNIX rondando por las Universidades, el crecimiento de UNIX es enorme, ya que había muchas universidades implicadas en su difusión y mejora. Es cuando AT&T modifica la licencia de UNIX haciendo que su uso sea más restrictivo. Es entonces cuando Berkeley, una universidad que se encuentra en California, decide publicar BSD (Berkeley Software Distribution) basado en UNIX v6.

Aquí la historia de UNIX se separa en dos: Por un lado tenemos la oficial (o eso dicen) donde una empresa como AT&T sigue con el desarrollo de UNIX y llega a crear las versiones 8, 9 y 10 durante la década de los 80 con fines científicos. Y por otro lado y de forma paralela, AT&T desarrolla un UNIX totalmente comercial llamado UNIX System III que se comercializa a partir de 1982. No es hasta en 1983 que AT&T desarrolla y vende las primeras versiones de UNIX Sistem V.

Durante este tiempo, la Universidad de Berkeley no descansa y sigue desarrollando BSD como una alternativa de código abierto al UNIX System III y V. Hasta llegar a un punto donde se implemente por primera vez el protocolo TCP/IP, base del Internet moderno.

Desde los años 80 hasta 1994 se le podría conocer como las décadas de la Guerra de los UNIXs y es que parece que la separación de UNIX en dos ramas, por un lado AT&T con su System V y Berkeley con su BSD, hace que no se pongan de acuerdo en un estándar común. En consecuencia, se celebran múltiples juicios sobre el uso del nombre y herramientas derivados de UNIX. Porque todo el mundo había decidido montar su sistema operativo basado en UNIX, el problema es que entre ellos todos eran incompatibles. Tanto Solaris, como Digital UNIX, True64, Xenix, IRIX, Ultrix, UNIXware o A/UX eran incompatibles con el vecino. Entre tanto juicio y tanto clon de UNIX, el problema es que parece que nadie quiere ponerse de acuerdo sobre una base y el estándar común. Es en esta situación, donde Microsoft aprovecha el vacío en el mercado para introducir su sistema operativo Windows NT (que por cierto, también deriva de UNIX).

En 1984 un grupo de editores comerciales de UNIX intenta una primera estandarización creando X/Open Standards y publica un documento llamado Guia de Portabilidad Abierta de UNIX que describe un estándar abierto para UNIX. Este documento tiene un gran respaldo y en 1987 Sun MicroSystems y AT&T deciden trabajar juntos en un UNIX unificado, y juntan BSD y System V.

Pero siguen habiendo problemas y juicios por todos los sitios y AT&T y Sun MicroSystems entran en juicio por movidas que no vienen a cuento, pero sea como sea, AT&T decide crear una empresa llamada UNIX System Laboratories y transfiere todos los derechos de UNIX.

Un año más tarde, llega una empresa llamada Novell que adquiere USL y se convierte propietario de System V Release 4 (que era el sistema operativo que AT&T y Sun MicroSystems deciden montar juntos). Al año siguiente, Novell cede la marca UNIX a X/Open Standards. Finalmente, en 1994 UNIX desaparece por completo y se reestructura OSF. Pasa un año y en 1995 Novel cede la licencia operativa del código fuente de UNIX a la empresa SCO (Santa Cruz Operations). El mismo año, X/Open y OSF se fusionan de manera definitiva y forman The Open Group.

En este momento, sólo existe un único organismo de estándar UNIX y es cuando se forma la única estandarización de UNIX. Es de esta forma que The Open Group puede asegurarse de que todos siguen sus recomendaciones publica un documento llamado Single UNIX Specification donde explica las normas y puede proponer certificaciones.

T3rr0rz0n3 @t3rr0rz0n3
SysAdmin & Developer Web. Autor de #voidNull, #entreBits. #Cafe #Gatos #Beer #HeavyMetal