diferencias entre linux y unix

Upload: julio-estuardo-cajas-vasquez

Post on 13-Jul-2015

78 views

Category:

Documents


0 download

TRANSCRIPT

Facultad de Ingeniera 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 Contenido1. 2. FUNCIONES DEL SISTEMA OPERATIVO ...................................................................................1 INTRODUCCIN HISTRICA A UNIX Y LINUX. ......................................................................2 3. VISIN GENERAL DE UNIX.................................................................................................................4 3.1. ESTRUCTURA DEL SISTEMA. .................................................................................................................4 3.1.1 Sistema Operativo interacta con el hardware.............................................................6 3.1.2 El Entorno de Procesamiento...............................................................................................7 3.1.3 Primitivas de Construccin 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 Ejecucin del Procesador. ..............................................................................10 3.1.8 Manejo de Memoria. ............................................................................................................11 4. DESCRIPCIN DE LINUX Y DE SUS FUNCIONALIDADES. .......................................................11 4.1 ESTRUCTURA GENERAL DEL SISTEMA OPERATIVO LINUX...................................................................12 5. GESTIN 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 GESTIN 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 ORGANIZACIN DE LA MEMORIA DEL SISTEMA. ..................................................................23 5.3.1 Asignacin de memoria......................................................................................................24 5.3.2. Regiones.................................................................................................................................25 5.3.3. Pginas y Tablas de Pginas............................................................................................25 5.4 SINCRONIZACIN DE PROCESOS EN LINUX. ...........................................................................27 6. GESTIN DE LA MEMORIA ..............................................................................................................28 6.1 GESTIN DE MEMORIA EN UNIX ................................................................................................28 6.1.1. Paginacin por Demanda .................................................................................................29 6.1.2 Estructuras de Datos para Paginacin por Demanda (UNIX) ..................................29 6.2 GESTIN DE MEMORIA EN LINUX ..............................................................................................31 6.2.1 Direccionamiento de Memoria en Linux ........................................................................32 6.2.2. Segmentacin en Linux......................................................................................................33 6.2.3 Paginacin 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 CRIPTOGRAFA .....................................................................................................................................37 7.4 ALMACENAMIENTO SEGURO ................................................................................................................38 7.5 COPIAS DE SEGURIDAD ........................................................................................................................38 7.6 AUTENTICACIN DE USUARIOS ............................................................................................................39 Pgina I

Sistema Operativo

Diferencias entre Linux y Unix

7.7 SEGURIDAD DEL NCLEO .....................................................................................................................39 8. SEGURIDAD EN LINUX.......................................................................................................................40 8.1 Seguridad local.........................................................................................................................40 9. BIBLIOGRAFA .....................................................................................................................................41

Pgina II

Sistema Operativo

Diferencias entre Linux y Unix

1. Funciones del sistema operativoEl sistema operativo UNIX se ha desarrollado en un lenguaje de alto nivel. La utilizacin de un lenguaje de alto nivel ha permitido la portabilidad del sistema a muchas mquinas diferentes. Lo mismo le ocurre a LINUX, por ello es importante que el cdigo de las aplicaciones pudiera compilarse de manera transparente sea cual sea la mquina y los dispositivos utilizados. Mquina virtual. El SO ofrece una mquina virtual al usuario y a los programas que ejecuta. Este se ejecuta en una mquina fsica que posee una interfaz de programacin bajo nivel, y proporciona abstracciones de alto nivel y una nueva interfaz de programacin y uso ms evolucionada. El SO posee una interfaz entre las aplicaciones y la mquina. Por ello, es por lo que todas las tareas fsicas (acceso a dispositivos externos o internos, a la memoria, etc.) se delegan en el sistema operativo. Esta encapsulacin 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. Gestin 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 impresin de que varios procesos se ejecutan simultneamente, aunque slo un proceso se ejecuta en un instante dado. Gestin de memoria. El sistema se encarga de gestionar la memoria fsica de la computadora. En un entorno multiusuario y multitarea, el sistema debe efectuar una gestin muy rigurosa de la memoria. Como la memoria fsica de la mquina es a menudo insuficiente, el sistema utiliza entonces una parte del disco duro como memoria virtual. Gestin 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 proteccin 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 utilizacin, lo que permite atribuirlos a los procesos que utilizan los recursos de la mquina, y puede detectar as los conflictos de acceso.

Pgina 1 de 42

Sistema Operativo

Diferencias entre Linux y Unix

2. INTRODUCCIN HISTRICA A UNIX Y LINUX.1965: Laboratorios Bell, General Electric y MIT intentan desarrollar un nuevo Sistema Operativo: MULTICS (sistema operativo multiusuario interactivo). Objetivos del nuevo Sistema Operativo: (1) Dar servicio simultneo a gran cantidad de usuarios. (2) Proporcionar gran capacidad de clculo y almacenamiento. (3) Permitir a los usuarios compartir datos fcilmente. 1969: Primera Versin de MULTICS en Bell. No cumpli las expectativas y Laboratorios Bell abandona el proyecto El proyecto muere. Fin proyecto MULTICS: Algunos participantes intentan mejorar el entorno de programacin desarrollado. Ken Thompson, Dennis Ritchie y otros disean un sistema de archivos versin primitiva del sistema de archivos de UNIX. Thompson y Ritchie Primera implementacin de su diseo. (1) Versin primitiva del sistema de archivos UNIX. Lenguaje ensamblador. (2) Subsistema de procesos. (3) Conjunto de programas de utilidad. (4) Ha nacido UNIX. Thompson, Ritchie y el lenguaje C 1973: UNIX se rescribe en C casi en su totalidad (90% aproximadamente), dejando slo un 10% dependiente del lenguaje mquina de una computadora en concreto ya que C se caracteriza por su portabilidad, es decir, su independencia de la mquina, UNIX hereda esta caracterstica convirtindose en uno de los sistemas operativos ms portables. UNIX es un potente sistema operativo que en su mayor parte es independiente de la mquina. Permite ejecutar programas, aporta un interfaz con un gran nmero de perifricos (impresoras, discos, cintas magnticas, terminales) para trabajar con ellos de forma cmoda, controlando el flujo de informacin entre la computadora central y dichos perifricos. Adems posee un eficaz sistema de archivos, administrando el sistema de informacin a largo plazo. UNIX es un sistema multitarea, multiusuario e interactivo de propsito general. La popularidad del S.O. UNIX es debida a: (1) Escrito en un lenguaje de alto nivel por lo que es fcil de leer, entender, modificar y mover a otras mquinas. (2) Interfaz de usuario simple pero completo.Pgina 2 de 42

Sistema Operativo

Diferencias entre Linux y Unix

(3) Primitivas de construccin de programas complejos a partir de otros ms simples. (4) Sistema de archivos jerrquico. (5)Fcil mantenimiento. (6) Implementacin eficiente. (7) Formato consistente para los archivos permitiendo escribir programas con facilidad. (8) Interfaz consistente y simple con los dispositivos perifricos. (9) Hoy existen numerosas variantes comerciales (SCO, IBM, Digital, HP, SGI, Sun, etc.) que actan en entornos cliente servidor, intranet, Internet, etc. Por lo que respecta a Linux: (1) Linux aparece en 1991 como evolucin de MINIX para el 80386. (2) En menos de un ao, ms de 100 programadores colaboran. (3) Forma de trabajo: Los fuentes (versiones) se difunden con la mxima frecuencia y cualquiera que quiera modificar o criticar algo, lo hace. Los ms conocedores de esa rea (los que la han programado) deciden si es til y si lo es, lo incorporan. (4) Se portan las herramientas GNU de la FSF (gcc, gdb, bash, emacs, etc.) (5) En marzo de 1994 aparece Linux 1.0 en forma de distribucin. (6) En junio de 1996 se distribuye Linux 2.0, ya competitivo con otros UNIX. (7) Aparecen varias distribuciones (RedHat, Caldera, S.U.S.E, Slackware, Debian, etc., algunas con soporte oficial para empresas). (8) La FSF adopta Linux como Sistema Operativo Oficial: GNU/Linux. (9) Inters por parte de las empresas (Intel, Sun, Netscape, Lotus, Adobe, Corel, Oracle, Informix, Sysbase, etc.). (10) En enero de 1999 aparece Linux 2.2 con muchas mejoras y soporte para nuevos tipos de hardware. El primer nmero cambia cuando se da una evolucin importante, el segundo es la versin y el tercero la revisin. Las versiones pares son estables y las impares inestables. (11) En enero de 2001 aparece Linux 2.4 con mejoras en el

Pgina 3 de 42

Sistema Operativo

Diferencias entre Linux y Unix

soporte a multiprocesadores, dispositivos como el USB, y acceso directo al HW grfico (2D, 3D). Sistema interactivo. El usuario interacta con el sistema en tiempo real sin necesidad de esperar colas de ejecucin como ocurra en los sistemas batch. Sistema multiusuario. En un momento dado varios usuarios distintos pueden actuar en el mismo sistema, accediendo desde terminales distintas. Es un sistema multiprogramado (multitarea). Varios programas pueden estar simultneamente en el sistema en diferentes reas de memoria. Mientras que un trabajo est esperando operaciones de E/S otro puede estar usando la CPU. Si se pueden tener a la vez varios trabajos en memoria principal, la CPU puede mantenerse ocupada casi todo el tiempo. Es un sistema de tiempo compartido. El sistema UNIX divide el tiempo de la computadora en un nmero de partes, repartindolas entre los diferentes procesos. La computadora puede proporcionar servicio rpido e interactivo a varios usuarios e incluso procesar trabajos batch grandes en segundo plano cuando la CPU est ociosa. Es un sistema multiplataforma. UNIX es un sistema que proporciona compatibilidad para arquitecturas distintas. Oculta la arquitectura de la mquina, del usuario Fcil escribir programas que van a correr en hardware diversos.

