Facultad de Ingeniería en Sistemas

Sistemas Operativos
- Diferencias entre Unix y Linux-

Proyecto final

Profesor: Randall Vargas

Estudiante: Diana Alfaro Tatiana Macchiavello Duarte

Grupo: Martes - noche

Agosto 2005

Sistema Operativo

Diferencias entre Linux y Unix

Tabla de Contenido
1. 2. FUNCIONES DEL SISTEMA OPERATIVO ...................................................................................1 INTRODUCCIÓN HISTÓRICA A UNIX Y LINUX. ......................................................................2 3. VISIÓN GENERAL DE UNIX.................................................................................................................4 3.1. ESTRUCTURA DEL SISTEMA. .................................................................................................................4 3.1.1 Sistema Operativo interactúa con el hardware.............................................................6 3.1.2 El Entorno de Procesamiento...............................................................................................7 3.1.3 Primitivas de Construcción de Bloques.............................................................................7 3.1.4 Servicios del Sistema Operativo. ........................................................................................8 3.1.5 Aspectos del Hardware. ........................................................................................................9 3.1.6. Interrupciones y Excepciones. ............................................................................................9 3.1.7 Niveles de Ejecución del Procesador. ..............................................................................10 3.1.8 Manejo de Memoria. ............................................................................................................11 4. DESCRIPCIÓN DE LINUX Y DE SUS FUNCIONALIDADES. .......................................................11 4.1 ESTRUCTURA GENERAL DEL SISTEMA OPERATIVO LINUX...................................................................12 5. GESTIÓN DE PROCESOS....................................................................................................................15 5.1 ESTADOS Y TRANSICIONES DE UN PROCESO. .........................................................................15 5.1.1. Ciclo Vida de un Proceso en UNIX. Conjunto Estados ...............................................15 5.1.2 Ciclo de Vida de un Proceso en Linux. Conjunto de Estados (Figura 2.2.)............20 5.2 ESTRUCTURAS DE DATOS DEL SISTEMA PARA LA GESTIÓN DE PROCESOS....................22 5.2.1 TABLA DE PROCESOS. .......................................................................................................................22 5.2.2 TABLA DE PROCESOS EN LINUX........................................................................................................22 Estructura del descriptor de procesos en Linux (PCB = Process Control Block). ............22 5.3 ORGANIZACIÓN DE LA MEMORIA DEL SISTEMA. ..................................................................23 5.3.1 Asignación de memoria......................................................................................................24 5.3.2. Regiones.................................................................................................................................25 5.3.3. Páginas y Tablas de Páginas............................................................................................25 5.4 SINCRONIZACIÓN DE PROCESOS EN LINUX. ...........................................................................27 6. GESTIÓN DE LA MEMORIA ..............................................................................................................28 6.1 GESTIÓN DE MEMORIA EN UNIX ................................................................................................28 6.1.1. Paginación por Demanda .................................................................................................29 6.1.2 Estructuras de Datos para Paginación por Demanda (UNIX) ..................................29 6.2 GESTIÓN DE MEMORIA EN LINUX ..............................................................................................31 6.2.1 Direccionamiento de Memoria en Linux ........................................................................32 6.2.2. Segmentación en Linux......................................................................................................33 6.2.3 Paginación en Linux ............................................................................................................35 7. SEGURIDAD EN UNIX .........................................................................................................................36 7.1 PERMISOS DE UN ARCHIVO ...................................................................................................................36 7.2 ATRIBUTOS DE LOS ARCHIVOS EN EXT2FS............................................................................................37 7.3 CRIPTOGRAFÍA .....................................................................................................................................37 7.4 ALMACENAMIENTO SEGURO ................................................................................................................38 7.5 COPIAS DE SEGURIDAD ........................................................................................................................38 7.6 AUTENTICACIÓN DE USUARIOS ............................................................................................................39 Página I

Sistema Operativo

Diferencias entre Linux y Unix

7.7 SEGURIDAD DEL NÚCLEO .....................................................................................................................39 8. SEGURIDAD EN LINUX.......................................................................................................................40 8.1 Seguridad local.........................................................................................................................40 9. BIBLIOGRAFÍA .....................................................................................................................................41

Página II

Sistema Operativo

Diferencias entre Linux y Unix

1. Funciones del sistema operativo
El sistema operativo UNIX se ha desarrollado en un lenguaje de alto nivel. La utilización de un lenguaje de alto nivel ha permitido la portabilidad del sistema a muchas máquinas diferentes. Lo mismo le ocurre a LINUX, por ello es importante que el código de las aplicaciones pudiera compilarse de manera transparente sea cual sea la máquina y los dispositivos utilizados. Máquina virtual. El SO ofrece una máquina virtual al usuario y a los programas que ejecuta. Este se ejecuta en una máquina física que posee una interfaz de programación bajo nivel, y proporciona abstracciones de alto nivel y una nueva interfaz de programación y uso más evolucionada. El SO posee una interfaz entre las aplicaciones y la máquina. Por ello, es por lo que todas las tareas físicas (acceso a dispositivos externos o internos, a la memoria, etc.) se delegan en el sistema operativo. Esta encapsulación del hardware libera a los desarrolladores de la complejidad de gestionar todos los dispositivos existentes, ya que el sistema operativo es quien se encarga de ello. Gestión del CPU. En LINUX, a cada proceso se le atribuye un quantum de tiempo y elige un proceso a ejecutar durante ese quantum. Cuando ha transcurrido ese quantum, el sistema hace pasar al proceso al estado “listo para ejecutarse”, y elige a otro proceso que se ejecuta durante otro quantum. El quantum es muy corto y el usuario tiene la impresión de que varios procesos se ejecutan simultáneamente, aunque sólo un proceso se ejecuta en un instante dado. Gestión de memoria. El sistema se encarga de gestionar la memoria física de la computadora. En un entorno multiusuario y multitarea, el sistema debe efectuar una gestión muy rigurosa de la memoria. Como la memoria física de la máquina es a menudo insuficiente, el sistema utiliza entonces una parte del disco duro como memoria virtual. Gestión de recursos. El SO se encarga de gestionar los recursos disponibles. El sistema ofrece a los procesos una interfaz que permite compartir los recursos del hardware. Implementa un sistema de protección que permite a los usuarios y a los administradores proteger el acceso a sus datos. El sistema mantiene listas de recursos disponibles y en curso de utilización, lo que permite atribuirlos a los procesos que utilizan los recursos de la máquina, y puede detectar así los conflictos de acceso.

Página 1 de 42

Sistema Operativo Diferencias entre Linux y Unix 2. Además posee un eficaz sistema de archivos. Objetivos del nuevo Sistema Operativo: (1) Dar servicio simultáneo a gran cantidad de usuarios. es decir. INTRODUCCIÓN HISTÓRICA A UNIX Y LINUX. Thompson. Permite ejecutar programas. UNIX es un potente sistema operativo que en su mayor parte es independiente de la máquina. (2) Proporcionar gran capacidad de cálculo y almacenamiento. dejando sólo un 10% dependiente del lenguaje máquina de una computadora en concreto ya que C se caracteriza por su portabilidad. La popularidad del S. multiusuario e interactivo de propósito general. 1969: Primera Versión de MULTICS en Bell. su independencia de la máquina. Ken Thompson. No cumplió las expectativas y Laboratorios Bell abandona el proyecto Þ El proyecto muere. administrando el sistema de información a largo plazo. UNIX es un sistema multitarea. UNIX hereda esta característica convirtiéndose en uno de los sistemas operativos más portables. (1) Versión primitiva del sistema de archivos UNIX. (2) Interfaz de usuario simple pero completo. aporta un interfaz con un gran número de periféricos (impresoras. (4) Ha nacido UNIX. Dennis Ritchie y otros diseñan un sistema de archivos versión primitiva del sistema de archivos de UNIX. General Electric y MIT intentan desarrollar un nuevo Sistema Operativo: MULTICS (sistema operativo multiusuario interactivo).O. 1965: Laboratorios Bell. discos. cintas magnéticas. controlando el flujo de información entre la computadora central y dichos periféricos. terminales) para trabajar con ellos de forma cómoda. Thompson y Ritchie Primera implementación de su diseño. (2) Subsistema de procesos. modificar y mover a otras máquinas. Lenguaje ensamblador. UNIX es debida a: (1) Escrito en un lenguaje de alto nivel por lo que es fácil de leer. Página 2 de 42 . entender. (3) Conjunto de programas de utilidad. Fin proyecto MULTICS: Algunos participantes intentan mejorar el entorno de programación desarrollado. (3) Permitir a los usuarios compartir datos fácilmente. Ritchie y el lenguaje C Þ 1973: UNIX se rescribe en C casi en su totalidad (90% aproximadamente).

