jueves, 10 de abril de 2008

Linux : Desde Multics - Unix - Minix a Linux

A finales de 1960, el Instituto Tecnológico de Massachusetts, los Laboratorios Bell de AT&T y General Electric trabajaban en un Sistema Operativo experimental llamado Multics (Multiplexed Information and Computing Service - Servicio de Información y Computación Multiplexado). El objetivo del proyecto era desarrollar un sistema operativo interactivo que contase con muchas innovaciones, entre ellas mejoras en las políticas de seguridad. El proyecto consiguió dar a luz versiones para producción, pero las primeras versiones contaban con un pobre rendimiento. Los laboratorios Bell de AT&T decidieron desvincularse y dedicar sus recursos a otros proyectos.
Uno de los programadores del equipo de los laboratorios Bell, Ken Thompson, siguió trabajando para la computadora mainframe GE-635 y escribió un juego llamado Space Travel (Viaje espacial). Sin embargo, descubrió que el juego era lento en la máquina de General Electric. Por ello Thompson con ayuda de Dennis Ritchie escribió nuevamente el programa en lenguaje ensamblador, para que se ejecutase en una computadora DEC PDP-7 (un mini ordenador). Esta experiencia, junto al trabajo que desarrolló para el proyecto Multics, condujo a Thompson a iniciar la creación de un nuevo sistema operativo para la DEC PDP-7. Thompson y Ritchie lideraron un grupo de programadores, entre ellos a Rudd Canaday, en los laboratorios Bell, para desarrollar tanto el sistema de ficheros como el sistema operativo multitarea en sí. A lo anterior, agregaron un intérprete de órdenes (o intérprete de comandos) y un pequeño conjunto de programas. El proyecto fue bautizado UNICS, como acrónimo de Uniplexed Information and Computing System, pues sólo prestaba servicios a dos usuarios (de acuerdo a Andrew Tanenbaum, era sólo a un usuario). La autoría de esta sigla se le atribuye a Brian Kernighan, ya que era un hack de Multics. Dada la popularidad que tuvo un juego de palabras que consideraba a UNICS un sistema MULTICS castrado (pues eunuchs, en inglés, es un homófono de UNICS), se cambió el nombre a UNIX, dando origen al legado que llega hasta nuestros días.


En 1972 se tomó la decisión de escribir nuevamente UNIX, pero esta vez en el lenguaje de programación C, (para entonces UNIX ya contaba con el primer programa de edición electrónica –Trof, un año antes Thomson y Ritchie habían publicado un manual de programación de UNIX). Este cambio significaba que UNIX podría ser fácilmente modificado para funcionar en otras computadoras (de esta manera, se volvía portable) y así otras variaciones podían ser desarrolladas por otros programadores. Ahora, el código era más conciso y compacto, lo que se tradujo en un aumento en la velocidad de desarrollo de UNIX. AT&T puso a UNIX a disposición de universidades y compañías, también al gobierno de los Estados Unidos, a través de licencias. Una de estas licencias fue otorgada al Departamento de Computación de la Universidad de California, con sede en Berkeley. En 1975 esta institución desarrolló y publicó su propio sucedáneo de UNIX, conocida como Berkeley Software Distribution (BSD), que se convirtió en una fuerte competencia para la familia UNIX de AT&T.

Mientras tanto, AT&T creó una división comercial denominada Unix Systems Laboratories para la explotación comercial del sistema operativo. El desarrollo prosiguió, con la entrega de las versiones 4, 5 y 6 en el transcurso de 1975. Estas versiones incluían los pipes o tuberías, lo que permitió dar al desarrollo una orientación modular respecto a la base del código, consiguiendo aumentar aún más la velocidad de desarrollo. Ya en 1978, cerca de 600 o más máquinas estaban ejecutándose con alguna de las distintas encarnaciones de UNIX.