3. VISIN GENERAL DE UNIX.3.1. Estructura del Sistema.UNIX es un sistema operativo de tiempo compartido (el sistema UNIX divide el tiempo de la computadora en un nmero de partes, repartindolas entre los diferentes procesos). El kernel del sistema es un programa que siempre est residente en memoria y, entre otros, brinda los siguientes servicios: Controla los recursos bsicos. Controla los dispositivos impresoras, etc.). perifricos (discos, terminales,

Permite a distintos usuarios compartir recursos y ejecutar sus programas.

Pgina 4 de 42

Sistema Operativo

Diferencias entre Linux y Unix

Proporciona un sistema de archivos que administra el almacenamiento de informacin (programas, datos, documentos, etc.). Es un sistema interactivo, permite el redireccionamiento de la E/S, tuberas y ejecucin de procesos en background. En un sentido ms amplio, UNIX abarca tambin un conjunto de programas estndar, como pueden ser: Compilador de lenguaje C (cc). Editor de texto (vi). Intrprete de rdenes (sh, ksh, csh) Programas de gestin de archivos y directorios (cp, rm, mv, mkdir, rmdir). Organizacin de un sistema UNIX cualquiera: Figura 1.1. El hardware suministra al sistema operativo servicios bsicos. En la Figura 1.1, se pueden ver distintos niveles dentro de la arquitectura UNIX. El nivel ms externo (Otros programas de aplicacin) no pertenece al sistema operativo, y si la mquina que esta implementada sobre el hardware, cuyos recursos se desea gestionar. Directamente en contacto con el hardware est el segundo nivel, el kernel del sistema, este est escrito en C en su mayor parte aunque coexiste con cdigo ensamblador. El kernel del sistema operativo es un programa que esta siempre residente en memoria y brinda servicios para controlar los recursos del sistema.

Pgina 5 de 42

Sistema Operativo

Diferencias entre Linux y Unix

Algunas funciones del sistema operativo se usan casi continuamente. Por ejemplo, la parte del sistema UNIX que se encarga de cambiar un programa por otro (tiempo compartido) se necesita muchas veces cada fraccin de segundo. Todas aquellas funciones que se necesitan inmediatamente, se mantienen permanentemente en memoria. A la parte residente en memoria de un sistema operativo se llama kernel. El sistema UNIX ha dotado al kernel con relativamente pocas prestaciones, de forma que la mayora de las funciones del sistema operativo las deben de proporcionar los programas de utilidad. En el tercer nivel de la estructura que muestra la Figura 1.1 se encuentran los programas estndar de cualquier sistema UNIX (vi, grep, sh, who, ...) y programas generados por el usuario. Se debe destacar, que estos programas nunca van a actuar sobre el hardware de forma directa. Por ello, debe de existir algn mecanismo que permita indicarle al kernel que necesitamos operar sobre algn recurso hardware. Este mecanismo es lo que se conoce como llamadas al sistema (system calls). As pues, cualquier programa que se est ejecutando bajo el control de UNIX, cuando necesite hacer uso de alguno de los recursos que le brinda el sistema, deber efectuar una llamada a alguna de las llamadas al sistema (system calls). En un cuarto nivel tenemos aplicaciones que se sirven de otros programas ya creados para llevar a cabo su funcin. Estas aplicaciones, tampoco se comunican directamente con el kernel. Tambin hay que destacar que la jerarqua de programas no tiene por qu verse limitada a cuatro niveles. El usuario puede crear tantos niveles como necesite. Puede haber tambin 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.

3..1..1 Siistema Operatiivo iinteracta con ell hardware.. 3 1 1 S stema Operat vo nteracta con e hardwareDa servicio a los programas. Asla a los programas del hardware. Programas independientes del hardware son sencillo moverlos entre sistemas UNIX sobre distintos hardware.

Pgina 6 de 42

Sistema Operativo

Diferencias entre Linux y Unix

3..1..2 Ell Entorno de Procesamiiento.. 3 1 2 E Entorno de Procesam entoUNIX Ejecuta simultneamente varios procesos multiprocesamiento) sin un lmite lgico. o o Lmites fsicos: tamao de la memoria, etc. Degradacin del sistema si el nivel de multiprocesamiento crece. Llamadas al sistema para crear, terminar, sincronizar y especificar el comportamiento de procesos. Permite ejecucin sincrnica y asincrnica. Comentario: Hilos, Duplicacin del cdigo. (multitarea o

Varias instancias de un mismo programa de cdigo reentrante. o o o

3..1..3 Priimiitiivas de Construcciin de Blloques.. 3 1 3 Pr m t vas de Construcc n de B oquesFilosofa UNIX: Proporcionar construccin de programas. o o al usuario primitivas de

Le permiten construir programas sencillos. Utilizacin posterior como bloques de construccin para construir programas ms complejos. Procesos son acceso por defecto: archivo de entrada estndar, archivo de salida estndar y archivo de error estndar. UNIX proporciona mecanismos cualquiera de ellos por medio cuidadosa del sistema de archivos. para redireccionar de la organizacin

Primitiva 1: Redireccionar la E/S. o

o

Primitiva 2: Pipes o tuberas. o Mecanismo que permite el paso de datos entre un proceso escritor y un proceso lector sin necesidad de crear archivos temporales. Escritor redirecciona la salida estndar hacia pipe. Lector redirecciona su entrada estndar hacia el pipe.

Pgina 7 de 42

Sistema Operativo

Diferencias entre Linux y Unix

3..1..4 Serviiciios dell Siistema Operatiivo.. 3 1 4 Serv c os de S stema Operat voEl kernel est entre el hardware y los programas de usuario. o Sirve a programas de usuario por medio de llamadas al sistema (system calls).Ver Figura 1.1. Control de ejecucin de procesos. Planificacin compartido. equitativa de procesos Tiempo

Servicios que ofrece el kernel. o o o

Administracin de la memoria principal Procesos en ejecucin. Permite a procesos compartir parte del espacio de direcciones. Protege el espacio de direccionamiento privado de procesos. Gestiona la memoria libre en tiempos de escasez. Dispositivo swap (intercambio1). Sistema de intercambio o sistema paginado.

Administra la memoria secundaria eficientemente: SF. Asigna la memoria secundaria para archivos de usuario. Recupera el espacio de almacenamiento no utilizado. Estructura el sistema de archivos de manera comprensible. Protege los archivos de usuario ante accesos ilegales. acceso de controlado una a

Permite a procesos el dispositivos perifricos. El kernel proporciona transparente. estos

servicios

manera

El intercambio consiste en llevar los procesos cuyo tiempo de ocupacin de memoria expira, a un rea de memoria secundaria y traer de esa rea de memoria secundaria los procesos a los que se les asigna tiempo de ocupacin en memoria principal.

Pgina 8 de 42

Sistema Operativo

Diferencias entre Linux y Unix

3..1..5 Aspectos dell Hardware.. 3 1 5 Aspectos de HardwareEjecucin de un proceso en UNIX: dos niveles: usuario y kernel. o Proceso realiza llamada al sistema modo de ejecucin pasa de modo usuario a modo kernel. Sistema operativo intenta servir una peticin del usuario. 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 cdigo mquina conocida como trap. Es por esto, que las llamadas al sistema pueden ser invocadas directamente desde ensamblador y no desde C. En este modo estn permitidas todas las instrucciones para el sistema operativo. Modo usuario: en este modo no estn permitidas instrucciones de E/S y de otros tipos para programas de usuario. o o Kernel realiza tareas de gestin para procesos de usuario. Diferencias entre los dos niveles son: Acceso a instrucciones y datos. Ejecucin de instrucciones mquina privilegiadas. El kernel se ejecuta a peticin de los procesos de usuario. o o Kernel no son procesos ejecutndose en paralelo para servir a procesos de usuario. Cdigo ejecutado por el propio proceso en modo kernel o protegido. Permite ejecucin sincrnica y asincrnica. Organizacin alrededor de servidores.

3..1..6.. Interrupciiones y Excepciiones.. 3 1 6 Interrupc ones y Excepc onesLas interrupciones son seales elctricas 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). UNIX permite asincrnicamente. o a dispositivos interrumpir la CPU

Llegada de una interrupcin.Pgina 9 de 42

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 interrupcin. Sirve la interrupcin por medio de bloqueos interrupciones menos prioritarias, sirve interrupciones de mayor prioridad. Fin servicio de interrupcin. Restaura el contexto salvado. Contina como si no hubiera pasado nada.

o o

Distincin excepciones interrupciones. Adems de las interrupciones hardware y software, diversas condiciones de error de la CPU pueden causar la iniciacin de una excepcin. Las excepciones pueden servir: para estimular al sistema operativo para que suministre un servicio, para suministrar ms memoria a un proceso.

