Herramientas de usuario

Herramientas del sitio


unix-historia

¡Esta es una revisión vieja del documento!


Historia de Unix

Una información más completa se encuentra en la wikipedia.

Fue desarrollado en 1969 por un grupo de empleados de AT&T en Bell Labs: Ken Thompson, Dennis Ritchie y Brian Kernighan entre otros. Aunque fue escrito inicialmente en assembler su fortaleza radicaba en que fue re-escrito en un lenguaje de alto nivel: C. Esto lo hacía fácilmente portable de una máquina a otra. Además permitió que se desarrollara más rápido y a menor costo que otros sistemas operativos que estaban escritos en assembler.

Un juicio anti-monopolio obligaba a AT&T a mantenerse fuera del negocio de los computadores, por lo que Unix se convirtió en un proyecto de investigación de Bell Labs. Por ello hasta la versión 7 de Unix se licenció con código fuente a las universidades, en particular a la Universidad de Berkeley cuya contribución más notable fue el stack TCP/IP. La universidad de Berkeley desarrolló su propia versión que llego a ser conocida como Unix BSD (de Berkeley Standard Distribution). Esta se usó en innumerables universidades en máquinas VAX de Digital. Muchos comandos y utilitarios de Unix vienen de BSD.

Uno de los líderes de BSD fue Bill Joy, quien fundó Sun Microsystems en 1982. A la larga las estaciones de trabajo de Sun reemplazarían a los VAX de Digital en las universidades.

En 1983, un nuevo juicio anti-monopolio dividió AT&T en 2 empresas y por fin pudo comercializar Unix. De ahí nacieron Unix System III y Unix System V. Muchas fabricantes de maquinas compraron la licencia y lo comercializaron con distintos nombres: HP-UX de HP, AIX de IBM, Xenix de Microsoft, Digital Unix, Solaris de Sun, etc. Esto llevó a muchas incompatibilidades entre las distintas versiones debilitando su posición en el mercado.

En 1983 Richard Stallman fundó la GNU con el propósito de desarrollar una versión gratuita de Unix. El proyecto logró implementar prácticamente todos los comando, incluso de mejor calidad. Pero fracasó en el núcleo (llamado Hurd).

En 1991 Linus Torvalds desarrolló Linux como un núcleo de Unix gratuito específico para máquinas x86. Linux y las herramientas de la GNU corriendo en máquinas x86 terminaron por desplazar a las estaciones Sun en las universidades.

Lo que más ha complicó el desarrollo de Unix fue la ausencia de estándares. Sin duda el esfuerzo más importante es el de la alianza POSIX.

El manual de Unix

Una de las características que fortaleció Unix es que el sistema incluye un manual de referencia accesible desde cualquier terminal, algo no muy habitual en la época. El manual se descompone en distintas secciones:

  1. sección 1: comandos y utilitarios de Unix (ls, cp, man, sh, etc.). Estos son ejecutados como procesos de Unix.
  2. sección 2: llamadas al sistema (open, read, write, fork, exec, etc.). Estas son funciones que pueden invocarse desde C pero que son implementadas en el núcleo de Unix.
  3. sección 3: funciones de biblioteca (getchar, fread, malloc, free, etc.). Estas son funciones que pueden invocarse desde C y que son implementada en bibliotecas y por lo tando es código que se añade a los procesos.
  4. sección 4: describe archivos especiales (/dev/tty1, /dev/mouse, etc.).
  5. sección 5: describe formatos de archivos (/etc/passwd, /etc/group)
  6. sección 7: describe los estándares relacionados con Unix.
  7. sección 8: describe los comandos de administración de Unix a los que solo la cuenta root tiene acceso.

Más información se puede encontrar en http://man7.org/linux/man-pages. Lo más relevante es que en todo momento se puede obtener información de un comando/función con:

% man ls
% man read

A veces hay nombres que aparecen en varias secciones. Si uno conoce a qué sección pertenece el nombre que busca se puede usar opcionalmente la sección:

% man 2 open
...

Busca open entre las llamadas de sistema. Otros ejemplos:

% man 1 ls
...
% man 3 printf
...
unix-historia.1347367761.txt.gz · Última modificación: 2012/09/11 12:49 por lmateu