La versión 7, la última versión del UNIX original con amplia distribución, entró en circulación en 1979 . En la década del 80 UNIX contaba con varias versiones desarrolladas en distintas universidades y empresas. Para finalizar con la confusión de todas las versiones divergentes, AT&T decidió combinar varias versiones dando origen en 1983 al Unix System V Release 1. Esta versión presentó características tales como el editor Vi y la biblioteca curses, desarrolladas por Berkeley Software Distribution en la Universidad de California, Berkeley.

En 1993, la compañía Novell adquirió la división Unix Systems Laboratories de AT&T junto con su propiedad intelectual. Esto ocurrió en un momento delicado en el que Unix Systems Laboratories disputaba una demanda en los tribunales contra BSD por infracción de los derechos de copyright, revelación de secretos y violación de marca de mercado

MINIX
Minix es un clon del sistema operativo Unix distribuido junto con su código fuente y desarrollado por el profesor Andrew S. Tanenbaum en 1987. La última versión oficial de Minix es la 3.1.2, publicada el 8 de Mayo de 2006. Fue creado para enseñar a sus alumnos el diseño de sistemas operativos en la Vrije Universiteit de Ámsterdam. La razón de su desarrollo fue porque Unix estaba bajo restricciones de licencia de AT&T, era demasiado complicado y corría sobre máquinas complejas; algo completamente antipedágogico.
Gracias a su reducido tamaño, diseño basado en el paradigma del micronúcleo, y su amplia documentación, resulta bastante apropiado para personas que desean instalar un sistema operativo compatible con Unix en su máquina personal así como aprender sobre su funcionamiento interno. Minix fue desarrollado para correr sobre IBM PC con procesador Intel 8088 o superior, aunque se han creado conversiones para otros sistemas.
Debido al enfoque puramente educacional de Minix, Tanenbaum no permitía que este fuera modificado demasiado ya que esto complicaría el sistema y no permitiría que sus estudiantes lo entendieran en un semestre.
Para una persona poco familiarizada con los elementos internos de un sistema operativo, Minix es una buena opción que le permite entender casi todos los elementos del sistema con solo algunos meses de uso y estudio.


LINUX

En 1991 teniendo como base el Sistema Operativo Minix, Linus Torvalds empezó a programar las primeras lineas de código de lo que hoy se conoce como el Sistema Operativo Linux.

El 25 de agosto de 1991 Torvalds envío el siguiente mensaje al grupo de noticias comp.os.minix :

"Hola a todos por ahí que estan usando minix. Estoy haciendo un sistema operativo (gratuito, es sólo un hobby, no será grande y profesional como gnu) para sistemas 386 (486) AT clones. Esto ha iniciado desde abril y está empezando a tomar forma. Me gustaría algún comentario de las personas como por ejemplo cosas que les gusta o no les gusta en minix, como mi sistema operativo se parece un poco (la misma disposición física de los archivos del sistema, debido a razones prácticas entre otras cosas). Actualmente he portado bash (1.08) y gcc (1.40), y las cosas parecen funcionar. Esto implica que pondré algo en práctica dentro de unos meses y me gustaría saber qué características desea la mayoría de las personas. Cualquier sugerencia será bienvenida, pero no prometo que puedan ser aplicadas :-)


Linus (torva. .. @ kruuna.helsinki.fi)