3..1..7 Niivelles de Ejecuciin dell Procesador.. 3 1 7 N ve es de Ejecuc n de ProcesadorEl kernel debe prevenir la ocurrencia de interrupciones cuando se encuentra realizando operaciones crticas. o o Peligro de corrupcin de los datos. Fija el nivel de ejecucin del procesador mediante el enmascaramiento de las interrupciones de ese y niveles inferiores, permitiendo interrupciones de ms alto nivel.

Pgina 10 de 42

Sistema Operativo

Diferencias entre Linux y Unix

3..1..8 Manejo de Memoriia.. 3 1 8 Manejo de Memor aCompilacin de un programa, el compilador genera direcciones para variables, funciones, etc. para una mquina virtual. El kernel reside permanentemente en memoria. Programa va a ejecutarse, el kernel le asigna memoria principal. o o Problema: Direcciones virtuales y fsicas no coinciden. Kernel debe coordinarse con el hardware realizar una traduccin de direcciones virtuales a fsicas. Forma de hardware. realizar traduccin depende del

Partes del sistema UNIX que tratan con ella sern dependientes de la mquina. Microncleo.

4. Descripcin de Linux y de sus Funcionalidades.Linux se dise inicialmente como un clnico de UNIX distribuido libremente que funciona en mquinas PC con procesador 386, 486 o superior. Aunque se dise inicialmente para la arquitectura I386, en la actualidad funciona sobre otras plataformas como los procesadores Compac Alpha AXM, Sun Sparc, DEC VAX, ciertas plataformas basadas en los Motorola 68000 como Amiga y Atari, las mquinas de tipo MIPS, PowerPC64, ARM, Intel IA-64, AMD x86-64, Cris, etc. Linux es una implementacin de UNIX que respeta la especificacin POSIX pero que posee tambin ciertas extensiones propias de las versiones System V y BSD de UNIX. Esto implica la adaptacin del cdigo de aplicaciones desarrolladas inicialmente para otros sistemas UNIX. El trmino POSIX significa Portable Operating System Interface. Se trata de documentos producidos por IEEE y estandarizados por ANSI y el ISO. El objetivo de POSIX es permitir tener un cdigo fuente transportable. El cdigo de Linux es un cdigo original, que no es propietario en absoluto y cuyos programas en cdigo fuente se distribuyen libremente bajo cobertura de licencia GPL, que es la licencia pblica general de GNU. Las funcionales de este sistema operativo son mltiples corresponden a la idea que puede hacerse de un sistema UNIX moderno: Sistema operativo de estilo UNIX. Compatible POSIX. Multitarea, multiprocesador. Puede ejecutar programas mismo tiempo, ya sea con uno o varios procesadores. al y

Pgina 11 de 42

Sistema Operativo

Diferencias entre Linux y Unix

Multiplataforma. Puede funcionar en mltiples arquitecturas hardware. Multiusuario. Como en todo sistema UNIX, Linux permite trabajar a varios usuarios simultneamente en la misma mquina. Proteccin de memoria entre procesos. Soporte de comunicaciones interprocesos (pipes, IPC, sockets). Gestin de diferentes seales. Gestin de terminales segn la norma POSIX. Linux, proporciona tambin los pseudos terminales y los controles de procesos. Soporte de un gran nmero de dispositivos ampliamente extendidos (tarjetas de sonido, grficas, de red, SCSI, etc.). Buffer cach. Zona de memoria intermedia entradas/salidas de los diferentes procesos. para las

Gestin de memoria (memoria virtual). Una pgina slo se carga si es necesaria en memoria. Libreras compartidas y dinmicas. Las libreras dinmicas slo se cargan cuando son necesarias y su cdigo se comparte si varias aplicaciones las utilizan. Soporte de mltiples sistemas de archivos. Sistemas de archivos que permiten gestionar tanto particiones Linux con el sistema de archivos Ext2, por ejemplo, como particiones en otros formatos (MS-DOS, iso9660, etc.) Soporte de la familia de protocolos TCP/IP y de otros protocolos de red. Capacidad de multiprocesamiento simtrico, de funcionamiento en cluster. Escrito en C. Posibilidad de depuracin en tiempo de ejecucin. Carga de mdulos en tiempo de ejecucin.

4.1 Estructura General del Sistema Operativo Linux.Tal y se ha visto, el sistema operativo se compone de varios elementos importantes. UNIX y Linux se han desarrollado de manera modular de modo que se pueden distinguir fcilmente las diferentes partes que lo componen. La ventaje de esta estructuracin es que permite su modificacin y mejoraPgina 12 de 42

Sistema Operativo

Diferencias entre Linux y Unix

sin excesiva dificultad. La incorporacin de ciertos elementos, como llamadas al sistema, controladores de dispositivos u otros, es sencilla y no obliga a redisear la estructura del sistema. De forma general los distintos elementos que nos encontramos en el kernel de Linux son los siguientes: Llamadas al sistema. Implementacin de operaciones que deben ejecutarse en modo kernel. Sistema de archivo. Entradas/salidas de los dispositivos. Buffer cach. entradas/salidas. Memoria intermedia sofisticada para

Controladores de dispositivos. Gestin a bajo nivel de discos, tarjetas, impresoras, etc. Gestin de la red. Protocolos de comunicaciones en red. Interfaz con la mquina. Cdigo (generalmente en ensamblador) de acceso a bajo nivel al hardware.

Pgina 13 de 42

Sistema Operativo

Diferencias entre Linux y Unix

Ncleo del kernel. Gestin de procesos (creacin, duplicacin, destruccin, etc.), gestor de rdenes, seale s, mdulos cargables (carga de ciertas partes del kernel cuando se requieren), gestin de memoria (gestin de la memoria fsica y la memoria virtual), etc.

En la figura anterior, representa la estructura del sistema operativo Linux, que es muy parecida a la del sistema operativo UNIX.

Pgina 14 de 42

Sistema Operativo

Diferencias entre Linux y Unix

5. GESTIN DE PROCESOS5.1 ESTADOS Y TRANSICIONES DE UN PROCESO.5..1..1.. Ciicllo Viida de un Proceso en UNIX.. Conjunto Estados 5 1 1 C c o V da de un Proceso en UNIX Conjunto EstadosEl tiempo de vida de un proceso se puede dividir en un conjunto de estados, cada uno con de las caractersticas determinadas. Es decir, que un proceso no permanece siempre en un mismo estado, sino que est continuamente cambiando de acuerdo con unas reglas bien definidas. 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). La transicin entre los diferentes estados (Figura 2.1) da lugar a un Diagrama de Transicin de Estados. Un diagrama de transicin de estados es un grafo dirigido, 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. En la Figura 2.1, se observa el diagrama completo y los estados que en l se reflejan son: Entrada del proceso en el modelo, creacin de un proceso: estado Creado (8). o o o Este estado es el estado inicial para todos los procesos excepto el proceso 0 (swapper). Llamada al sistema fork del padre. El proceso acaba de ser creado y est en un estado de transicin; el proceso existe, pero ni est preparado para ejecutarse (estado 3), ni durmiendo (estado 4)

Proceso ejecutndose en modo usuario (1). Los eventos que desencadenan una transicin pueden ser los siguientes: o [Evento = fin quantum] = transicin al estado de ejecutndose en modo kernel (2). Gestin de la interrupcin. Esta funcin la lle va a cargo el mdulo de control del hardware, que es la parte del kernel encargada del manejo de interrupciones y de la comunicacin con la mquina. Planificacin a cargo del scheduler. Elegir otro proceso si es el siguiente para ser ejecutado segn el scheduler.

Pgina 15 de 42

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, pasando otro proceso a ejecutarse en modo usuario] = posiblemente a listo para ejecutar en modo usuario. o [Evento = llamada al sistema] = transicin al estado de ejecutndose en modo kernel (2). Operacin de Entrada/Salida. El proceso pasa al estado durmiendo en memoria (4) [Evento = dormir]. Fin de la operacin de Entrada/Salida. El hardware interrumpe la CPU. Como sabemos los dispositivos pueden interrumpir la CPU mientras est ejecutando un proceso. Si esto ocurre, el kernel debe reanudar la ejecucin del proceso despus de atender a la interrupcin. Las interrupciones no son atendidas por procesos, sino por funciones especiales, codificadas en el kernel, que son llamadas durante la ejecucin de cualquier proceso. Estado listo para ejecutarse [Evento = despertar]. Ejecucin en modo kernel (2). o Gestin interrupciones y llamadas al sistema, planificacin, etc. Esta transicin se debe a eventos que slo el kernel puede controlar y no pueden pasar a otro estado de trnsito [Evento = interrupcin / volver de interrupcin] Si viene de recin creado (8) completa su parte del fork ante un evento de hay suficiente memoria. Cuando el proceso termine de ejecutarse en modo kernel = pasa a ejecutarse en modo usuario (1) [Evento = volver]. en memoria (3)

o o

Listo para ejecutarse en memoria (3) o en el rea de swap en memoria secundaria (5). o Listo para ejecutarse en memoria (3). El proceso no se est ejecutando, pero est listo para ejecutarse tan pronto como el scheduler lo ordene [Evento = orden de ejecucin por parte delPgina 16 de 42

Sistema Operativo

Diferencias entre Linux y Unix

scheduler]. Puede haber varios simultneamente en este estado.