(8) Interfaz consistente y simple con los dispositivos periféricos. (4) Sistema de archivos jerárquico. Lotus. SGI. Las versiones pares son estables y las impares inestables. IBM. el segundo es la versión y el tercero la revisión. Digital. Por lo que respecta a Linux:· (1) Linux aparece en 1991 como evolución de MINIX para el 80386. bash. (6) En junio de 1996 se distribuye Linux 2. Sysbase. Corel. Sun. (3) Forma de trabajo: Los fuentes (versiones) se difunden con la máxima frecuencia y cualquiera que quiera modificar o criticar algo. etc.2 con muchas mejoras y soporte para nuevos tipos de hardware. Informix. Sun. (7) Formato consistente para los archivos permitiendo escribir programas con facilidad. (9) Interés por parte de las empresas (Intel. HP. lo hace. etc. etc. Caldera. Debian. (4) Se portan las herramientas GNU de la FSF (gcc.0. etc. intranet.Sistema Operativo Diferencias entre Linux y Unix (3) Primitivas de construcción de programas complejos a partir de otros más simples.E. El primer número cambia cuando se da una evolución importante.).0 en forma de “distribución”. emacs. (5)Fácil mantenimiento. Adobe. lo incorporan.4 con mejoras en el Página 3 de 42 . Internet. (8) La FSF adopta Linux como Sistema Operativo Oficial: GNU/Linux.S. Los más conocedores de esa área (los que la han programado) deciden si es útil y si lo es. S. (7) Aparecen varias distribuciones (RedHat. (9) Hoy existen numerosas variantes comerciales (SCO. algunas con soporte oficial para empresas).) que actúan en entornos cliente servidor. gdb. Oracle. más de 100 programadores colaboran..U. etc. (2) En menos de un año. (11) En enero de 2001 aparece Linux 2. Netscape. Slackware. (10) En enero de 1999 aparece Linux 2. (6) Implementación eficiente. ya competitivo con otros UNIX.) (5) En marzo de 1994 aparece Linux 1.