PS. Sí - es libre de cualquier código de minix, y tiene un multi-hilos fs. NO es portable (386 utiliza la conmutación de tareas, etc), y probablemente nunca será otra cosa que el apoyo AT-discos duros, ya que es todo lo que tengo :-(."

El 05 de Octubre de 1991 Linus mediante este correo anunció por primera vez la versión oficial de Linux:

¿Extraña los agradables días de minix-1.1, cuando los hombres eran hombres y escribían sus propios controladores de dispositivos? ¿Estás sin un buen proyecto y acabas de morir a dentelladas sin un OS que puedas intentar modificar para tus necesidades? ¿Le resulta frustrante cuando no todo funciona en minix? No más amanecidas para obtener un bonito programa de trabajo? Entonces este puesto podría ser para usted :-) Como dije hace un mes (?) Hace un tiempo estoy trabajando en una versión libre de un minix- Buscando algo como para ordenadores AT-386. Por fin he llegado a la fase en que es usable incluso (aunque no podrá ser en función de todo lo que se quiere), y estoy dispuesto a poner las fuentes para una distribución más amplia. Es sólo la versión 0.02 (+1 (muy pequeña) casi un parche), pero he tenido éxito plenamente al ejecutar bash / gcc / gnu-make / gnu-sed / compress, etc en virtud del mismo. Las fuentes de este proyecto, de mi mascota se puede encontrar en nic.funet.fi (128.214.6.100) en el directorio / pub /OS/Linux. El directorio también contiene el archivo README- y un par de binarios para trabajar bajo linux (bash, gcc y actualización, por ahora es todo lo que se puede pedir :-). Se proporciona el codigo completo de las fuentes del núcleo, ya que el codigo de minix se ha utilizado. Las fuentes de la biblioteca son sólo parcialmente libres, de modo que no puede ser distribuido actualmente. El sistema es capaz de compilar "tal y como esta" y se ha puesto a trabajar. Las fuentes de los binarios (gcc y bash) se puede encontrar en el mismo lugar en /pub/ gnu. ALERTA! ¡ADVERTENCIA! NOTA! Estas fuentes todavía necesitan minix-386 para ser compilados (gcc-1,40 y, posiblemente, 1.37.1, no han sido probados), y se necesita configurar minix en la opción correspondiente si se desea ejecutar, por lo que todavía no es un sistema autónomo. Aquellos de ustedes sin minix estan avisados. Estoy trabajando en ello. También tendrá que tener algo de hacker para configurarlo (?), Así que para aquellos que esperan una alternativa a minix-386, por favor, hacer caso omiso de este aviso. En la actualidad está destinado a los hackers interesados en sistemas operativos y sistemas 386 con el acceso a minix. El sistema necesita un AT-compatible con disco duro (IDE está bien) y monitor EGA/VGA. Si todavía está interesado, por favor, lea en el ftp el README/RELNOTES, y/o envie un correo con nueva información. Yo puedo (bueno, casi) escuchar de ustedes preguntar "por qué?". El núcleo estará listo en un año (o dos, o el mes que viene, quién sabe), y ya he modificado minix. Este es un programa para los hackers hecho por un hacker. He disfrutado haciéndolo, y alguien puede disfrutar viendo e incluso modificándolo para sus propias necesidades. Aún es lo suficientemente pequeño como para entender, utilizar y modificar, y estoy ansioso de ver cualquier comentario que usted pueda tener. También estoy interesado en la opinión de alguien que haya escrito alguna de las utilidades, herramientas servicios públicos/biblioteca de funciones para minix. Si sus esfuerzos son libremente distribuibles (incluso en virtud de los derechos de autor o de dominio público), me gustaría saber de usted, así que puede añadirlos al sistema. Estoy utilizando Earl Chews estudio ahora (gracias a un buen sistema de trabajo y Earl), y obras similares será muy bienvenido. Su (C) 's va a ser dejado intacto. Enviarme una línea si está dispuesto a que me permita utilizar su código. Linus.
Luego de este mensaje muchos hackers se sumaron al proyecto colaborando a traves de Internet. Linus tal como lo menciona utilizó el compilador gcc (del proyecto GNU). En 1992 el núcleo Linux fue combinado con el sistema GNU el cual se encuentra compuesto de piezas individuales de software pero que hasta ese momento carecían de núcleo. El Sistema Operativo resultante es lo que se conoce como GNU/Linux (aunque existen algunas controversias por la denominación exacta).

No hay comentarios:

Publicar un comentario