procesos

Si viene de recin Creado (8), completa su parte del fork [Evento = hay memoria suficiente]. o Listo para ejecutarse en el rea de swap, en memoria secundaria (5). No hay memoria principal suficiente para todos los procesos [Evento = memoria principal insuficiente]. 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. Durmiendo cargando en memoria (4) o en el rea de swap en memoria secundaria (6). o El proceso est durmiendo cargado en memoria principal (4). Un proceso entra en este estado cuando no puede proseguir su ejecucin porque est esperando a que se complete una operacin de entrada/salida [Evento = dormir]. 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)]. Una vez, que el proceso ha estado durmiendo en memoria secundaria, segn un evento despertar [Evento = despertar] puede pasar al estado listo para ejecutarse en memoria secundaria (rea de swap). El proceso est volviendo del modo kernel al modo usuario, pero el kernel se apropia del proceso y hace un cambio de contexto, pasando otro proceso a ejecutarse en modo usuario [Evento = requisar (cambio de contexto)]. Desde este estado puede pasar el proceso al estado de ejecutndose en modo usuario gracias a un evento de volver al modo usuario [Evento = volver al modo usuario]. Fin de ejecucin de un proceso pero sigue siendo referenciado en el sistema Llamada al sistema exitPgina 17 de 42

o

Requisado o expulsado o apropiado (7). o

o

Estado Zombie (9). o

Sistema Operativo

Diferencias entre Linux y Unix

[Evento = exit] y pasa a estado Zombie. El proceso ya no existe, pero deja para su proceso padre un registro que contiene el cdigo de salida y algunos datos estadsticos tales como los tiempos de ejecucin. El estado Zombie es el estado final de un proceso Estado de proceso ejecutndose en modo kernel [Evento = exit] Estado Zombie. o Recurso: tabla de procesos.

Pgina 18 de 42

Sistema Operativo

Diferencias entre Linux y Unix

Recordemos que existen dos niveles de ejecucin para un proceso: modo kernel (2) y modo usuario (1). Modo kernel (modo privilegiado). En este modo no se impone ninguna restriccin al kernel del sistema. El kernel podr: o o o Utilizar todas las instrucciones del procesador. Manipular toda la memoria. Dialogar directamente con (drivers) de dispositivos, ... todos los controladores

Modo usuario. Modo de ejecucin normal de un proceso. En este modo el proceso no posee ningn privilegio. o o o o o Ciertas instrucciones estn prohibidas. Slo tiene acceso a las zonas que se le han asignado al proceso. No puede interactuar con la mquina fsicas (hardware). Slo efecta operaciones en su entorno, sin interferir con los dems procesos. Puede ser interrumpido en cualquier momento, pero esto no obstaculiza su funcionamiento.

Recordemos tambin que un proceso que se ejecute en modo usuario no puede acceder directamente a los recursos de la mquina, para ello debe efectuar llamadas al sistema. Una llamada al sistema es una peticin transmitida por un proceso al kernel. El kernel trata la peticin en modo kernel, con todos los privilegios, y enva el resultado al proceso, que prosigue su ejecucin en modo usuario. Una llamada al sistema provoca un cambio: (1) el proceso ejecuta una instruccin del procesador que le hace pasar a modo kernel (interfaz de llamadas al sistema), (2) el kernel ejecuta una funcin de tratamiento vinculada a la llamada al sistema que ha efectuado, y (3) el proceso vuelve a modo usuario para proseguir con su ejecucin. De este modo, el propio proceso trata su llamada al sistema, ejecutando una llamada al kernel. Esta funcin que ejecuta el kernel, se supone que es fiable y puede ejecutarse en modo kernel.

Pgina 19 de 42

Sistema Operativo

Diferencias entre Linux y Unix

5..1..2 Ciicllo de Viida de un Proceso en Liinux.. Conjunto de 5 1 2 C c o de V da de un Proceso en L nux Conjunto de Estados ((Fiigura 2..2..)).. Estados F gura 2 2En Linux, un proceso o tarea, est representado por una estructura de datos task_struct. Linux mantiene una task, que es un vector lineal de punteros a cada estructura task_struct definida en un instante dado. La estructura task_struct contiene informacin de varios tipos: Estado. Representa el estado de ejecucin de un proceso (en ejecucin, interrumpible, no interrumpible, parado y zombi). Informacin de planificacin. Representa a la informacin necesaria para la planificacin de procesos en Linux. Un proceso puede ser normal o en tiempo real y tiene una prioridad. Los procesos en tiempo real se planifican antes que los procesos normales y se utilizan prioridades relativas dentro de cada categora. El tiempo en el que un proceso puede ejecutarse se controla mediante un contador. Identificadores. Cada proceso tiene un nico identificador de proceso, y tiene tambin identificadores de usuario y de grupo. Un identificador de grupo se utiliza para asignar privilegios de acceso a recursos de un grupo de usuarios. Comunicacin entre procesos. Linux soporta los mecanismo de IPC de UNIX Vnculos. Cada proceso incluye un vnculo con su proceso padre, vnculos con sus hermanos (procesos con el mismo padre) y vnculos con todos sus hijos. Tiempos y temporizadores. Incluye el instante de creacin del proceso y la cantidad de tiempo del procesador consumido hasta el instante. Un proceso puede tener tambin asociados uno o ms temporizadores de intervalo. Un proceso define un temporizador de intervalo mediante una llamada al sistema; cuando el tiempo termina se enva una seal al proceso. Un temporizador puede ser de un solo uso o peridico. Sistema de archivos. Incluye punteros a cualquier archivo abierto por el proceso. Memoria virtual. Define la memoria virtual asignada al proceso. Contexto especfico del procesador. La informacin de registros y pila que forma el contexto del proceso (espacio de direccionamiento del proceso).

Pgina 20 de 42

Sistema Operativo

Diferencias entre Linux y Unix

Los estados de ejecucin de un proceso Linux son los siguientes: n Ejecucin (TASK_RUNNING). El proceso es ejecutado por el procesador. Listo (TASK_RUNNING). El proceso podra ser ejecutado, pero otro proceso se est ejecutando en ese momento. Interumpible (TASK_INTERRUPTIBLE). Es un estado de bloqueo, en el cual el proceso espera un suceso, como la terminacin de una operacin de entrada/salida, liberacin de un recurso o una seal de otro proceso. No interumpible (TASK_UNINTERRUPTIBLE). Es otro estado de bloqueo. La diferencia entre ste y el estado Interumpible es que en un estado No Interumpible, un proceso espera directamente en una condicin de hardware y, por tanto, no acepta seales. Parado (TASK_STOPPED). El proceso ha sido detenido por una intervencin externa y slo puede reanudarse por una accin positiva de otro proceso. Por ejemplo, un proceso puede estar en estado Parado durante la ejecucin de un programa de depuracin. Zombi (TASK_ZOMBIE). El proceso ha terminado pero, por alguna razn, su estructura task debe permanecer an en la tabla de procesos.

Pgina 21 de 42

Sistema Operativo

Diferencias entre Linux y Unix

5.2 ESTRUCTURAS DE DATOS DEL SISTEMA PARA LA GESTIN DE PROCESOS.Todo proceso tiene asociada una entrada en la Tabla de Procesos y un rea de Usuario (u-Area). Estas dos estructuras van a describir el estado del proceso y le van a permitir al kernel su control. La Tabla de Procesos tiene campos que van a ser accesibles desde el kernel, pero los campos del rea de Usuario slo necesitan ser visibles por el proceso. Una posicin (entrada) por proceso. 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 ningn proceso tenga reservada un rea de usuario.

5.2.1 Tabla de Procesos.Cada proceso se referencia por un descriptor (descriptor del proceso). Este descriptor contiene los atributos del proceso, as como la informacin que permite gestionarlo.

5.2.2 Tabla de Procesos en Linux.En Linux, inicialmente, la Tabla de Procesos era un vector de tamao fijo de task_strcut , con lo que el nmero mximo de procesos estaba limitado. Actualmente, la Tabla de Procesos es realmente una lista doblemente enlazada mediante los punteros next_task y prev_task.

Estructura dell descriiptor de procesos en Liinux ((PCB = Estructura de descr ptor de procesos en L nux PCB = Process Controll Bllock)).. Process Contro B ockEn Linux el PCB (Process Control Block) es una estructura denominada task_strcut en el archivo include/linux/sched.h. En ella aparece tipo de informacin sobre cada uno de los procesos. Muchas partes del sistema operativo hacen uso de esta estructura de datos, por lo que es necesario conocer los campos ms importantes de task_struct. Para gestionar los procesos, el kernel, en general, divide (conceptualmente y en la implementacin) la informacin del proceso en dos apartados: la necesaria para localizarlo y planificarlo (Tabla de Procesos) y el resto de informaciones referentes la proceso (u-Area). Tabla de Procesos u-Area localizar el proceso y su u-Area; caracterizacin detallada del proceso.Pgina 22 de 42

Sistema Operativo

Diferencias entre Linux y Unix

Tabla de Procesos Global del Kernel (todos los procesos) Esttica (n entradas) Estado Localizacin de la u-Area Tamao del proceso Identificadores (grupos, seales) Evento en el que duerme Parmetros de planificacin Seales recibidas no atendidas Tiempos y recursos consumidos