3. Página 4 de 42 . brinda los siguientes servicios: Controla los recursos básicos. del usuario Þ Fácil escribir programas que van a correr en hardware diversos. 3D). repartiéndolas entre los diferentes procesos. UNIX es un sistema que proporciona compatibilidad para arquitecturas distintas. El usuario interactúa con el sistema en tiempo real sin necesidad de esperar colas de ejecución como ocurría en los sistemas batch. El kernel del sistema es un programa que siempre está residente en memoria y. terminales. 3. dispositivos como el USB. repartiéndolas entre los diferentes procesos). Si se pueden tener a la vez varios trabajos en memoria principal. Permite a distintos usuarios compartir recursos y ejecutar sus programas.1. Sistema interactivo. Controla los dispositivos impresoras. UNIX es un sistema operativo de tiempo compartido (el sistema UNIX divide el tiempo de la computadora en un número de partes. y acceso directo al HW gráfico (2D. Estructura del Sistema. En un momento dado varios usuarios distintos pueden actuar en el mismo sistema. la CPU puede mantenerse ocupada casi todo el tiempo.). Mientras que un trabajo está esperando operaciones de E/S otro puede estar usando la CPU. Es un sistema multiprogramado (multitarea).Sistema Operativo Diferencias entre Linux y Unix soporte a multiprocesadores. El sistema UNIX divide el tiempo de la computadora en un número de partes. Sistema multiusuario. etc. accediendo desde terminales distintas. VISIÓN GENERAL DE UNIX. Oculta la arquitectura de la máquina. La computadora puede proporcionar servicio rápido e interactivo a varios usuarios e incluso procesar trabajos batch grandes en segundo plano cuando la CPU está ociosa. Es un sistema multiplataforma. Es un sistema de tiempo compartido. Varios programas pueden estar simultáneamente en el sistema en diferentes áreas de memoria. entre otros. periféricos (discos.

se pueden ver distintos niveles dentro de la arquitectura UNIX. Directamente en contacto con el hardware está el segundo nivel. rmdir).1. datos. y si la máquina que esta implementada sobre el hardware.1. etc. El hardware suministra al sistema operativo servicios básicos. En un sentido más amplio.). El kernel del sistema operativo es un programa que esta siempre residente en memoria y brinda servicios para controlar los recursos del sistema. ksh. documentos. El nivel más externo (Otros programas de aplicación) no pertenece al sistema operativo. Página 5 de 42 . cuyos recursos se desea gestionar. este está escrito en C en su mayor parte aunque coexiste con código ensamblador. Organización de un sistema UNIX cualquiera: Figura 1. tuberías y ejecución de procesos en background. En la Figura 1. mv. Intérprete de órdenes (sh. permite el redireccionamiento de la E/S. rm. el kernel del sistema. mkdir. UNIX abarca también un conjunto de programas estándar. Editor de texto (vi).Sistema Operativo Diferencias entre Linux y Unix Proporciona un sistema de archivos que administra el almacenamiento de información (programas. como pueden ser: Compilador de lenguaje C (cc). Es un sistema interactivo. csh) Programas de gestión de archivos y directorios (cp.

El sistema UNIX ha dotado al kernel con relativamente pocas prestaciones. la parte del sistema UNIX que se encarga de cambiar un programa por otro (tiempo compartido) se necesita muchas veces cada fracción de segundo. who. Aísla a los programas del hardware.1.. grep. Así pues. deberá efectuar una llamada a alguna de las llamadas al sistema (system calls).) y programas generados por el usuario. En el tercer nivel de la estructura que muestra la Figura 1. El usuario puede crear tantos niveles como necesite. Página 6 de 42 . Este mecanismo es lo que se conoce como llamadas al sistema (system calls).1 se encuentran los programas estándar de cualquier sistema UNIX (vi. Por ejemplo.. se mantienen permanentemente en memoria. En un cuarto nivel tenemos aplicaciones que se sirven de otros programas ya creados para llevar a cabo su función.Sistema Operativo Diferencias entre Linux y Unix Algunas funciones del sistema operativo se usan casi continuamente.. 3. Se debe destacar. sh. cuando necesite hacer uso de alguno de los recursos que le brinda el sistema. A la parte residente en memoria de un sistema operativo se llama kernel. cualquier programa que se esté ejecutando bajo el control de UNIX. que estos programas nunca van a actuar sobre el hardware de forma directa. Por ello.. Programas independientes del hardware son sencillo moverlos entre sistemas UNIX sobre distintos hardware.. Todas aquellas funciones que se necesitan inmediatamente. tampoco se comunican directamente con el kernel. . 3 1 1 S stema Operat vo nteractúa con e hardware Da servicio a los programas. Estas aplicaciones. de forma que la mayoría de las funciones del sistema operativo las deben de proporcionar los programas de utilidad. También hay que destacar que la jerarquía de programas no tiene por qué verse limitada a cuatro niveles. Puede haber también programas que se apoyen en diferentes niveles y que se comuniquen con el kernel por un lado y con otros programas ya existentes por otro.1 Siistema Operatiivo iinteractúa con ell hardware. debe de existir algún mecanismo que permita indicarle al kernel que necesitamos operar sobre algún recurso hardware.

UNIX proporciona mecanismos cualquiera de ellos por medio cuidadosa del sistema de archivos. Llamadas al sistema para crear. Página 7 de 42 .. Escritor redirecciona la salida estándar hacia pipe. 3 1 3 Pr m t vas de Construcc ón de B oques Filosofía UNIX: Proporcionar construcción de programas. Permite ejecución sincrónica y asincrónica.Sistema Operativo Diferencias entre Linux y Unix 3. Comentario: Hilos. terminar.3 Priimiitiivas de Construcciión de Blloques..1.. sincronizar y especificar el comportamiento de procesos. Duplicación del código. o o o 3. etc. o o Límites físicos: tamaño de la memoria. Procesos son acceso por defecto: archivo de entrada estándar. o o Primitiva 2: Pipes o tuberías.1. Degradación del sistema si el nivel de multiprocesamiento crece... o o al usuario primitivas de Le permiten construir programas sencillos. (multitarea o Varias instancias de un mismo programa de código reentrante. o Mecanismo que permite el paso de datos entre un proceso escritor y un proceso lector sin necesidad de crear archivos temporales.. archivo de salida estándar y archivo de error estándar. Lector redirecciona su entrada estándar hacia el pipe. Utilización posterior como “bloques de construcción” para construir programas más complejos.2 Ell Entorno de Procesamiiento. 3 1 2 E Entorno de Procesam ento UNIX Ejecuta simultáneamente varios procesos multiprocesamiento) sin un límite lógico. para redireccionar de la organización Primitiva 1: Redireccionar la E/S.

• • • Recupera el espacio de almacenamiento no utilizado.Ver Figura 1. Control de ejecución de procesos. 3 1 4 Serv c os de S stema Operat vo El kernel está entre el hardware y los programas de usuario.. Sistema de intercambio o sistema paginado. Página 8 de 42 .4 Serviiciios dell Siistema Operatiivo..Sistema Operativo Diferencias entre Linux y Unix 3. o o o Administración de la memoria principal ® Procesos en ejecución. Asigna la memoria secundaria para archivos de usuario. Protege el espacio de direccionamiento privado de procesos.. Administra la memoria secundaria eficientemente: SF.1. estos servicios manera El intercambio consiste en llevar los procesos cuyo tiempo de ocupación de memoria expira.1. Estructura el sistema de archivos de manera comprensible. acceso de controlado una a Permite a procesos el dispositivos periféricos. a un área de memoria secundaria y traer de esa área de memoria secundaria los procesos a los que se les asigna tiempo de ocupación en memoria principal. equitativa de procesos ® Tiempo Servicios que ofrece el kernel. Gestiona la memoria libre en tiempos de escasez. Protege los archivos de usuario ante accesos ilegales. El kernel proporciona transparente. o Sirve a programas de usuario por medio de llamadas al sistema (system calls). Planificación compartido. Permite a procesos compartir parte del espacio de direcciones. • • Dispositivo swap (intercambio1).

1. Código ejecutado por el propio proceso en modo kernel o protegido. Interrupciiones y Excepciiones. En este modo están permitidas todas las instrucciones para el sistema operativo.. Diferencias entre los dos niveles son: Acceso a instrucciones y datos. o a dispositivos interrumpir la CPU Llegada de una interrupción.Sistema Operativo Diferencias entre Linux y Unix 3. Ejecución de instrucciones máquina privilegiadas.. Página 9 de 42 . o Proceso realiza llamada al sistema Þ modo de ejecución pasa de modo usuario a modo kernel. Permite ejecución sincrónica y asincrónica.... o o Kernel realiza tareas de gestión para procesos de usuario.. UNIX permite asincrónicamente.6. Modo usuario: en este modo no están permitidas instrucciones de E/S y de otros tipos para programas de usuario.5 Aspectos dell Hardware. El kernel se ejecuta a petición de los procesos de usuario. 3 1 5 Aspectos de Hardware Ejecución de un proceso en UNIX: dos niveles: usuario y kernel..1. Sistema operativo intenta servir una petición del usuario. o o Kernel no son procesos ejecutándose en paralelo para servir a procesos de usuario. Es por esto. que las llamadas al sistema pueden ser invocadas directamente desde ensamblador y no desde C. Modo kernel: Las llamadas al sistema (system calls) se ejecutan en modo kernel y para entrar en ese modo hay que ejecutar una sentencia de código máquina conocida como “trap”. 3 1 6 Interrupc ones y Excepc ones Las interrupciones son señales eléctricas manejadas directamente por un controlador de interrupciones (hardware) o codificando a nivel de software el índice para acceder a la tabla de descriptores de interrupciones (software). Organización alrededor de servidores. 3.

. Continúa como si no hubiera pasado nada. 3 1 7 N ve es de Ejecuc ón de Procesador El kernel debe prevenir la ocurrencia de interrupciones cuando se encuentra realizando operaciones críticas. Además de las interrupciones hardware y software.1.. Las excepciones pueden servir: para estimular al sistema operativo para que suministre un servicio.. permitiendo interrupciones de más alto nivel.7 Niivelles de Ejecuciión dell Procesador. 3. Página 10 de 42 . o o Peligro de corrupción de los datos.Sistema Operativo Diferencias entre Linux y Unix o o El kernel salva contexto actual (imagen de lo que estaba haciendo el proceso). Determina la causa de la interrupción. Restaura el contexto salvado. para suministrar más memoria a un proceso. Fija el nivel de ejecución del procesador mediante el enmascaramiento de las interrupciones de ese y niveles inferiores. Fin servicio de interrupción. sirve interrupciones de mayor prioridad. diversas condiciones de error de la CPU pueden causar la iniciación de una excepción. Sirve la interrupción por medio de bloqueos interrupciones menos prioritarias. o o Distinción excepciones – interrupciones.

las máquinas de tipo MIPS. el compilador genera direcciones para variables. PowerPC64. Puede ejecutar programas mismo tiempo.. Forma de hardware. Micronúcleo. Descripción de Linux y de sus Funcionalidades. multiprocesador. funciones. Programa va a ejecutarse. etc.. 4. Kernel debe coordinarse con el hardware realizar una traducción de direcciones virtuales a físicas. el kernel le asigna memoria principal. AMD x86-64.1. Compatible POSIX. Aunque se diseñó inicialmente para la arquitectura I386. ciertas plataformas basadas en los Motorola 68000 como Amiga y Atari. Intel IA-64. Cris. etc. ARM. que es la licencia pública general de GNU. Linux es una implementación de UNIX que respeta la especificación POSIX pero que posee también ciertas extensiones propias de las versiones System V y BSD de UNIX.. al y Página 11 de 42 . Sun Sparc.8 Manejo de Memoriia. para una máquina virtual. realizar traducción depende del Partes del sistema UNIX que tratan con ella serán dependientes de la máquina. Esto implica la adaptación del código de aplicaciones desarrolladas inicialmente para otros sistemas UNIX. Multitarea. Se trata de documentos producidos por IEEE y estandarizados por ANSI y el ISO. DEC VAX. ya sea con uno o varios procesadores. Las funcionales de este sistema operativo son múltiples corresponden a la idea que puede hacerse de un sistema UNIX moderno: Sistema operativo de estilo UNIX. El término POSIX significa Portable Operating System Interface. Linux se diseñó inicialmente como un clónico de UNIX distribuido libremente que funciona en máquinas PC con procesador 386. o o Problema: Direcciones virtuales y físicas no coinciden.Sistema Operativo Diferencias entre Linux y Unix 3. 486 o superior. El kernel reside permanentemente en memoria. El objetivo de POSIX es permitir tener un código fuente transportable. El código de Linux es un código original. 3 1 8 Manejo de Memor a Compilación de un programa. en la actualidad funciona sobre otras plataformas como los procesadores Compac Alpha AXM. que no es propietario en absoluto y cuyos programas en código fuente se distribuyen libremente bajo cobertura de licencia GPL.

Sistema Operativo Diferencias entre Linux y Unix Multiplataforma. Capacidad de multiprocesamiento simétrico. Soporte de múltiples sistemas de archivos. de funcionamiento en “cluster”. Gestión de diferentes señales. el sistema operativo se compone de varios elementos importantes. etc. Linux. Una página sólo se carga si es necesaria en memoria. Soporte de comunicaciones interprocesos (pipes. iso9660. Posibilidad de depuración en tiempo de ejecución. Escrito en “C”. Protección de memoria entre procesos. IPC. Librerías compartidas y dinámicas. Sistemas de archivos que permiten gestionar tanto particiones Linux con el sistema de archivos Ext2. por ejemplo. sockets). 4. etc. Buffer caché.). Gestión de terminales según la norma POSIX. como particiones en otros formatos (MS-DOS.) Soporte de la familia de protocolos TCP/IP y de otros protocolos de red.1 Estructura General del Sistema Operativo Linux. Tal y se ha visto. Las librerías dinámicas sólo se cargan cuando son necesarias y su código se comparte si varias aplicaciones las utilizan. gráficas. de red. Carga de módulos en tiempo de ejecución. Puede funcionar en múltiples arquitecturas hardware. La ventaje de esta estructuración es que permite su modificación y mejora Página 12 de 42 . proporciona también los pseudos terminales y los controles de procesos. Linux permite trabajar a varios usuarios simultáneamente en la misma máquina. SCSI. para las Gestión de memoria (memoria virtual). UNIX y Linux se han desarrollado de manera modular de modo que se pueden distinguir fácilmente las diferentes partes que lo componen. Zona de memoria intermedia entradas/salidas de los diferentes procesos. Como en todo sistema UNIX. Multiusuario. Soporte de un gran número de dispositivos ampliamente extendidos (tarjetas de sonido.

Memoria intermedia sofisticada para Controladores de dispositivos. etc. Implementación de operaciones que deben ejecutarse en modo kernel. Gestión a bajo nivel de discos. Entradas/salidas de los dispositivos. Gestión de la red. La incorporación de ciertos elementos. Código (generalmente en ensamblador) de acceso a bajo nivel al hardware. Protocolos de comunicaciones en red. impresoras. tarjetas. controladores de dispositivos u otros.Sistema Operativo Diferencias entre Linux y Unix sin excesiva dificultad. Interfaz con la máquina. Sistema de archivo. De forma general los distintos elementos que nos encontramos en el kernel de Linux son los siguientes: Llamadas al sistema. como llamadas al sistema. Buffer caché. es sencilla y no obliga a rediseñar la estructura del sistema. entradas/salidas. Página 13 de 42 .

). etc. etc. gestión de memoria (gestión de la memoria física y la memoria virtual). gestor de órdenes. módulos cargables (carga de ciertas partes del kernel cuando se requieren).Sistema Operativo Diferencias entre Linux y Unix Núcleo del kernel. destrucción. Página 14 de 42 . Gestión de procesos (creación. representa la estructura del sistema operativo Linux. señale s. duplicación. En la figura anterior. que es muy parecida a la del sistema operativo UNIX.

Los eventos que desencadenan una transición pueden ser los siguientes: o [Evento = fin quantum] = transición al estado de “ejecutándose en modo kernel” (2). Gestión de la interrupción. Planificación a cargo del scheduler.1 ESTADOS Y TRANSICIONES DE UN PROCESO.1.1) da lugar a un Diagrama de Transición de Estados. Estos cambios de estados vienen impuestos por la competencia que existe entre los procesos para compartir un recurso tan escaso como es la CPU (scheduler). se observa el diagrama completo y los estados que en él se reflejan son: Entrada del proceso en el modelo. Conjunto Estados 5 1 1 C c o V da de un Proceso en UNIX Conjunto Estados El tiempo de vida de un proceso se puede dividir en un conjunto de estados.. que un proceso no permanece siempre en un mismo estado. cada uno con de las características determinadas. Llamada al sistema fork del padre. ni durmiendo (estado 4) Proceso ejecutándose en modo usuario (1). El proceso acaba de ser creado y está en un estado de transición. Ciicllo Viida de un Proceso en UNIX. 5. En la Figura 2. sino que está continuamente cambiando de acuerdo con unas reglas bien definidas. pero ni está preparado para ejecutarse (estado 3). cuyos nodos representan los estados que pueden alcanzar los procesos y cuyos arcos representan los eventos que hacen que un proceso cambie de un estado a otro.Sistema Operativo Diferencias entre Linux y Unix 5. Página 15 de 42 . Esta función la lle va a cargo el módulo de control del hardware. el proceso existe.. Un diagrama de transición de estados es un grafo dirigido. o o o Este estado es el estado inicial para todos los procesos excepto el proceso 0 (swapper).. Es decir. que es la parte del kernel encargada del manejo de interrupciones y de la comunicación con la máquina. La transición entre los diferentes estados (Figura 2. creación de un proceso: estado Creado (8). GESTIÓN DE PROCESOS 5.1.1.. Elegir otro proceso si es el siguiente para ser ejecutado según el scheduler.

Si esto ocurre. planificación. Cuando el proceso termine de ejecutarse en modo kernel = pasa a ejecutarse en modo usuario (1) [Evento = volver]. Operación de Entrada/Salida. Fin de la operación de Entrada/Salida. Esta transición se debe a eventos que sólo el kernel puede controlar y no pueden pasar a otro estado de tránsito [Evento = interrupción / volver de interrupción] Si viene de recién creado (8) ® completa su parte del fork ante un evento de “hay suficiente memoria”. El hardware interrumpe la CPU. que son llamadas durante la ejecución de cualquier proceso. codificadas en el kernel.Sistema Operativo Diferencias entre Linux y Unix Proceso actual pasa a ser requisado (7) [Evento = requisar (o apropiar). en el que el kernel se apodera del proceso y hace un cambio de contexto. o Gestión interrupciones y llamadas al sistema. o Listo para ejecutarse en memoria (3). Ejecución en modo kernel (2). en memoria (3) o o Listo para ejecutarse en memoria (3) o en el área de swap en memoria secundaria (5). sino por funciones especiales. Las interrupciones no son atendidas por procesos. Estado listo para ejecutarse [Evento = despertar]. El proceso pasa al estado “durmiendo en memoria” (4) [Evento = dormir]. El proceso no se está ejecutando. etc. el kernel debe reanudar la ejecución del proceso después de atender a la interrupción. pasando otro proceso a ejecutarse en modo usuario] = posiblemente a listo para ejecutar en modo usuario. Como sabemos los dispositivos pueden interrumpir la CPU mientras está ejecutando un proceso. pero está listo para ejecutarse tan pronto como el scheduler lo ordene [Evento = orden de ejecución por parte del Página 16 de 42 . o [Evento = llamada al sistema] = transición al estado de “ejecutándose en modo kernel” (2).

o . El proceso está listo para ejecutarse pero el swapper (proceso 0) debe cargar el proceso en memoria secundaria (swap out) antes de que el kernel pueda ordenar que pase a ejecutarse. pasando otro proceso a ejecutarse en modo usuario [Evento = requisar (cambio de contexto)]. El proceso está durmiendo y el swapper ha descargado el proceso hacia memoria secundaria (6) (en el área de swap) para poder crear espacio en memoria principal para poder cargar otros procesos [Evento = sacar de memoria principal para enviar a disco (swap out)]. o o Estado Zombie (9). pero el kernel se apropia del proceso y hace un cambio de contexto. No hay memoria principal suficiente para todos los procesos [Evento = memoria principal insuficiente]. según un evento despertar [Evento = despertar] puede pasar al estado “listo para ejecutarse en memoria secundaria (área de swap)”. en memoria secundaria (5). Durmiendo cargando en memoria (4) o en el área de swap en memoria secundaria (6). completa su parte del fork [Evento = hay memoria suficiente]. Puede haber varios simultáneamente en este estado. El proceso está volviendo del modo kernel al modo usuario.Sistema Operativo Diferencias entre Linux y Unix scheduler]. Un proceso entra en este estado cuando no puede proseguir su ejecución porque está esperando a que se complete una operación de entrada/salida [Evento = dormir]. procesos Si viene de recién “Creado” (8). Una vez. que el proceso ha estado durmiendo en memoria secundaria. o El proceso está durmiendo cargado en memoria principal (4). o Listo para ejecutarse en el área de swap. Fin de ejecución de un proceso pero sigue siendo referenciado en el sistema Þ Llamada al sistema exit Página 17 de 42 o Requisado o expulsado o apropiado (7). Desde este estado puede pasar el proceso al estado de “ejecutándose en modo usuario” gracias a un evento de volver al modo usuario [Evento = volver al modo usuario].

o Recurso: tabla de procesos.Sistema Operativo Diferencias entre Linux y Unix [Evento = exit] y pasa a estado Zombie. El proceso ya no existe. El estado Zombie es el estado final de un proceso Estado de proceso ejecutándose en modo kernel [Evento = exit] Þ Estado Zombie. Página 18 de 42 . pero deja para su proceso padre un registro que contiene el código de salida y algunos datos estadísticos tales como los tiempos de ejecución.

se supone que es fiable y puede ejecutarse en modo kernel. Dialogar directamente con (drivers) de dispositivos. El kernel podrá: o o o Utilizar todas las instrucciones del procesador. para ello debe efectuar “llamadas al sistema”. Modo de ejecución normal de un proceso. Manipular toda la memoria. En este modo el proceso no posee ningún privilegio. Una llamada al sistema provoca un cambio: (1) el proceso ejecuta una instrucción del procesador que le hace pasar a modo kernel (interfaz de llamadas al sistema)... pero esto no obstaculiza su funcionamiento. y envía el resultado al proceso. ejecutando una llamada al kernel. De este modo. Recordemos también que un proceso que se ejecute en modo usuario no puede acceder directamente a los recursos de la máquina. Página 19 de 42 . Una llamada al sistema es una petición transmitida por un proceso al kernel. Sólo efectúa operaciones en su entorno. Sólo tiene acceso a las zonas que se le han asignado al proceso. (2) el kernel ejecuta una función de tratamiento vinculada a la llamada al sistema que ha efectuado. En este modo no se impone ninguna restricción al kernel del sistema. El kernel trata la petición en modo kernel. que prosigue su ejecución en modo usuario. todos los controladores Modo usuario. con todos los privilegios. No puede interactuar con la máquina físicas (hardware). Puede ser interrumpido en cualquier momento. el propio proceso trata su llamada al sistema. Modo kernel (modo privilegiado). Esta función que ejecuta el kernel.Sistema Operativo Diferencias entre Linux y Unix Recordemos que existen dos niveles de ejecución para un proceso: modo kernel (2) y modo usuario (1). . y (3) el proceso vuelve a modo usuario para proseguir con su ejecución. o o o o o Ciertas instrucciones están prohibidas. sin interferir con los demás procesos.

Información de planificación. La información de registros y pila que forma el contexto del proceso (espacio de direccionamiento del proceso).. Cada proceso incluye un vínculo con su proceso padre. El tiempo en el que un proceso puede ejecutarse se controla mediante un contador. Incluye el instante de creación del proceso y la cantidad de tiempo del procesador consumido hasta el instante. Estados F gura 2 2 En Linux. Linux mantiene una task. Un identificador de grupo se utiliza para asignar privilegios de acceso a recursos de un grupo de usuarios.. Linux soporta los mecanismo de IPC de UNIX Vínculos.. interrumpible. Un proceso puede tener también asociados uno o más temporizadores de intervalo. cuando el tiempo termina se envía una señal al proceso. Un temporizador puede ser de un solo uso o periódico. Un proceso define un temporizador de intervalo mediante una llamada al sistema.Sistema Operativo Diferencias entre Linux y Unix 5. Define la memoria virtual asignada al proceso. Un proceso puede ser normal o en tiempo real y tiene una prioridad.)). Tiempos y temporizadores. no interrumpible.1. Conjunto de 5 1 2 C c o de V da de un Proceso en L nux Conjunto de Estados ((Fiigura 2. Comunicación entre procesos. Representa a la información necesaria para la planificación de procesos en Linux. Identificadores. La estructura task_struct contiene información de varios tipos: Estado. y tiene también identificadores de usuario y de grupo. Representa el estado de ejecución de un proceso (en ejecución.2 Ciicllo de Viida de un Proceso en Liinux. Cada proceso tiene un único identificador de proceso.. Los procesos en tiempo real se planifican antes que los procesos normales y se utilizan prioridades relativas dentro de cada categoría.. parado y zombi). que es un vector lineal de punteros a cada estructura task_struct definida en un instante dado. un proceso o tarea. Sistema de archivos. Página 20 de 42 .. Memoria virtual.2. Incluye punteros a cualquier archivo abierto por el proceso. vínculos con sus hermanos (procesos con el mismo padre) y vínculos con todos sus hijos. está representado por una estructura de datos task_struct. Contexto específico del procesador.

no acepta señales. por tanto. El proceso ha sido detenido por una intervención externa y sólo puede reanudarse por una acción positiva de otro proceso. Interumpible (TASK_INTERRUPTIBLE). El proceso es ejecutado por el procesador. El proceso podría ser ejecutado. pero otro proceso se está ejecutando en ese momento. liberación de un recurso o una señal de otro proceso. El proceso ha terminado pero. un proceso puede estar en estado Parado durante la ejecución de un programa de depuración. Es otro estado de bloqueo. Zombi (TASK_ZOMBIE). Es un estado de bloqueo. No interumpible (TASK_UNINTERRUPTIBLE).Sistema Operativo Diferencias entre Linux y Unix Los estados de ejecución de un proceso Linux son los siguientes: n Ejecución (TASK_RUNNING). como la terminación de una operación de entrada/salida. un proceso espera directamente en una condición de hardware y. su estructura task debe permanecer aún en la tabla de procesos. Parado (TASK_STOPPED). en el cual el proceso espera un suceso. La diferencia entre éste y el estado Interumpible es que en un estado No Interumpible. Página 21 de 42 . Listo (TASK_RUNNING). por alguna razón. Por ejemplo.

inicialmente. así como la información que permite gestionarlo. En ella aparece tipo de información sobre cada uno de los procesos. con lo que el número máximo de procesos estaba limitado. En Linux. Todo proceso tiene asociada una entrada en la Tabla de Procesos y un Área de Usuario (u-Area). La Tabla de Procesos tiene campos que van a ser accesibles desde el kernel.Sistema Operativo Diferencias entre Linux y Unix 5. divide (conceptualmente y en la implementación) la información del proceso en dos apartados: la necesaria para localizarlo y planificarlo (Tabla de Procesos) y el resto de informaciones referentes la proceso (u-Area). caracterización detallada del proceso. 5. Estructura dell descriiptor de procesos en Liinux ((PCB = Estructura de descr ptor de procesos en L nux PCB = Process Controll Bllock)).2. la Tabla de Procesos es realmente una lista doblemente enlazada mediante los punteros next_task y prev_task. pero los campos del Área de Usuario sólo necesitan ser visibles por el proceso. por lo que es necesario conocer los campos más importantes de task_struct. el kernel. en general. la Tabla de Procesos era un vector de tamaño fijo de task_strcut <linux/sched. Actualmente.2 ESTRUCTURAS DE DATOS DEL SISTEMA PARA LA GESTIÓN DE PROCESOS.2 Tabla de Procesos en Linux.h. Muchas partes del sistema operativo hacen uso de esta estructura de datos.h>.2. Para gestionar los procesos. Página 22 de 42 . Process Contro B ock En Linux el PCB (Process Control Block) es una estructura denominada task_strcut en el archivo include/linux/sched.1 Tabla de Procesos. Las Áreas de Usuario se reservan cuando se crea un proceso y no es necesario que una entrada de la Tabla de Procesos que no aloja a ningún proceso tenga reservada un área de usuario. Cada proceso se referencia por un descriptor (descriptor del proceso). 5. Este descriptor contiene los atributos del proceso. Tabla de Procesos u-Area localizar el proceso y su u-Area.. Una posición (entrada) por proceso. Estas dos estructuras van a describir el estado del proceso y le van a permitir al kernel su control.

Página 23 de 42 . Unidad de gestión de memoria de la máquina. – La memoria es infinita. cuotas de proceso y archivos Campo de error en llamadas al sistema Valor de retorno en llamadas al sistema Parámetros para E/S. En UNIX. Tabla de archivos 5. Curr_dir y Root_dir. el kernel genera direcciones para un proceso en un espacio de direcciones virtual dentro de un rango dado.3 ORGANIZACIÓN DE LA MEMORIA DEL SISTEMA. La memoria física de una máquina es direccionable desde el byte 0 hasta el byte que se corresponde con la memoria total de la máquina. asociada al proceso (sólo visible al proceso en ejecución) Dinámica (solo para procesos en el sistema) Puntero a la tabla de procesos Identificadores (permisos). Los subsistemas del kernel y del hardware (control del hardware) cooperan para realizar la traducción de direcciones virtuales a físicas Þ subsistema de gestión de memoria. señales) Evento en el que duerme Parámetros de planificación Señales recibidas no atendidas Tiempos y recursos consumidos u-Area Local. – No hay otros procesos en dicho rango de direcciones virtual Þ no hay conflictos para el uso de la memoria entre procesos.Sistema Operativo Diferencias entre Linux y Unix Tabla de Procesos Global del Kernel (todos los procesos) Estática (n entradas) Estado Localización de la u-Area Tamaño del proceso Identificadores (grupos. – Direcciones virtuales Þ Direcciones físicas. máscaras de permisos (create) Detalle de tiempos Acción ante señales Terminal asociada.

que permiten a un proceso manipular variables cuyo número o tamaño no es conocido en el momento de su compilación Þ asignación y liberación de memoria de forma dinámica (funciones malloc. sus segmentos (código..Sistema Operativo Diferencias entre Linux y Unix 5. Cuando un dato situado al final del segmento de datos deja de utilizarse. free). datos y pila) poseen un tamaño fijo. Las asignaciones y liberaciones se efectúan modificando el tamaño del segmento de datos del proceso. su liberación consiste simplemente en reducir el tamaño del segmento..3. calloc.. existen funciones de asignación y liberación de memoria.1 Asiignaciión de memoriia. Página 24 de 42 . Sin embargo. 5 3 1 As gnac ón de memor a Cuando un proceso empieza su ejecución. realloc. Cuando debe asignarse un dato. el segmento de datos aumenta en el número de bytes necesario y el dato puede almacenarse en el espacio de memoria así asignado.

Las direcciones manipuladas por el kernel y los procesos son direcciones lógicas y el procesador junto con el sistema operativo efectúa una conversión para transformar una dirección lógica en dirección física en memoria principal. cuyo formato de dirección es del tipo (página....3. 5 3 3 Pág nas y Tab as de Pág nas UNIX utiliza los mecanismos de memoria virtual proporcionados por el procesador sobre el que se ejecuta (paginación y segmentación). El kernel asigna páginas a las regiones (sin continuidad ni orden) lo que le proporciona gran flexibilidad. con un nivel controlado de fragmentación (en la última Página 25 de 42 . Regiiones. + Compartir regiones de memoria. + Proteger regiones de memoria. Cada región de memoria se caracteriza por varios atributos: -Sus direcciones de inicio y fin...3. Las regiones de memoria contenidas en el espacio de direccionamiento de un proceso pueden determinarse mostrando el contenido del archivo maps. – Como entidad..3.. Págiinas y Tabllas de Págiinas. + Modificaciones para las protecciones de las regiones de memoria. 5.. desplazamiento). – Concepto de Región: Independiente de la política de gestión de memoria implementada en el sistema operativo. se puede tratar como un objeto cuyas operaciones principales son: + Creación y eliminación de regiones de memoria.. -El objeto asociado (por ejemplo.2. vamos a presentar como modelo de trabajo un esquema de gestión de memoria por Páginas (bloques de memoria de igual tamaño [512B. -Los derechos de acceso que tiene asociados. + Reasignar regiones de memoria. Ahora.Sistema Operativo Diferencias entre Linux y Unix 5. Como se ha expuesto anteriormente el espacio de direccionamiento de un proceso se compone de varias regiones de memoria. situado en el directorio de cada proceso en el sistema de archivos /proc..4KB]. un archivo ejecutable que contiene el código ejecutable para el proceso). Región: Área contigua del espacio de direcciones virtuales de un proceso que puede ser tratada como un objeto a ser protegido o compartido. 5 3 2 R e g on e s UNIX divide el espacio de direcciones virtual del proceso en zonas lógicas.

El sistema operativo mantiene en memoria principal las partes del programa que actualmente se están utilizando y el resto en disco. está esperando una operación de E/S y no puede ejecutarse. Página 26 de 42 . La memoria virtual también puede funcionar en un sistema de tiempo compartido. así que puede otorgarse la CPU a otro proceso. La idea en que se basa la memoria virtual es que el tamaño combinado del código.Sistema Operativo Diferencias entre Linux y Unix página de cada región) y un coste razonable de gestión (memoria para las tablas). Mientras que un programa está esperando que se traiga a la memoria principal una de sus partes. lo mismo que cualquier otro sistema de tiempo compartido. datos y pila puede exceder la cantidad de memoria física disponible. manteniendo segmentos de muchos programas en memoria a la vez.

Esta suspensión voluntaria se debe Página 27 de 42 .4 SINCRONIZACIÓN DE PROCESOS EN LINUX. el kernel considera que la tabla intermedia sólo tiene una entrada). En un instante dado. utilizan una tabla de páginas que sólo posee dos niveles). Aunque es posible que se apliquen interrupciones hardware y software a este proceso. sin embargo. la gestión de la memoria implementada por Linux considera que dispone de una tabla de páginas a tres niveles: + El directorio global de tablas páginas (page global directory) cuyas entradas contienen las direcciones de páginas que contienen tablas intermedias.. un cambio del proceso actual suspendiendo su ejecución (dormir). 5. Linux 5 3 4 Tab a de pág nas gest onadas por L nux gestiona la memoria central y las tablas de páginas utilizadas para convertir las direcciones virtuales en direcciones físicas.4 Tablla de págiinas gestiionadas por Liinux ⇒ 3 niveles. Este modelo no siempre se corresponde al procesador sobre el cual Linux se ejecuta (los procesadores x86. sólo un proceso puede ejecutarse en modo kernel. + Las tablas de páginas (page table) cuyas entradas contienen las direcciones de páginas de memoria que contienen el código o los datos utilizados por el kernel o los procesos de usuario.3. Linux no provoca la planificación (scheduler) si el proceso actual está activo en modo kernel. Un proceso que se ejecuta en modo kernel puede provocar.. Implementa una gestión de la memoria que es ampliamente independiente del procesador sobre el que se ejecuta. El kernel efectúa una correspondencia entre el modelo implementado por el procesador y el modelo de Linux (en los procesadores x86. En realidad. + El directorio intermedio de tablas páginas (page middle directory) cuyas entradas contienen las direcciones de las páginas que contienen las tablas de páginas.Sistema Operativo Diferencias entre Linux y Unix 5.

Aunque esto es un esquema de gestión de memoria efectiva para procesos de usuario y de E/S de disco. además. Las implementaciones actuales. como en el aprovechamiento del hardware y el rendimiento del sistema.1 GESTIÓN DE MEMORIA EN UNIX Puesto que UNIX se ideó para ser independiente de la máquina. lo cual es imprescindible para la seguridad y estabilidad del sistema. Las primeras versiones de UNIX simplemente empleaban particiones variables sin ningún esquema de memoria virtual. las colas de tareas. incluida SVR4. idéntico en todos los procesos. tal como el fin de una entrada/salida o la terminación de un proceso hijo. Gestión de la memoria La memoria es uno de los recursos más valiosos que gestiona el sistema operativo. y para este último propósito se utiliza un gestor de memoria del kernel. su esquema de gestión de memoria varia de un sistema a otro.Sistema Operativo Diferencias entre Linux y Unix generalmente a la espera de un evento. El direccionamiento es una parte importante de la gestión de memoria. único para ese proceso. 6. los temporizadores (timers). Un proceso no puede acceder. al espacio de memoria asignado a otro proceso. 6. Linux proporciona varios mecanismos que permiten a los procesos sincronizarse en modo kernel (implementadas en el código del kernel = servicios internos): las “bottom-halves”. y el espacio de memoria del kernel. un proceso tiene dos espacios de memoria: el espacio de memoria del usuario. las colas de espera y los semáforos (control de acceso a un recurso). El sistema de paginación ofrece una memoria virtual que asigna marcos de página en la memoria principal a los procesos y también asigna marcos de página a los buffers (memorias intermedias) de los bloques de disco. Uno de los elementos principales que caracterizan un proceso es la memoria que utiliza. un esquema de memoria virtual paginado se adapta peor a la gestión de asignación de memoria para el kernel. Ésta está lógicamente separada de la de cualquier otro proceso del sistema (excepto los threads de un mismo proceso que comparten normalmente la mayor parte de la memoria que tienen asignada). utilizan memoria virtual paginada. En Linux. puesto que influye mucho en la visión del mismo por parte de un proceso. En SVR4 existen actualmente dos esquemas de gestión de memoria separados. Página 28 de 42 .

1. La carga en memoria principal de una parte de un proceso relevante se hace de forma dinámica... Además. Descriptores de bloques de disco Asociado a cada página de un proceso hay una entrada en la tabla que describe la copia en el disco de la página virtual. El kernel asigna espacio para pfdata una vez durante la vida del sistema. con una entrada para cada página en dicho dispositivo. siendo el tiempo virtual el tiempo que transcurre mientras el proceso está realmente en ejecución. Sistema de paginación de UNIX System V.2 Estructuras de Datos para Pagiinaciión por Demanda 6 1 2 Estructuras de Datos para Pag nac ón por Demanda ((UNIX)) UNIX Estructuras de datos para la gestión de memoria a bajo nivel y demanda de páginas (sistema de paginación): Tabla de páginas Normalmente. denominado W(t.. leyendo páginas desde memoria secundaria si es necesario. aunque para las otras estructuras le asigna y desasigna espacio dinámicamente.. El kernel evita copiar la página.1. incrementa el contador de referencia regiones compartidas y para las regiones privadas asigna una nueva entrada en la tabla de regiones y tabla de páginas. Tabla de uso de swap Existe una tabla de uso de swap por cada dispositivo de intercambio. es el conjunto de páginas a las que el proceso ha hecho referencia en las últimas D unidades de tiempo virtual. Un proceso no tiene que caber entero en memoria física para ejecutarse.. entonces el kernel actualiza el Working Set. Tabla de marcos de página (pfdata) Describe cada marca de la memoria real y está indexada por el número de marco.Sistema Operativo Diferencias entre Linux y Unix 6. Cada región contiene tablas de páginas para acceder a memoria física. Si un proceso direcciona una página que no pertenece al Working Set Þ provoca una falta de página. Transparente a programas de usuario excepto por el tamaño virtual permisible a proceso (controlado por el kernel).1. 6. Pagiinaciión por Demanda 6 1 1 Pag nac ón por Demanda Hardware: arquitectura basada en páginas y CPU instrucciones rearrancables Þ Soporta que el kernel implemente un algoritmo de demanda de páginas. el kernel examina cada entrada en la tabla de regiones del proceso padre: Si la página es válida: (1) Incrementa el contador de Página 29 de 42 . D). hay una tabla por proceso. con una entrada para cada página de la memoria virtual del proceso. Working Set (conjunto de trabajo) Þ El conjunto de trabajo de un proceso en un instante virtual t y con un parámetro D.

entonces contador de referencias de la tabla de uso del swap para página se incrementa en (Figura 3. (3) Si un proceso escribe en ella (página) Þ kernel crea versión privada el kernel pone bit Copia en escritura = 1 para cada entrada de la tabla de páginas en regiones privadas del proceso padre y del proceso hijo durante el fork.8. Página 30 de 42 .Sistema Operativo Diferencias entre Linux y Unix referencia en la entrada de la tabla de marcos de páginas (pfdata). (2) Si la página existe en un dispositivo de swap. fork en demanda de páginas). referencias a página a través de ambas regiones.

se asocia un bit de uso y un bit de modificación a cada página de la memoria principal. Para utilizar esta estructura de la tabla de páginas a tres niveles. El kernel mantiene una lista de grupos de marcos de página contiguos de tamaño fijo.Sistema Operativo Diferencias entre Linux y Unix 6. Para la asignación de páginas y aumentar la eficiencia de cargar y descargar páginas a y desde la memoria principal. El software de Linux se ajusta al esquema de dos niveles definiendo el tamaño del directorio intermedio como uno. formada por los siguientes tipos de tablas (cada tabla individual es del tamaño de una página): (1) Directorio de páginas Þ un proceso activo tiene un solo directorio de páginas que es del tamaño de una página. un grupo puede estar formado por 1. Cada entrada en el directorio de páginas apunta a una página del directorio intermedio de páginas. los grupos se dividen y se intercalan utilizando el algoritmo de los colegas (buddy algorithm). 16 o 32 marcos de páginas. pero tiene sus características propias y únicas. el cual proporciona soporte de hardware para los tres niveles de paginación. En el esquema Página 31 de 42 . 2. y cada entrada de la tabla de página hace referencia a una tabla virtual del proceso. La estructura de tabla de página en Linux es independiente de la plataforma y fue diseñada para ajustarse al procesador Alpha de 64 bits. (2) Directorio intermedio de páginas Þ este directorio puede ocupar varias páginas y cada entrada de este directorio apunta a una página de la tabla de páginas. el uso de sólo dos niveles de páginas en el procesador Alpha generaría tablas de páginas y directorios muy grandes. aunque hay que destacar que el esquema de gestión de memoria de Linux es bastante complejo. una dirección virtual en Linux se ve como un conjunto de cuatro campos. El tercer campo sirve como índice en la tabla de páginas. el direccionamiento de memoria virtual de Linux. Los 32 bits de la arquitectura i386 tienen un mecanismo de paginación a dos niveles en su hardware. En el algoritmo de reloj estándar. Para un proceso activo. Como las páginas se asignan y liberan en la memoria principal. Pare este propósito. 3. Linux define un mecanismo para tratar bloques de páginas contiguos correspondientes a bloques de marcos de páginas contiguos. El campo más a la izquierda (más significativo) se utiliza como índice en el directorio de páginas. (3) Tabla de páginas Þ esta tabla de páginas también puede ocupar varias páginas. el directorio de páginas tiene que estar en la memoria principal. se utiliza el Buddy System.2 GESTIÓN DE MEMORIA EN LINUX Linux comparte muchas de las características de los esquemas de gestión de memoria de otras implementaciones UNIX. El siguiente campo sirve como índice en el directorio intermedio de páginas. hace uso de una estructura de tabla de páginas con tres niveles. indica el desplazamiento dentro de la página seleccionada de la memoria. En lo que respecta a memoria virtual. Con direcciones de 64 bits. 8. Y el cuarto y último campo. El algoritmo de reemplazo de páginas de Linux se basa en el algoritmo del reloj (clock).

(2) Bits reservados en selectores de segmento. De esta forma.2. En un procesador i386.Sistema Operativo Diferencias entre Linux y Unix de Linux. Los fundamentos de asignación de memoria al kernel de Linux es el mecanismo de asignación de páginas utilizado para la gestión de memoria virtual de usuario. 128. la segmentación de los i386 no se emplea con toda su potencia en Linux. Cuando mayor valor de edad. 252. Sin embargo. Desde el punto de vista de la arquitectura. Por ejemplo. en general. 64. Linux mantiene un conjunto de listas enlazadas. 6. el sistema operativo debe tratar con el hardware real para realizar dicha función. Al mismo tiempo. el tamaño de página es de 4Kbytes y los fragmentos que se pueden asignar dentro de una página pueden ser de 32. puesto que influye mucho tanto en la visión de la misma por parte de un proceso. aprovechándolo al máximo.1 Diirecciionamiiento de Memoriia en Liinux 6 2 1 D recc onam ento de Memor a en L nux La memoria es uno de los recursos fundamentales para un proceso. se incrementa la variable edad. Para gestionar a estas pequeñas asignaciones. el gestor de páginas solamente podría ser ineficiente si el kernel requiere pequeños trozos de memoria a corto plazo y en tamaños irregulares. La asignación de fragmentos es relativamente compleja. Linux recorre periódicamente la reserva de páginas globales y disminuye la variable de edad de cada página cuando rota por todas las páginas de la memoria principal. 508.. una variable de edad de 8 bits sustituye al bit de uso. el sistema operativo es libre de usar o no dichos recursos. (4) Bits de protección. unidad que realiza. Como en el esquema de memoria virtual se utiliza un algoritmo de colegas (buddy algorithm) par asignar y liberar la memoria del kernel en unidades de uno o más páginas. Por Página 32 de 42 . en el i386.. 2040 y 4080 bytes. Puesto que la mínima cantidad de memoria que se puede asignar de esta forma es una página. segmentación y paginación. Una página con un envejecimiento 0 es una página “vieja” que no se ha referenciado en bastante tiempo y es la mejor candidata para el reemplazo. una por cada tamaño de fragmento. más frecuentemente se ha usado la página recientemente y menos elegible es para el reemplazo. Cada vez que se accede a una página. como en el aprovechamiento del hardware y el rendimiento del sistema. El sistema operativo debe ofrecer la memoria a todos los procesos por igual de una forma sencilla y uniforme. el algoritmo de reemplazo de páginas de Linux es una aproximación de la política LRU. (3) Bits reservados en descriptores de página. el sistema operativo suele tener asistencia del hardware para realizar la gestión memoria: (1) Memory Management Unit (MMU). El direccionamiento es una parte importante de la gestión de memoria. Linux utiliza un esquema conocido como asignación por fragmentos (slab allocation) dentro de una página asignada. Los fragmentos pueden dividirse y agregarse de forma similar al algoritmo de los colegas (buddy algorithm) y se mueve entre las listas en función de ello.

etc). solo es necesaria la GDT. Segmentaciión en Liinux 6 2 2 Segmentac ón en L nux Linux no aprovecha la segmentación del i386. aunque existe una llamada al sistema que permite crear sus propias LDTs. Salvo para threads del mismo proceso. Se ha preferido la paginación sobre la segmentación porque: (1) La gestión de memoria es más simple cuando todos los procesos usan los mismos valores de segmentos. (2) Un objetivo de Linux es la portabilidad. Los segmentos empleados en Linux son los siguientes: Segmento de código del kernel. tienen las mismas direcciones lineales. G = 1 (granularidad en páginas). Esta tabla es implementada por el array gdt_table referenciada por la variable gdt. Por ejemplo. que se encuentra definido en el archivo arch/i386/kernel/head. Otras características de la gestión de memoria también son deseables. son deseables ciertas características relacionadas con el direccionamiento: (1) Protección. la utiliza de una forma muy limitada. es decir. Sin embargo. (2) Memoria virtual. (2) Aprovechar la memoria mediante técnicas Copy-onwrite . (4) En general. caches. y muchos procesadores soportan la segmentación de forma muy limitada. el sistema operativo debe suplir carencias del hardware si es posible. La memoria de un proceso debe estar separada de la memoria de los demás procesos. Espacio de direcciones contiguo y que comienza en 0. Esto facilita el trabajo de los compiladores.. (3) Mapeado de ficheros sobre memoria. 6. que comparte con todos los procesos. Se emplean técnicas de swapping y paginación por demanda. se programa adecuadamente la GDT = Tabla de Descriptores Global. y un espacio de direcciones del kernel. El proceso debe tener la ilusión de estar solo en el sistema. Desde el punto de vista del proceso. Página 33 de 42 . mejorar el rendimiento del sistema mediante diversas técnicas a la hora de asignar o liberar memoria (Buddy system.2.. Límite (limit): 0xfffff. Como se emplean muy pocos segmentos. La LDT no se usa por el kernel salvo que lo requiera un proceso.2. no puede desactivarla. que es propio.Sistema Operativo Diferencias entre Linux y Unix otro lado. En Linux un proceso realmente tiene un espacio de direcciones de usuario. Los segmentos que se definen se superponen en el espacio de direcciones lineal. Base: 0x00000000. Slab allocator. Para hacer uso de la segmentación. usando bits disponibles o con técnicas más sofisticadas..S. si bien están menos relacionadas con el direccionamiento: (1) Ofrecer al proceso más memoria de la que hay físicamente disponible.

puede ser leído y ejecutado). Type = 0x2 (Datos. D/B = 1 (Offset de 32 bits). puede ser leído y escrito). Segmento de datos de usuario: Base: 0x00000000. el kernel se tiene que cargar el valor asociado a esta macro en el registro CS. Límite (limit): 0xfffff. S = 1 (Segmento normal de código o datos). G = 1 (granularidad en páginas). y se define por la macro __KERNEL_DS. Página 34 de 42 . G = 1 (granularidad en páginas). Para direccionar el segmento. S = 1 (Segmento normal de código o datos). El descriptor de segmento se define por la macro __USER_DS. puede ser leído y ejecutado) DPL = 3 (Modo usuario) D/B = 1 (Offset de 32 bits) El descriptor de segmento se define por la macro __USER_CS. Límite: 0xfffff G = 1 (granularidad en páginas) S = 1 (Segmento normal de código o datos) Type = 0xa (Código. DPL = 3 (Modo usuario). Segmento de código de usuario: Base: 0x00000000. déntico al descriptor de segmento anterior salvo por el tipo. Segmento de datos del kernel: Base: 0x00000000. Type = 0x2 (Datos. Abarca desde 0 a 232 – 1. y el selector de segmentose define por la macro __KERNEL_CS. DPL = 0 (Modo kernel).Sistema Operativo Diferencias entre Linux y Unix S = 1 (Segmento normal de código o datos). D/B = 1 (Offset de 32 bits). Límite: 0xfffff. Type = 0xa (Código. D/B = 1 (Offset de 32 bits). puede ser leído y escrito). DPL = 0 (Modo kernel para el nivel de privilegio del descriptor).

El kernel efectúa una correspondencia entre el modelo implementado por el procesador y el modelo de Linux... Así se consiguen aislar espacios de direcciones.Sistema Operativo Diferencias entre Linux y Unix Un Segmento de Estado de Tarea (TSS) para cada proceso. En Linux el espacio de direcciones lineales se divide en dos partes: (1) Direcciones lineales desde 0x0000000 a PAGE_OFFSET – l. Implementa una gestión de la memoria que es ampliamente independiente del procesador sobre el que se ejecuta. Linux depende fuertemente de la paginación para la gestión de procesos. el kernel considera que el directorio intermedio de tablas de páginas sólo contiene una entrada. la paginación en Linux tiene 3 niveles de tablas de páginas en lugar de 2. la gestión de la memoria implementada por Linux considera que dispone de una tabla de páginas a tres niveles: (1) directorio global de tablas de páginas (page global dirertory) cuyas entradas contienen las direcciones de páginas que contienen tablas intermedias. por ejemplo. Se emplean los anteriores bits junto con los bits Dirty y Accessed para manejar las diferentes posibilidades de falta de página. En los i386. Linux gestiona la memoria central y las tablas de páginas utilizadas para convertir las direcciones lineales (virtuales) en direcciones físicas. (2) Distinguir páginas (grupos de datos) de marcos de páginas (direcciones físicas en memoria principal). 6. entonces guardar en disco y después recargarla en un marco de página diferente. asegurando una protección eficiente ante errores de direccionamiento. En los procesadores i386. (2) directorio intermedio de tablas de páginas (page middle directory) cuyas entradas contienen las direcciones de páginas que contienen tablas de páginas. la traducción automática de dirección lineal a dirección física hace posible los siguientes objetivos: (1) Asignar un espacio de direcciones físicas diferentes a cada proceso. Se emplean los bits User/Supervisor y Read/Write para la protección. la tabla de directorio intermedio de tablas de páginas se obvia. por ejemplo. En realidad. La MMU de reinicializa con un nuevo directorio de tablas de páginas para cada proceso. este modelo no siempre corresponde al procesador sobre el cual Linux se ejecuta (los procesadores i386.3 Pagiinaciión en Liinux 6 2 3 Pag nac ón en L nux Para tener en cuenta arquitecturas de 64 bits. utilizan una tabla de páginas que sólo posee dos niveles). Esto permite a la misma página que se almacene en un marco de página.2. De hecho. accesibles en Página 35 de 42 . El campo base del descriptor de TSS contiene la dirección del campo tss del descriptor de proceso correspondiente. Evidentemente. (3) las tablas de páginas (page table) cuyas entradas contienen las direcciones de páginas de memoria que contienen el código o los datos utilizados por el kernel o los procesos de usuario. Esto es muy importante para el mecanismo de memoria virtual.

Sistema Operativo Diferencias entre Linux y Unix cualquier modo (usuario o kernel). una x de ejecución y un '-' indica que el permiso Página 36 de 42 . y algunos otros. Trusted Xenix (B2) y XTS-300 STOP 4. Después de la inicialización del sistema este conjunto de tablas de páginas no son utilizadas nunca por ningún proceso o thread del kernel. considerados los sistemas operativos más seguros del mundo (siempre según la NSA). Toda la memoria física debe ser accesible por el kernel. Entre estos Unix seguros podemos encontrar AT&T System V/MLS y OSF/1 (B1). El resto de entradas son las mismas para todos los procesos. Generalmente PAGE_OFFSET se inicializa a 0xc0000000 (3Gb). AIX.1 Permisos de un archivo Los permisos de cada archivo son la protección más básica de estos objetos del sistema operativo. evaluados por la National Security Agency (NSA) estadounidense y clasificados en niveles seguros (B o A). cuya raíz es el master kernel Page Global Directory. Éste mantiene un conjunto de tablas de páginas para su propio uso. La gran mayoría de Unices (Solaris. (2) Direcciones lineales desde PAGE_OFFSET hasta 0xffffffff. como Linux.. sólo en modo kernel. 7. se trata de sistemas con excelentes sistemas de control.. una w de escritura. aunque puedan implementar todos los mecanismos de los sistemas C2.1 (B3). El mapeado final proyecta las direcciones lineales empezando en PAGE_OFFSET en direcciones físicas empezando en 0. definen quién puede acceder a cada uno de ellos. Seguridad en Unix Dentro de la familia Unix existen una serie de sistemas denominados 'Unix seguros' o 'Unix fiables' (Trusted Unix). 7. se consideran sistemas C2 de facto: al no tener una empresa que pague el proceso de evaluación de la NSA no están catalogados. Una r indica un permiso de lectura. Las primeras 768 entradas del directorio de tablas de páginas (que mapean los primeros 3Gb) dependen de cada proceso.) están clasificados como C2. y de qué forma puede hacerlo.

ni eliminar el archivo.Sistema Operativo Diferencias entre Linux y Unix correspondiente no está activado. el atributo 'S' sobre un archivo hace que los cambios sobre el archivo se escriban inmediatamente en el disco 7.que le puedan obligar a desvelar esta clave una vez que se ha determinado la presencia de información cifrada en un dispositivo de almacenamiento. 7. de forma que el usuario se encuentra indefenso ante métodos legales . El atributo 'i' (archivo inmutable). Así. todos ellos plantean un grave problema: toda su seguridad reside en la clave de cifrado. la segunda al grupo del propietario cuando lo creó (recordemos un mismo usuario puede pertenecer a varios grupos) y la tercera al resto de usuarios.o ilegales . Los atributos ‘s' y 'S'. ¿De qué usuarios se trata en cada caso? La primera terna afecta al propietario del archivo. Todos los expertos en criptografía coinciden en afirmar que los métodos de ataque más efectivos contra un criptosistema no son los efectuados contra el Página 37 de 42 .3 Criptografía La criptografía es la herramienta principal utilizada en la mayoría de los sistemas de almacenamiento seguro. el usuario o usuarios afectados por esa terna tiene o tienen permisos para realizar cualquier operación sobre el archivo. Estos atributos son los mostrados en la siguiente tabla. Si borramos un archivo con el atributo 's' activo. ni añadiendo datos ni borrándolos.2 Atributos de los archivos en ext2fs. un archivo con este flag activado no se puede modificar de ninguna forma. si en una de las ternas tenemos los caracteres rwx. sin embargo. el sistema va a rellenar sus bloques con ceros en lugar de efectuar un simple unlink(). En el sistema de archivos ext2 ( Second Extended File System) de Linux existen ciertos atributos para los archivos que pueden ayudar a incrementar la seguridad de un sistema. A S a c i d s u Don´t update Atime Synchronous updates Append only Compressed file Immutable file No Dump Secure deletion Undeletable file El atributo 'a' sobre un archivo indica que este sólo se puede abrir en modo escritura para añadir datos. Por su parte.

. presiones 7.txt >archivo. Un ejemplo simple de su uso puede ser el siguiente: $ crypt <archivo. como Solaris). desarrollado por el criptólogo estadounidense Phil Zimmermann.no siempre se ha de tratar de un pirata que borra los discos . restore se utiliza para recuperar archivos de esas copias. las personas (chantaje.5 Copias de seguridad Las copias de seguridad del sistema son con frecuencia el único mecanismo de recuperación que poseen los administradores para restaurar una máquina que por cualquier motivo .).ha perdido datos. si no recibe parámetros lee los datos de la entrada estándar y los escribe en la salida estándar.crypt Enter key: $ Para descifrar un archivo cifrado mediante crypt (por ejemplo. Aparte de esta función.Sistema Operativo Diferencias entre Linux y Unix algoritmo.crypt>salida. amenazas. Se trata Página 38 de 42 . por lo que seguramente habremos de redirigir ambas a los nombres de archivo adecuados. en caso de ser necesario. etc. el anterior) utilizamos la misma orden y la misma clave: $ crypt <archivo. almacenar y. La herramienta clásica para realizar backups en entornos Unix es desde hace años dump..txt No configuration file found. PGP permite también el cifrado de archivos de forma convencional mediante criptografía simétrica.txt Enter key: $ PGP: Pretty Good Privacy El software PGP. que vuelca sistemas de archivos completos (una partición o una partición virtual en los sistemas que las soportan.4 Almacenamiento seguro La orden crypt permite cifrar y descifrar archivos en diferentes sistemas Unix. una correcta política para realizar. sino contra judiciales. 7. restaurar los backups es vital en la planificación de seguridad de todo sistema. Por tanto. el modo de uso es el siguiente: anita:~$ pgp -c archivo. es mundialmente conocido como sistema de firma digital para correo electrónico. esta faceta de PGP convierte a este programa en una excelente herramienta para cifrar archivos que almacenamos en nuestro sistema.

El archivo /etc/system En este archivo el administrador puede definir variables para el núcleo del sistema operativo. de forma que por ejemplo podemos restaurar un backup realizado en IRIX en un sistema HP-UX.Sistema Operativo Diferencias entre Linux y Unix de una utilidad disponible en la mayoría de clones del sistema operativo. por lo que si deseamos asignar un valor máximo hemos de editar el archivo /etc/system e incluir una línea como la siguiente: set maxuprc=60 Página 39 de 42 . 7.7 Seguridad del núcleo El núcleo o kernel de un sistema Unix es la parte más importante del mismo. Una negación de servicio muy típica en Unix es el consumo excesivo de recursos por parte de usuarios que lanzan . enlazador. la mayor parte de las versiones de dump permiten realizar copias de seguridad sobre máquinas remotas directamente desde línea de órdenes. como el número máximo de archivos abiertos por un proceso o el uso de memoria compartida.demasiados procesos. hasta tal punto que en términos puristas se considera al núcleo como el sistema operativo en sí. un error en la programación. 7. y contemplamos al sistema operativo como el conjunto formado por el núcleo y una serie de herramientas (editor. es innegable que el kernel es la parte del sistema más importante. shell. etc. Una característica física del usuario o un acto involuntario del mismo...). De esta forma. Pero incluso si no lo consideramos así. a los manejadores de dispositivos). direcciona toda la memoria. Además.voluntaria o involuntariamente . Esta última categoría se conoce con el nombre de autenticación biométrica. y con diferencia: mientras que las aplicaciones operan en el espacio de usuario. potente (no diremos 'sencilla') y lo más importante: las copias son completamente compatibles entre Unices. Esto implica que no se le impone ninguna restricción a la hora de ejecutarse: utiliza todas las instrucciones del procesador. semáforos y mensajes para intercomunicación entre procesos. o incluso en la configuración del núcleo puede ser fatal para nuestro sistema. compilador. accede directamente al hardware (más concretamente.6 Autenticación de usuarios Los métodos de autenticación se suelen dividir en tres grandes categorías: • • • Algo que el usuario sabe Algo que éste posee. el núcleo siempre trabaja en el modo privilegiado del procesador (RING 0). y un pequeño error en el código puede hacer que el sistema se vea parado por un exceso de procesos activos en la tabla.

Incluso se utilizan técnicas denominadas "ingeniería social". Maxusers no hace referencia al número máximo de usuarios que pueden conectar simultáneamente al sistema. A menudo un sistema operativo es tan seguro como la astucia y habilidad de su administrador. Por otro lado. configuraciones deficientes de los servicios o el descifrado de claves cifradas. Primero se intentará conseguir acceso como usuario "normal" para posteriormente ir incrementando sus niveles de privilegio utilizando las posibles debilidades del sistema: programas con errores. podemos incluir en /etc/system una línea con el valor deseado. como sus nombres de usuario y contraseñas. a pesar de todo resulta fundamental dedicar cierto tiempo y recursos para conocer cuáles son sus debilidades y vías frecuentes de ataque y adoptar posteriorermente las medidas más eficaces para contrarrestarlas. sino que es un valor que escala a otros parámetros del núcleo (como max_nproc.Sistema Operativo Diferencias entre Linux y Unix De esta forma limitamos el número de procesos por usuario a 60. y que quizás nos interese modificar (sobre todo en máquinas con pocos recursos) es maxusers. consistentes en convencer a ciertos usuarios para que suministren una información que debiera ser mantenida en secreto. Página 40 de 42 .. consiguiendo así que un error en un programa no sea capaz de detener la máquina. Seguridad en Linux Linux es un sistema muy robusto e incorpora las características de seguridad comunes a todos los sistemas tipo Unix. generalmente el tamaño en MB de la memoria física de nuestra máquina: set maxusers=128 8. la meta de la mayoría de los ataques es conseguir acceso como root. cada fichero y directorio tienen sus propietario y permisos.1 Seguriidad llocall 8 1 Segur dad oca En este aspecto de la seguridad. número máximo de procesos en la tabla) o maxuprc. Linux dispone de todas las características de los sistemas Unix: un control de acceso a los usuarios verificando una pareja de usuario y clave. Para modificarlo. Un parámetro del sistema operativo especialmente importante. lo que garantiza un control total sobre el sistema. 8.

org/wiki/Unix Sistema Operativo UNIX . www.es/toni/personal/ .com/trabajos/unix/unix..mx/sistoper/capitulo8..monografias.. curso de administración. esta basado en un modelo arborescente y recursivo.. Resumiendo. www. andercheran.es/toni/ Documentación sobre Unix Libro de libre distribución "Seguridad en Unix y redes".tau.Monografias. pue. .html .la marca: desde el punto de vista legal..upv. Debido a las múltiples versiones en el mercado de UNIX. es.upv.Sistema Operativo Diferencias entre Linux y Unix 9.. Programación bajo Unix.. la marca Unix no es propiedad de ninguna compañía...78k Unix y Seguridad Información sobre seguridad informática en general y bajo entornos Unix en particular.wikipedia..com El sistema de archivos de Unix. .aiind. En el sistema operativo Unix los procesos pueden comunicarse .8k CASO DE ESTUDIO: UNIX Unix es uno de los sistemas operativos más ampliamente usados en computadoras . Bibliografía Unix .Wikipedia en español UNIX .shtml ..org. se comenzaron a .17k Página 41 de 42 . enlaces y scripts útiles. .ar/base/lara. curso de introducción a este sistema. andercheran.aiind.udlap. Unix es una marca de mercado..

al evento XpoLinux 2005.org/wiki/Linux ..linuxparatodos. manuales y recursos Linux. .14k - Linux . www..76k Página 42 de 42 . www. . foros.Un buen sitio donde empezar. Linux es la denominación de un sistema operativo y el nombre de un núcleo..wikipedia...net/ .. www. para otros usos ver .Sistema Operativo Diferencias entre Linux y Unix El rincón de Linux El rincon de LINUX es un servidor con informacion en castellano sobre Linux.... es.Wikipedia en español Este artículo se refiere al sistema operativo Linux.linux-es. descarga de programas y documentación.org/ .com/ Linux Para Todos . chat..com :: Noticias propias y enlazadas a Barrapunto y Slashdot.todo-linux. que se llevará a cabo los .46k :: Todo-Linux. Noticias. Linux Para Todos invita a toda la comunidad del software libre.