next up previous contents index
Siguiente: Programas Subir: Introducción a Anterior: Breve historia de   Índice General   Índice de Materias

Características del sistema

soporta características que también se encuentran en otras implementaciones de UNIX, y otras muchas que no se encuentran en ninguna otra. En esta sección, daremos un rápido paseo por las características del núcleo de .

es un sistema operativo de multitarea real y multiusuario, como lo son todas las otras versiones de UNIX. Esto significa que muchos usuarios pueden autentificarse en el sistema y ejecutar programas, y hacerlo de forma simultánea.

El sistema es en su mayoría compatible con varios estándares de UNIX (hasta donde pueda tener estándares el UNIX) en lo que respecta al código fuente de los programas, entre ellos los estándares POSIX.1, UNIX System V, and Berkely System Distribution UNIX. se ha desarrollado con la idea de que el código fuente sea portable de un sistema a otro, y así es fácil encontrar características de uso general que son compartidas por más de una plataforma. Gran parte del software para UNIX disponible en Internet y en otros lugares compila para sin hacer modificaciones. Además, es libremente redistribuible todo el código fuente del sistema , a saber, el núcleo, los controladores de dispositivo, las bibliotecas, los programas de usuario y las herramientas de desarrollo.

Otros rasgos internos específicos de incluyen control de tareas POSIX (que utilizan intérpretes de órdenes como chs y bash, pseudoterminales (dispositivos tty), y soporte para teclados nacionales o personalizados que se cargan dinámicamente. soporta consolas virtuales que le permiten cambiar entre sesiones de login en una única consola del sistema. Los usuarios del programa screen encontrarán familiar la implementación de la consola virtual de .

El kernel puede emular instrucciones del coprocesador 387; los sistemas sin un coprocesador matemático pueden ejecutar programas que requieren capacidades matemáticas de coma flotante.

El sistema operativo soporta varios sistemas de ficheros para almacenar los datos, como el sistema de ficheros ext2, diseñado específicamente para . Hay soporte para los sistemas de ficheros de Xenix y UNIX System V, así como los sistemas de ficheros de MS-DOS y el VFAT de Windows 98, en disco duro y en disquete. El sistema de ficheros de CD-ROM ISO 9660 también está soportado. Hablaremos más acerca de los sistemas de ficheros en los capítulos 24.

proporciona una implementación completa del software de redes TCP/IP. Incluidos controladores de dispositivo para muchas tarjetas Ethernet habituales, y también SLIP (Serial Line Internet Protocol) y PPP (Point-to-Point Protocol), que proporcionan acceso a una red TCP/IP a través de una conexión serie, PLIP (Parallel Line Internet Protocol), y NFS (Network File System - Sistema de Ficheros de Red). También está soportada toda la gama de clientes y servicios TCP/IP, lo que incluye FTP, telnet, NNTP y SMTP. Hablaremos más acerca del trabajo en red en el capítulo 6.

El núcleo de se ha desarrollado para utilizar las características del modo protegido del procesador 80386 o superior. En particular, usa el paradigma de manejo de la memoria basado en descriptores y en modo protegido. Cualquiera que esté familiarizado con el modo protegido del 386 sabe que fue diseñado para sistemas multitarea como el Unix. explota esta funcionalidad.

El núcleo soporta ejecutables con paginación por demanda: sólo aquellos segmentos de un programa que realmente se utilizan se pasan a la memoria desde el disco. Igualmente, se comparten las páginas de memoria de los ejecutables mediante la técnica copy-on-write. Si varias copias de un programa se están ejecutando a la vez, comparten la memoria física, lo cual reduce su uso global.

Para conseguir aumentar la cantidad total de memoria disponible, implementa también la paginación de disco. Puede reservarse en el disco hasta un Gigabyte de espacio de intercambio1.1 en hasta 8 particiones de 128 megas cada una). Cuando el sistema requiere más memoria física, manda al fichero de intercambio las aplicaciones inactivas, permitiéndole ejecutar aplicaciones más grandes y dar servicio a otros usuarios. Aun así, el intercambio de páginas al disco no sustituye a la memoria RAM, que es mucho más rápida.

El núcleo de implementa también una unificación de la memoria física y de la memoria de intercambio en el disco. Toda la memoria que quede libre es usada para intercambio, y se reduce al ejecutar programas grandes.

Los ejecutables usan bibliotecas compartidas; esto significa que los ejecutables comparten el código común de las bibliotecas en un único fichero, como sucede en SunOS. Los ficheros ejecutables ocupan menos espacio en disco, especialmente cuando usan funciones de muchas bibliotecas distintas. También existen bibliotecas enlazadas estáticamente para el depurado de objetos y para mantener ficheros ejecutables ``completos'' cuando las bibliotecas dinámicas no están instaladas. Las bibliotecas se enlazan dinámicamente en tiempo de ejecución, y el programador puede usar sus propias rutinas en lugar de las rutinas de la biblioteca estándar.

Para facilitar la depuración de programas, el núcleo genera volcados de memoria core dump para el análisis post-mortem cuando una aplicación falla. Mediante los core dump y un ejecutable enlazado con soporte de depuración, los programadores pueden determinar la causa de que el programa haya fallado.


next up previous contents index
Siguiente: Programas Subir: Introducción a Anterior: Breve historia de   Índice General   Índice de Materias
Ismael Olea 2002-09-26