u-Area Local, asociada al proceso (slo visible al proceso en ejecucin) Dinmica (solo para procesos en el sistema) Puntero a la tabla de procesos Identificadores (permisos), mscaras de permisos (create) Detalle de tiempos Accin ante seales Terminal asociada, cuotas de proceso y archivos Campo de error en llamadas al sistema Valor de retorno en llamadas al sistema Parmetros para E/S, Curr_dir y Root_dir, Tabla de archivos

5.3 ORGANIZACIN DE LA MEMORIA DEL SISTEMA.La memoria fsica de una mquina es direccionable desde el byte 0 hasta el byte que se corresponde con la memoria total de la mquina. En UNIX, el kernel genera direcciones para un proceso en un espacio de direcciones virtual dentro de un rango dado. No hay otros procesos en dicho rango de direcciones virtual no hay conflictos para el uso de la memoria entre procesos. La memoria es infinita. Unidad de gestin de memoria de la mquina. Direcciones virtuales Direcciones fsicas. Los subsistemas del kernel y del hardware (control del hardware) cooperan para realizar la traduccin de direcciones virtuales a fsicas subsistema de gestin de memoria.

Pgina 23 de 42

Sistema Operativo

Diferencias entre Linux y Unix

5..3..1 Asiignaciin de memoriia.. 5 3 1 As gnac n de memor aCuando un proceso empieza su ejecucin, sus segmentos (cdigo, datos y pila) poseen un tamao fijo. Sin embargo, existen funciones de asignacin y liberacin de memoria, que permiten a un proceso manipular variables cuyo nmero o tamao no es conocido en el momento de su compilacin asignacin y liberacin de memoria de forma dinmica (funciones malloc, calloc, realloc, free). Las asignaciones y liberaciones se efectan modificando el tamao del segmento de datos del proceso. Cuando debe asignarse un dato, el segmento de datos aumenta en el nmero de bytes necesario y el dato puede almacenarse en el espacio de memoria as asignado. Cuando un dato situado al final del segmento de datos deja de utilizarse, su liberacin consiste simplemente en reducir el tamao del segmento.

Pgina 24 de 42

Sistema Operativo

Diferencias entre Linux y Unix

5..3..2.. Regiiones.. 5 3 2 R e g on e sUNIX divide el espacio de direcciones virtual del proceso en zonas lgicas. Como se ha expuesto anteriormente el espacio de direccionamiento de un proceso se compone de varias regiones de memoria. Cada regin de memoria se caracteriza por varios atributos: -Sus direcciones de inicio y fin. -Los derechos de acceso que tiene asociados. -El objeto asociado (por ejemplo, un archivo ejecutable que contiene el cdigo ejecutable para el proceso). Regin: rea contigua del espacio de direcciones virtuales de un proceso que puede ser tratada como un objeto a ser protegido o compartido. Como entidad, se puede tratar como un objeto cuyas operaciones principales son: + Creacin y eliminacin de regiones de memoria. + Proteger regiones de memoria. + Modificaciones para las protecciones de las regiones de memoria. + Reasignar regiones de memoria. + Compartir regiones de memoria. Concepto de Regin: Independiente de la poltica de gestin de memoria implementada en el sistema operativo. Las regiones de memoria contenidas en el espacio de direccionamiento de un proceso pueden determinarse mostrando el contenido del archivo maps, situado en el directorio de cada proceso en el sistema de archivos /proc.

5..3..3.. Pgiinas y Tabllas de Pgiinas.. 5 3 3 Pg nas y Tab as de Pg nasUNIX utiliza los mecanismos de memoria virtual proporcionados por el procesador sobre el que se ejecuta (paginacin y segmentacin). Las direcciones manipuladas por el kernel y los procesos son direcciones lgicas y el procesador junto con el sistema operativo efecta una conversin para transformar una direccin lgica en direccin fsica en memoria principal. Ahora, vamos a presentar como modelo de trabajo un esquema de gestin de memoria por Pginas (bloques de memoria de igual tamao [512B...4KB], cuyo formato de direccin es del tipo (pgina, desplazamiento). El kernel asigna pginas a las regiones (sin continuidad ni orden) lo que le proporciona gran flexibilidad, con un nivel controlado de fragmentacin (en la ltima

Pgina 25 de 42

Sistema Operativo

Diferencias entre Linux y Unix

pgina de cada regin) y un coste razonable de gestin (memoria para las tablas). La idea en que se basa la memoria virtual es que el tamao combinado del cdigo, datos y pila puede exceder la cantidad de memoria fsica disponible. El sistema operativo mantiene en memoria principal las partes del programa que actualmente se estn utilizando y el resto en disco. La memoria virtual tambin puede funcionar en un sistema de tiempo compartido, manteniendo segmentos de muchos programas en memoria a la vez. Mientras que un programa est esperando que se traiga a la memoria principal una de sus partes, est esperando una operacin de E/S y no puede ejecutarse, as que puede otorgarse la CPU a otro proceso, lo mismo que cualquier otro sistema de tiempo compartido.

Pgina 26 de 42

Sistema Operativo

Diferencias entre Linux y Unix

5..3..4 Tablla de pgiinas gestiionadas por Liinux 3 niveles. Linux 5 3 4 Tab a de pg nas gest onadas por L nux

gestiona la memoria central y las tablas de pginas utilizadas para convertir las direcciones virtuales en direcciones fsicas. Implementa una gestin de la memoria que es ampliamente independiente del procesador sobre el que se ejecuta. En realidad, la gestin de la memoria implementada por Linux considera que dispone de una tabla de pginas a tres niveles: + El directorio global de tablas pginas (page global directory) cuyas entradas contienen las direcciones de pginas que contienen tablas intermedias. + El directorio intermedio de tablas pginas (page middle directory) cuyas entradas contienen las direcciones de las pginas que contienen las tablas de pginas. + Las tablas de pginas (page table) cuyas entradas contienen las direcciones de pginas de memoria que contienen el cdigo o los datos utilizados por el kernel o los procesos de usuario. Este modelo no siempre se corresponde al procesador sobre el cual Linux se ejecuta (los procesadores x86, utilizan una tabla de pginas que slo posee dos niveles). El kernel efecta una correspondencia entre el modelo implementado por el procesador y el modelo de Linux (en los procesadores x86, el kernel considera que la tabla intermedia slo tiene una entrada).

5.4 SINCRONIZACIN DE PROCESOS EN LINUX.En un instante dado, slo un proceso puede ejecutarse en modo kernel. Aunque es posible que se apliquen interrupciones hardware y software a este proceso, Linux no provoca la planificacin (scheduler) si el proceso actual est activo en modo kernel. Un proceso que se ejecuta en modo kernel puede provocar, sin embargo, un cambio del proceso actual suspendiendo su ejecucin (dormir). Esta suspensin voluntaria se debePgina 27 de 42

Sistema Operativo

Diferencias entre Linux y Unix

generalmente a la espera de un evento, tal como el fin de una entrada/salida o la terminacin de un proceso hijo. Linux proporciona varios mecanismos que permiten a los procesos sincronizarse en modo kernel (implementadas en el cdigo del kernel = servicios internos): las bottom-halves, los temporizadores (timers), las colas de tareas, las colas de espera y los semforos (control de acceso a un recurso).

6. Gestin de la memoriaLa memoria es uno de los recursos ms valiosos que gestiona el sistema operativo. Uno de los elementos principales que caracterizan un proceso es la memoria que utiliza. sta est lgicamente 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). Un proceso no puede acceder, al espacio de memoria asignado a otro proceso, lo cual es imprescindible para la seguridad y estabilidad del sistema. El direccionamiento es una parte importante de la gestin de memoria, puesto que influye mucho en la visin del mismo por parte de un proceso, como en el aprovechamiento del hardware y el rendimiento del sistema. En Linux, adems, un proceso tiene dos espacios de memoria: el espacio de memoria del usuario, nico para ese proceso, y el espacio de memoria del kernel, idntico en todos los procesos.

6.1 GESTIN DE MEMORIA EN UNIXPuesto que UNIX se ide para ser independiente de la mquina, su esquema de gestin de memoria varia de un sistema a otro. Las primeras versiones de UNIX simplemente empleaban particiones variables sin ningn esquema de memoria virtual. Las implementaciones actuales, incluida SVR4, utilizan memoria virtual paginada. En SVR4 existen actualmente dos esquemas de gestin de memoria separados. El sistema de paginacin ofrece una memoria virtual que asigna marcos de pgina en la memoria principal a los procesos y tambin asigna marcos de pgina a los buffers (memorias intermedias) de los bloques de disco. Aunque esto es un esquema de gestin de memoria efectiva para procesos de usuario y de E/S de disco, un esquema de memoria virtual paginado se adapta peor a la gestin de asignacin de memoria para el kernel, y para este ltimo propsito se utiliza un gestor de memoria del kernel.

Pgina 28 de 42

Sistema Operativo

Diferencias entre Linux y Unix

6..1..1.. Pagiinaciin por Demanda 6 1 1 Pag nac n por DemandaHardware: arquitectura basada en pginas y CPU instrucciones rearrancables Soporta que el kernel implemente un algoritmo de demanda de pginas. Un proceso no tiene que caber entero en memoria fsica para ejecutarse. La carga en memoria principal de una parte de un proceso relevante se hace de forma dinmica. Transparente a programas de usuario excepto por el tamao virtual permisible a proceso (controlado por el kernel). Working Set (conjunto de trabajo) El conjunto de trabajo de un proceso en un instante virtual t y con un parmetro D, denominado W(t, D), es el conjunto de pginas a las que el proceso ha hecho referencia en las ltimas D unidades de tiempo virtual, siendo el tiempo virtual el tiempo que transcurre mientras el proceso est realmente en ejecucin. Si un proceso direcciona una pgina que no pertenece al Working Set provoca una falta de pgina, entonces el kernel actualiza el Working Set, leyendo pginas desde memoria secundaria si es necesario.

6..1..2 Estructuras de Datos para Pagiinaciin por Demanda 6 1 2 Estructuras de Datos para Pag nac n por Demanda ((UNIX)) UNIXEstructuras de datos para la gestin de memoria a bajo nivel y demanda de pginas (sistema de paginacin): Tabla de pginas Normalmente, hay una tabla por proceso, con una entrada para cada pgina de la memoria virtual del proceso. Descriptores de bloques de disco Asociado a cada pgina de un proceso hay una entrada en la tabla que describe la copia en el disco de la pgina virtual. Tabla de marcos de pgina (pfdata) Describe cada marca de la memoria real y est indexada por el nmero de marco. Tabla de uso de swap Existe una tabla de uso de swap por cada dispositivo de intercambio, con una entrada para cada pgina en dicho dispositivo. El kernel asigna espacio para pfdata una vez durante la vida del sistema, aunque para las otras estructuras le asigna y desasigna espacio dinmicamente. Cada regin contiene tablas de pginas para acceder a memoria fsica. Sistema de paginacin de UNIX System V. El kernel evita copiar la pgina, incrementa el contador de referencia regiones compartidas y para las regiones privadas asigna una nueva entrada en la tabla de regiones y tabla de pginas. Adems, el kernel examina cada entrada en la tabla de regiones del proceso padre: Si la pgina es vlida: (1) Incrementa el contador dePgina 29 de 42

Sistema Operativo

Diferencias entre Linux y Unix

referencia en la entrada de la tabla de marcos de pginas (pfdata), (2) Si la pgina existe en un dispositivo de swap, entonces contador de referencias de la tabla de uso del swap para pgina se incrementa en (Figura 3.8, fork en demanda de pginas), referencias a pgina a travs de ambas regiones; (3) Si un proceso escribe en ella (pgina) kernel crea versin privada el kernel pone bit Copia en escritura = 1 para cada entrada de la tabla de pginas en regiones privadas del proceso padre y del proceso hijo durante el fork.

Pgina 30 de 42

Sistema Operativo

Diferencias entre Linux y Unix

6.2 GESTIN DE MEMORIA EN LINUXLinux comparte muchas de las caractersticas de los esquemas de gestin de memoria de otras implementaciones UNIX, pero tiene sus caractersticas propias y nicas, aunque hay que destacar que el esquema de gestin de memoria de Linux es bastante complejo. En lo que respecta a memoria virtual, el direccionamiento de memoria virtual de Linux, hace uso de una estructura de tabla de pginas con tres niveles, formada por los siguientes tipos de tablas (cada tabla individual es del tamao de una pgina): (1) Directorio de pginas un proceso activo tiene un solo directorio de pginas que es del tamao de una pgina. Cada entrada en el directorio de pginas apunta a una pgina del directorio intermedio de pginas. Para un proceso activo, el directorio de pginas tiene que estar en la memoria principal; (2) Directorio intermedio de pginas este directorio puede ocupar varias pginas y cada entrada de este directorio apunta a una pgina de la tabla de pginas; (3) Tabla de pginas esta tabla de pginas tambin puede ocupar varias pginas, y cada entrada de la tabla de pgina hace referencia a una tabla virtual del proceso. Para utilizar esta estructura de la tabla de pginas a tres niveles, una direccin virtual en Linux se ve como un conjunto de cuatro campos. El campo ms a la izquierda (ms significativo) se utiliza como ndice en el directorio de pginas. El siguiente campo sirve como ndice en el directorio intermedio de pginas. El tercer campo sirve como ndice en la tabla de pginas. Y el cuarto y ltimo campo, indica el desplazamiento dentro de la pgina seleccionada de la memoria. La estructura de tabla de pgina en Linux es independiente de la plataforma y fue diseada para ajustarse al procesador Alpha de 64 bits, el cual proporciona soporte de hardware para los tres niveles de paginacin. Con direcciones de 64 bits, el uso de slo dos niveles de pginas en el procesador Alpha generara tablas de pginas y directorios muy grandes. Los 32 bits de la arquitectura i386 tienen un mecanismo de paginacin a dos niveles en su hardware. El software de Linux se ajusta al esquema de dos niveles definiendo el tamao del directorio intermedio como uno. Para la asignacin de pginas y aumentar la eficiencia de cargar y descargar pginas a y desde la memoria principal, Linux define un mecanismo para tratar bloques de pginas contiguos correspondientes a bloques de marcos de pginas contiguos. Pare este propsito, se utiliza el Buddy System. El kernel mantiene una lista de grupos de marcos de pgina contiguos de tamao fijo; un grupo puede estar formado por 1, 2, 3, 8, 16 o 32 marcos de pginas. Como las pginas se asignan y liberan en la memoria principal, los grupos se dividen y se intercalan utilizando el algoritmo de los colegas (buddy algorithm). El algoritmo de reemplazo de pginas de Linux se basa en el algoritmo del reloj (clock). En el algoritmo de reloj estndar, se asocia un bit de uso y un bit de modificacin a cada pgina de la memoria principal. En el esquemaPgina 31 de 42

Sistema Operativo

Diferencias entre Linux y Unix

de Linux, una variable de edad de 8 bits sustituye al bit de uso. Cada vez que se accede a una pgina, se incrementa la variable edad, Linux recorre peridicamente la reserva de pginas globales y disminuye la variable de edad de cada pgina cuando rota por todas las pginas de la memoria principal. Una pgina con un envejecimiento 0 es una pgina vieja que no se ha referenciado en bastante tiempo y es la mejor candidata para el reemplazo. Cuando mayor valor de edad, ms frecuentemente se ha usado la pgina recientemente y menos elegible es para el reemplazo. De esta forma, el algoritmo de reemplazo de pginas de Linux es una aproximacin de la poltica LRU. Los fundamentos de asignacin de memoria al kernel de Linux es el mecanismo de asignacin de pginas utilizado para la gestin de memoria virtual de usuario. 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 ms pginas. Puesto que la mnima cantidad de memoria que se puede asignar de esta forma es una pgina, el gestor de pginas solamente podra ser ineficiente si el kernel requiere pequeos trozos de memoria a corto plazo y en tamaos irregulares. Para gestionar a estas pequeas asignaciones, Linux utiliza un esquema conocido como asignacin por fragmentos (slab allocation) dentro de una pgina asignada. En un procesador i386, el tamao de pgina es de 4Kbytes y los fragmentos que se pueden asignar dentro de una pgina pueden ser de 32, 64, 128, 252, 508, 2040 y 4080 bytes. La asignacin de fragmentos es relativamente compleja, en general, Linux mantiene un conjunto de listas enlazadas, una por cada tamao de fragmento. Los fragmentos pueden dividirse y agregarse de forma similar al algoritmo de los colegas (buddy algorithm) y se mueve entre las listas en funcin de ello.

6..2..1 Diirecciionamiiento de Memoriia en Liinux 6 2 1 D recc onam ento de Memor a en L nuxLa memoria es uno de los recursos fundamentales para un proceso. El sistema operativo debe ofrecer la memoria a todos los procesos por igual de una forma sencilla y uniforme. Al mismo tiempo, el sistema operativo debe tratar con el hardware real para realizar dicha funcin, aprovechndolo al mximo. El direccionamiento es una parte importante de la gestin de memoria, puesto que influye mucho tanto en la visin de la misma por parte de un proceso, como en el aprovechamiento del hardware y el rendimiento del sistema. Desde el punto de vista de la arquitectura, el sistema operativo suele tener asistencia del hardware para realizar la gestin memoria: (1) Memory Management Unit (MMU), unidad que realiza, en el i386, segmentacin y paginacin; (2) Bits reservados en selectores de segmento; (3) Bits reservados en descriptores de pgina; (4) Bits de proteccin. Sin embargo, el sistema operativo es libre de usar o no dichos recursos. Por ejemplo, la segmentacin de los i386 no se emplea con toda su potencia en Linux. Por

Pgina 32 de 42

Sistema Operativo

Diferencias entre Linux y Unix

otro lado, el sistema operativo debe suplir carencias del hardware si es posible. Por ejemplo, usando bits disponibles o con tcnicas ms sofisticadas. Desde el punto de vista del proceso, son deseables ciertas caractersticas relacionadas con el direccionamiento: (1) Proteccin. La memoria de un proceso debe estar separada de la memoria de los dems procesos. Salvo para threads del mismo proceso. En Linux un proceso realmente tiene un espacio de direcciones de usuario, que es propio, y un espacio de direcciones del kernel, que comparte con todos los procesos. (2) Memoria virtual. El proceso debe tener la ilusin de estar solo en el sistema. Espacio de direcciones contiguo y que comienza en 0. Esto facilita el trabajo de los compiladores. Otras caractersticas de la gestin de memoria tambin son deseables, si bien estn menos relacionadas con el direccionamiento: (1) Ofrecer al proceso ms memoria de la que hay fsicamente disponible. Se emplean tcnicas de swapping y paginacin por demanda. (2) Aprovechar la memoria mediante tcnicas Copy-onwrite . (3) Mapeado de ficheros sobre memoria. (4) En general, mejorar el rendimiento del sistema mediante diversas tcnicas a la hora de asignar o liberar memoria (Buddy system, Slab allocator, caches, etc).

6..2..2.. Segmentaciin en Liinux 6 2 2 Segmentac n en L nuxLinux no aprovecha la segmentacin del i386. Sin embargo, no puede desactivarla, la utiliza de una forma muy limitada. Se ha preferido la paginacin sobre la segmentacin porque: (1) La gestin de memoria es ms simple cuando todos los procesos usan los mismos valores de segmentos, es decir, tienen las mismas direcciones lineales. (2) Un objetivo de Linux es la portabilidad, y muchos procesadores soportan la segmentacin de forma muy limitada. Para hacer uso de la segmentacin, se programa adecuadamente la GDT = Tabla de Descriptores Global. Esta tabla es implementada por el array gdt_table referenciada por la variable gdt, que se encuentra definido en el archivo arch/i386/kernel/head.S. Los segmentos que se definen se superponen en el espacio de direcciones lineal. Como se emplean muy pocos segmentos, solo es necesaria la GDT. La LDT no se usa por el kernel salvo que lo requiera un proceso, aunque existe una llamada al sistema que permite crear sus propias LDTs. Los segmentos empleados en Linux son los siguientes: Segmento de cdigo del kernel. Base: 0x00000000, Lmite (limit): 0xfffff, G = 1 (granularidad en pginas),Pgina 33 de 42

Sistema Operativo

Diferencias entre Linux y Unix

S = 1 (Segmento normal de cdigo o datos), Type = 0xa (Cdigo, puede ser ledo y ejecutado), DPL = 0 (Modo kernel para el nivel de privilegio del descriptor), D/B = 1 (Offset de 32 bits), Abarca desde 0 a 232 1, y el selector de segmentose define por la macro __KERNEL_CS. Para direccionar el segmento, el kernel se tiene que cargar el valor asociado a esta macro en el registro CS. Segmento de datos del kernel: Base: 0x00000000, Lmite (limit): 0xfffff, G = 1 (granularidad en pginas), S = 1 (Segmento normal de cdigo o datos), Type = 0x2 (Datos, puede ser ledo y escrito), DPL = 0 (Modo kernel), D/B = 1 (Offset de 32 bits), dntico al descriptor de segmento anterior salvo por el tipo, y se define por la macro __KERNEL_DS. Segmento de cdigo de usuario: Base: 0x00000000, Lmite: 0xfffff G = 1 (granularidad en pginas) S = 1 (Segmento normal de cdigo o datos) Type = 0xa (Cdigo, puede ser ledo y ejecutado) DPL = 3 (Modo usuario) D/B = 1 (Offset de 32 bits) El descriptor de segmento se define por la macro __USER_CS. Segmento de datos de usuario: Base: 0x00000000, Lmite: 0xfffff, G = 1 (granularidad en pginas), S = 1 (Segmento normal de cdigo o datos), Type = 0x2 (Datos, puede ser ledo y escrito), DPL = 3 (Modo usuario), D/B = 1 (Offset de 32 bits), El descriptor de segmento se define por la macro __USER_DS.Pgina 34 de 42

Sistema Operativo

Diferencias entre Linux y Unix

Un Segmento de Estado de Tarea (TSS) para cada proceso. El campo base del descriptor de TSS contiene la direccin del campo tss del descriptor de proceso correspondiente.

6..2..3 Pagiinaciin en Liinux 6 2 3 Pag nac n en L nuxPara tener en cuenta arquitecturas de 64 bits, la paginacin en Linux tiene 3 niveles de tablas de pginas en lugar de 2. En los i386, la tabla de directorio intermedio de tablas de pginas se obvia. Linux gestiona la memoria central y las tablas de pginas utilizadas para convertir las direcciones lineales (virtuales) en direcciones fsicas. Implementa una gestin de la memoria que es ampliamente independiente del procesador sobre el que se ejecuta. En realidad, la gestin de la memoria implementada por Linux considera que dispone de una tabla de pginas a tres niveles: (1) directorio global de tablas de pginas (page global dirertory) cuyas entradas contienen las direcciones de pginas que contienen tablas intermedias; (2) directorio intermedio de tablas de pginas (page middle directory) cuyas entradas contienen las direcciones de pginas que contienen tablas de pginas; (3) las tablas de pginas (page table) cuyas entradas contienen las direcciones de pginas de memoria que contienen el cdigo o los datos utilizados por el kernel o los procesos de usuario. Evidentemente, este modelo no siempre corresponde al procesador sobre el cual Linux se ejecuta (los procesadores i386, por ejemplo, utilizan una tabla de pginas que slo posee dos niveles). El kernel efecta una correspondencia entre el modelo implementado por el procesador y el modelo de Linux. En los procesadores i386, por ejemplo, el kernel considera que el directorio intermedio de tablas de pginas slo contiene una entrada. La MMU de reinicializa con un nuevo directorio de tablas de pginas para cada proceso. As se consiguen aislar espacios de direcciones. Se emplean los bits User/Supervisor y Read/Write para la proteccin. Se emplean los anteriores bits junto con los bits Dirty y Accessed para manejar las diferentes posibilidades de falta de pgina. Linux depende fuertemente de la paginacin para la gestin de procesos. De hecho, la traduccin automtica de direccin lineal a direccin fsica hace posible los siguientes objetivos: (1) Asignar un espacio de direcciones fsicas diferentes a cada proceso, asegurando una proteccin eficiente ante errores de direccionamiento. (2) Distinguir pginas (grupos de datos) de marcos de pginas (direcciones fsicas en memoria principal). Esto permite a la misma pgina que se almacene en un marco de pgina, entonces guardar en disco y despus recargarla en un marco de pgina diferente. Esto es muy importante para el mecanismo de memoria virtual. En Linux el espacio de direcciones lineales se divide en dos partes: (1) Direcciones lineales desde 0x0000000 a PAGE_OFFSET l, accesibles enPgina 35 de 42

Sistema Operativo

Diferencias entre Linux y Unix

cualquier modo (usuario o kernel). (2) Direcciones lineales desde PAGE_OFFSET hasta 0xffffffff, slo en modo kernel. Generalmente PAGE_OFFSET se inicializa a 0xc0000000 (3Gb). Las primeras 768 entradas del directorio de tablas de pginas (que mapean los primeros 3Gb) dependen de cada proceso. El resto de entradas son las mismas para todos los procesos. El mapeado final proyecta las direcciones lineales empezando en PAGE_OFFSET en direcciones fsicas empezando en 0. Toda la memoria fsica debe ser accesible por el kernel. ste mantiene un conjunto de tablas de pginas para su propio uso, cuya raz es el master kernel Page Global Directory. Despus de la inicializacin del sistema este conjunto de tablas de pginas no son utilizadas nunca por ningn proceso o thread del kernel.

7. Seguridad en UnixDentro de la familia Unix existen una serie de sistemas denominados 'Unix seguros' o 'Unix fiables' (Trusted Unix); se trata de sistemas con excelentes sistemas de control, evaluados por la National Security Agency (NSA) estadounidense y clasificados en niveles seguros (B o A). Entre estos Unix seguros podemos encontrar AT&T System V/MLS y OSF/1 (B1), Trusted Xenix (B2) y XTS-300 STOP 4.1 (B3), considerados los sistemas operativos ms seguros del mundo (siempre segn la NSA). La gran mayora de Unices (Solaris, AIX...) estn clasificados como C2, y algunos otros, como Linux, se consideran sistemas C2 de facto: al no tener una empresa que pague el proceso de evaluacin de la NSA no estn catalogados, aunque puedan implementar todos los mecanismos de los sistemas C2.

7.1 Permisos de un archivoLos permisos de cada archivo son la proteccin ms bsica de estos objetos del sistema operativo; definen quin puede acceder a cada uno de ellos, y de qu forma puede hacerlo. Una r indica un permiso de lectura, una w de escritura, una x de ejecucin y un '-' indica que el permisoPgina 36 de 42

Sistema Operativo

Diferencias entre Linux y Unix

correspondiente no est activado. As, si en una de las ternas tenemos los caracteres rwx, el usuario o usuarios afectados por esa terna tiene o tienen permisos para realizar cualquier operacin sobre el archivo. De qu usuarios se trata en cada caso? La primera terna afecta al propietario del archivo, 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.

7.2 Atributos de los archivos en ext2fs.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. Estos atributos son los mostrados en la siguiente tabla.

A S a c i d s u

Dont 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 slo se puede abrir en modo escritura para aadir datos. El atributo 'i' (archivo inmutable); un archivo con este flag activado no se puede modificar de ninguna forma, ni aadiendo datos ni borrndolos, ni eliminar el archivo. Los atributos s' y 'S'. Si borramos un archivo con el atributo 's' activo, el sistema va a rellenar sus bloques con ceros en lugar de efectuar un simple unlink(). Por su parte, el atributo 'S' sobre un archivo hace que los cambios sobre el archivo se escriban inmediatamente en el disco

7.3 CriptografaLa criptografa es la herramienta principal utilizada en la mayora de los sistemas de almacenamiento seguro; sin embargo, todos ellos plantean un grave problema: toda su seguridad reside en la clave de cifrado, de forma que el usuario se encuentra indefenso ante mtodos legales - o ilegales - que le puedan obligar a desvelar esta clave una vez que se ha determinado la presencia de informacin cifrada en un dispositivo de almacenamiento. Todos los expertos en criptografa coinciden en afirmar que los mtodos de ataque ms efectivos contra un criptosistema no son los efectuados contra el

Pgina 37 de 42

Sistema Operativo

Diferencias entre Linux y Unix

algoritmo, sino contra judiciales, etc...).

las

personas

(chantaje,

amenazas,

presiones

7.4 Almacenamiento seguroLa orden crypt permite cifrar y descifrar archivos en diferentes sistemas Unix; si no recibe parmetros lee los datos de la entrada estndar y los escribe en la salida estndar, por lo que seguramente habremos de redirigir ambas a los nombres de archivo adecuados. Un ejemplo simple de su uso puede ser el siguiente: $ crypt archivo.crypt Enter key: $ Para descifrar un archivo cifrado mediante crypt (por ejemplo, el anterior) utilizamos la misma orden y la misma clave: $ crypt salida.txt Enter key: $ PGP: Pretty Good Privacy El software PGP, desarrollado por el criptlogo estadounidense Phil Zimmermann, es mundialmente conocido como sistema de firma digital para correo electrnico. Aparte de esta funcin, PGP permite tambin el cifrado de archivos de forma convencional mediante criptografa simtrica; esta faceta de PGP convierte a este programa en una excelente herramienta para cifrar archivos que almacenamos en nuestro sistema; el modo de uso es el siguiente: anita:~$ pgp -c archivo.txt No configuration file found.

7.5 Copias de seguridadLas copias de seguridad del sistema son con frecuencia el nico mecanismo de recuperacin que poseen los administradores para restaurar una mquina que por cualquier motivo - no siempre se ha de tratar de un pirata que borra los discos - ha perdido datos. Por tanto, una correcta poltica para realizar, almacenar y, en caso de ser necesario, restaurar los backups es vital en la planificacin de seguridad de todo sistema. La herramienta clsica para realizar backups en entornos Unix es desde hace aos dump, que vuelca sistemas de archivos completos (una particin o una particin virtual en los sistemas que las soportan, como Solaris); restore se utiliza para recuperar archivos de esas copias. Se trataPgina 38 de 42

Sistema Operativo

Diferencias entre Linux y Unix

de una utilidad disponible en la mayora de clones del sistema operativo, potente (no diremos 'sencilla') y lo ms importante: las copias son completamente compatibles entre Unices, de forma que por ejemplo podemos restaurar un backup realizado en IRIX en un sistema HP-UX. Adems, la mayor parte de las versiones de dump permiten realizar copias de seguridad sobre mquinas remotas directamente desde lnea de rdenes.

7.6 Autenticacin de usuariosLos mtodos de autenticacin se suelen dividir en tres grandes categoras: Algo que el usuario sabe Algo que ste posee. Una caracterstica fsica del usuario o un acto involuntario del mismo. Esta ltima categora se conoce con el nombre de autenticacin biomtrica.

7.7 Seguridad del ncleoEl ncleo o kernel de un sistema Unix es la parte ms importante del mismo, hasta tal punto que en trminos puristas se considera al ncleo como el sistema operativo en s. Pero incluso si no lo consideramos as, y contemplamos al sistema operativo como el conjunto formado por el ncleo y una serie de herramientas (editor, compilador, enlazador, shell...), es innegable que el kernel es la parte del sistema ms importante, y con diferencia: mientras que las aplicaciones operan en el espacio de usuario, el ncleo siempre trabaja en el modo privilegiado del procesador (RING 0). Esto implica que no se le impone ninguna restriccin a la hora de ejecutarse: utiliza todas las instrucciones del procesador, direcciona toda la memoria, accede directamente al hardware (ms concretamente, a los manejadores de dispositivos), etc. De esta forma, un error en la programacin, o incluso en la configuracin del ncleo puede ser fatal para nuestro sistema. El archivo /etc/system En este archivo el administrador puede definir variables para el ncleo del sistema operativo, como el nmero mximo de archivos abiertos por un proceso o el uso de memoria compartida, semforos y mensajes para intercomunicacin entre procesos. Una negacin de servicio muy tpica en Unix es el consumo excesivo de recursos por parte de usuarios que lanzan - voluntaria o involuntariamente - demasiados procesos; y un pequeo error en el cdigo puede hacer que el sistema se vea parado por un exceso de procesos activos en la tabla, por lo que si deseamos asignar un valor mximo hemos de editar el archivo /etc/system e incluir una lnea como la siguiente: set maxuprc=60Pgina 39 de 42

Sistema Operativo

Diferencias entre Linux y Unix

De esta forma limitamos el nmero de procesos por usuario a 60, consiguiendo as que un error en un programa no sea capaz de detener la mquina. Un parmetro del sistema operativo especialmente importante, y que quizs nos interese modificar (sobre todo en mquinas con pocos recursos) es maxusers. Maxusers no hace referencia al nmero mximo de usuarios que pueden conectar simultneamente al sistema, sino que es un valor que escala a otros parmetros del ncleo (como max_nproc, nmero mximo de procesos en la tabla) o maxuprc. Para modificarlo, podemos incluir en /etc/system una lnea con el valor deseado, generalmente el tamao en MB de la memoria fsica de nuestra mquina: set maxusers=128

8. Seguridad en LinuxLinux es un sistema muy robusto e incorpora las caractersticas de seguridad comunes a todos los sistemas tipo Unix, a pesar de todo resulta fundamental dedicar cierto tiempo y recursos para conocer cules son sus debilidades y vas frecuentes de ataque y adoptar posteriorermente las medidas ms eficaces para contrarrestarlas. A menudo un sistema operativo es tan seguro como la astucia y habilidad de su administrador.

8..1 Seguriidad llocall 8 1 Segur dad ocaEn este aspecto de la seguridad, Linux dispone de todas las caractersticas de los sistemas Unix: un control de acceso a los usuarios verificando una pareja de usuario y clave; cada fichero y directorio tienen sus propietario y permisos. Por otro lado, la meta de la mayora de los ataques es conseguir acceso como root, lo que garantiza un control total sobre el sistema. 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, configuraciones deficientes de los servicios o el descifrado de claves cifradas. Incluso se utilizan tcnicas denominadas "ingeniera social", consistentes en convencer a ciertos usuarios para que suministren una informacin que debiera ser mantenida en secreto, como sus nombres de usuario y contraseas.

Pgina 40 de 42

Sistema Operativo

Diferencias entre Linux y Unix

9. BibliografaUnix - Wikipedia en espaolUNIX - la marca: desde el punto de vista legal, Unix es una marca de mercado. ... Resumiendo, la marca Unix no es propiedad de ninguna compaa. ... es.wikipedia.org/wiki/Unix

Sistema Operativo UNIX - Monografias.comEl sistema de archivos de Unix; esta basado en un modelo arborescente y recursivo, ... En el sistema operativo Unix los procesos pueden comunicarse ... www.monografias.com/trabajos/unix/unix.shtml - 78k

Unix y SeguridadInformacin sobre seguridad informtica en general y bajo entornos Unix en particular. Programacin bajo Unix. andercheran.aiind.upv.es/toni/

Documentacin sobre UnixLibro de libre distribucin "Seguridad en Unix y redes", curso de introduccin a este sistema, curso de administracin, enlaces y scripts tiles. andercheran.aiind.upv.es/toni/personal/ - 8k

CASO DE ESTUDIO: UNIXUnix es uno de los sistemas operativos ms ampliamente usados en computadoras ... Debido a las mltiples versiones en el mercado de UNIX, se comenzaron a ... www.tau.org.ar/base/lara. pue.udlap.mx/sistoper/capitulo8.html - 17k

Pgina 41 de 42

Sistema Operativo

Diferencias entre Linux y Unix

El rincn de LinuxEl rincon de LINUX es un servidor con informacion en castellano sobre Linux. www.linux-es.org/ - 14k -

Linux - Wikipedia en espaolEste artculo se refiere al sistema operativo Linux, para otros usos ver ... Linux es la denominacin de un sistema operativo y el nombre de un ncleo. ... es.wikipedia.org/wiki/Linux - 46k

:: Todo-Linux.com ::Noticias propias y enlazadas a Barrapunto y Slashdot, foros, chat, descarga de programas y documentacin. www.todo-linux.com/

Linux Para Todos - Un buen sitio donde empezar...Noticias, manuales y recursos Linux. ... Linux Para Todos invita a toda la comunidad del software libre, al evento XpoLinux 2005, que se llevar a cabo los ... www.linuxparatodos.net/ - 76k

Pgina 42 de 42