Vous êtes sur la page 1sur 81

4-6-2013

INSTITUTO TECNOLOGICO DE HERMOSILLO


SISTEMAS OPERATIVOS

INVESTIGACION LINUX O.S.

Maestro: Daniel Prez Prez

Jess Eduardo Daz Almada Luis Carlos Piri Ramos

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

INDICE
I. II. III. Objetivo...3 Marco terico..3 Desarrollo...4 1. Introduccin a Linux....4 1.1 Definicin y concepto....4 1.2 Funciones y caractersticas....4 1.3 Evolucin histrica.....6 1.4 Clasificacin.....8 1.5 Estructura: niveles o estratos de diseo...10 1.6 Ncleo...13 2. Administracin de procesos y del procesador en Linux ..16 2.1 Concepto de proceso.....16 2.2 Estados y transiciones de los procesos...18 2.3 Procesos ligeros: Hilos o hebras.....22 2.4 Concurrencia y secuenciabilidad....22 2.5 Niveles, objetivos y criterios de planificacin...26 2.6 Tcnicas de administracin del planificador...27 3. Administracin de la memoria en Linux....32 3.1 Poltica y filosofa......32 3.2 Memoria real......32 3.3 Organizacin de memoria virtual......34 3.4 Administracin de memoria virtual.....40 4. Administracin de entrada/salida en Linux....44 4.1 Dispositivos y manejadores de dispositivos: Device drivers...44 4.2 Mecanismos y funciones de los manejadores de dispositivos: Device drivers...45 4.3 Estructuras de datos para manejo de dispositivos ....51 4.4 Operaciones de Entrada/salida......56 5. Sistemas de archivos en Linux...60 5.1 Concepto.....60 5.2 Nocin de archivo real y virtual...60 5.3 Componentes de un sistema de archivos..63 5.4 Organizacin lgica y fsica..64 5.5 Mecanismos de acceso a los archivos..65 5.6 Manejo de espacio en memoria secundaria...65 5.7 Modelo jerrquico....67 5.8 Mecanismos de recuperacin en caso de falla ..67 6. Proteccin y seguridad en Linux..70 6.1 Concepto y objetivos de proteccin...70 6.2 Funciones del sistema de proteccin.71 6.3 Implantacin de matrices de acceso..77 6.4 Proteccin basada en el lenguaje....78 6.5 Concepto de seguridad...79 6.6 Clasificaciones de la seguridad...82 6.7 Validacin y amenazas al sistema.84 6.8 Cifrado....97 Conclusin...99 Bibliografa...100

IV. V.

4 de junio de 2013

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

I.OBJETIVO
El objetivo principal es elaborar una investigacin completa acerca de algn sistema operativo en particular, en este caso Linux; implementar cada punto de las unidades vistas durante todo el curso en este sistema operativo, como trabaja y funciona.

II.MARCO TEORICO
Sistema operativo
Es el programa (o software) ms importante de un ordenador. Para que funcionen los otros programas, cada ordenador de uso general debe tener un sistema operativo. Los sistemas operativos realizan tareas bsicas, tales como reconocimiento de la conexin del teclado, enviar la informacin a la pantalla, no perder de vista archivos y directorios en el disco, y controlar los dispositivos perifricos tales como impresoras, escner, etc (Mas adelante, 2005)

4 de junio de 2013

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

III.DESARROLLO

Introduccion a Linux.

1.1 Definicin y concepto de Linux


Linux es un sistema operativo de software libre (no es propiedad de ninguna persona o empresa), por ende no es necesario comprar una licencia para instalarlo y utilizarlo en un equipo informtico. Es un sistema multitarea, multiusuario, compatible con UNIX, y proporciona una interfaz de comandos y una interfaz grfica, que lo convierte un sistema muy atractivo y con estupendas perspectivas de futuro. El nombre de Linux proviene del nombre de su autor Linus y del sistema operativo UNIX. No obstante su verdadero nombre es GNU/Linux.

1.2 Funciones y caractersticas


CARACTERSTICAS Multitarea Describe la habilidad de ejecutar, aparentemente al mismo tiempo, numerosos programas sin obstaculizar la ejecucin de cada aplicacin. Esto se conoce como multitarea preferente, porque cada programa tiene garantizada la posibilidad de correr. Multiusuario Linux permite que ms de una sola persona pueda trabajar en la misma versin de la misma aplicacin de manera simultnea, desde las mismas terminales, o en terminales separadas.
4 de junio de 2013

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

Redes y Telecomunicaciones La superioridad de Linux sobre otros sistemas operativos es evidente en sus utileras para redes y comunicaciones. Ningn otro sistema operativo incluye capacidades para red tan estrechamente acopladas. Linux soporta las siguientes interfaces de red: ethernet, fddi, token ring, arcnet, X.25, ISDN, lneas seriales sncronas y asncronas. Internet Con Linux usted puede conectarse a Internet y al vasto mundo de informacin que esta red abarca. Correo Electrnico, Listas de Correo, Grupos de Inters, Bsqueda y Transferencia de Archivos, Gopher, WAIS, y por supuesto, World Wide Web. Interconectividad Usted puede conectar Linux a una red local, y convertirlo en servidor para MS-DOS, Windows, Windows para Trabajo en Grupo (WfW), Windows 95 y Macintosh por un costo muy por debajo de otros sistemas comerciales. Programacin Linux cuenta con un conjunto poderoso de herramientas para el desarrollo de programas: C, C++, ObjectiveC, Pascal, Fortran, BASIC, CLISP, SmallTalk, Ada, Perl, as como depuradores y bibliotecas compartidas de enlace dinmico (DLL). Portabilidad Linux fue diseado teniendo en cuenta la portabilidad de las aplicaciones. Linux es compatible con diversos estndares Unix, tales como System V, BSD y los estndares internacionales IEEE POSIX.1 e IEEE POSIX.2, facilitando el desarrollo de aplicaciones para mltiples plataformas. Ambiente Grfico Linux proporciona la capacidad de ejecutar aplicaciones grficas mediante una red heterognea al incorporar la revisin 6 del estndar X11 del MIT, conocido tambin simplemente como X-Window. Con el hardware adecuado, las Estaciones de Trabajo Linux son una alternativa de bajo costo a las Estaciones de Trabajo de alto rendimiento.

4 de junio de 2013

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

Poder RISC Si su organizacin necesita verdadero poder de cmputo Linux corre en computadoras basadas en microprocesadores RISC como Alpha AXP, Sparc, PowerPC y MIPS. FUNCIONES Sistema multitarea: En Linux es posible ejecutar varios programas a la vez sin necesidad de tener que parar la ejecucin de cada aplicacin. Sistema multiusuario: Varios usuarios pueden acceder a las aplicaciones y recursos del sistema Linux al mismo tiempo. Y, por supuesto, cada uno de ellos puede ejecutar varios programas a la vez (multitarea). Shells programables: Un shell conecta las rdenes de un usuario con el Kernel de Linux (el ncleo del sistema), y al ser programables se puede modificar para adaptarlo a tus necesidades. Por ejemplo, es muy til para realizar procesos en segundo plano. Independencia de dispositivos: Linux admite cualquier tipo de dispositivo (mdems, impresoras) gracias a que cada una vez instalado uno nuevo, se aade al Kernel el enlace o controlador necesario con el dispositivo, haciendo que el Kernel y el enlace se fusionen. Linux posee una gran adaptabilidad y no se encuentra limitado como otros sistemas operativos. Comunicaciones: Linux es el sistema ms flexible para poder conectarse a cualquier ordenador del mundo. Internet se cre y desarrollo dentro del mundo de Unix, y por lo tanto Linux tiene las mayores capacidades para navegar, ya que Unix y Linux son sistemas prcticamente idnticos. Con Linux podr montar un servidor en su propia casa sin tener que pagar las enormes cantidades de dinero que piden otros sistemas.

1.3 Evolucin histrica


Linux nace de la mano de un estudiante de informtica de la ciudad de Helsinki en 1991, Linus Torvalds. Linus comienza con el sistema operativo Minix (hecho por Richard Tanenbaum) para conseguir explorar las posibilidades del microprocesador 386 y as comienza la andanza de Linux. Posteriormente, Linus decide reescribir su operativo desde cero, sin usar para nada Minix. Despus de peticiones de ayuda a la comunidad de internet para resolver sus numerosas dudas y de agrias discusiones con Tanenbaum en 1991 consigue sacar una versin del kernel que se puedo considerar usable. Esta versin

4 de junio de 2013

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

fue puesta a disposicin de todo el mundo, mucha gente la descarg y la prob y mucha gente consider que poda aportar algo a este sistema operativo y se sum al desarrollo del mismo. Linux fue mejorando paulatinamente desde ese ao hasta hoy en da. As mismo mucha gente convirti a Linux en su plataforma de desarrollo de software escribiendo cada vez ms y ms aplicaciones para l y dotando al operativo con programas que resolviesen todos los problemas que pueden ser atacados con un ordenador personal. Otra gran huella en la historia de la evolucin de Linux hasta lo que es hoy en da, es la aparicin de las distribuciones. Las distribuciones son paquetes software que bsicamente incluyen el kernel, aplicaciones para el kernel y mtodos de instalacin y mantenimiento del sistema operativo como tambin de las aplicaciones. Las primeras distribuciones que surgieron fueron Slackware y RedHat la ltima. Posteriormente surgen otro tipo de distribuciones como Suse, Mandrake, Caldera, OpenLinux, etc... Que intentan hacer nuevas contribuciones en cuanto a instalacin y manejo, casi todas ella comerciales. Mencin aparte la distribucin Deban. Deban es la nica distribucin totalmente libre y en la que solo caben programas totalmente libres. Deban es mantenida por miles de voluntarios que mantienen su software y mejoran sus sistema de instalacin da tras da para dar un resultado cada vez ms elaborado. La historia de Linux est fuertemente vinculada a la del proyecto GNU. Hacia 1991, cuando la primera versin del ncleo Linux fue liberada, el proyecto GNU haba producido varios de los componentes del sistema operativo, incluyendo un intrprete de comandos, una biblioteca C y un compilador, pero an no contaba con el ncleo que permitiera complementar el sistema operativo. Entonces, el ncleo creado por Linus Torvalds, llen el hueco final que el sistema operativo GNU exiga.

4 de junio de 2013

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

1.4

Clasificacin de las distribuciones de Linux

1. Linux para los novatos Estos son las distribuciones para los novatos o recin llegados de Linux, as como para los usuarios que no tienen demasiado tiempo para modificar y configurar sus ordenadores.

Ubuntu Tal vez la distribucin de Linux ms famosa, y por lo general el primero ve a cualquier recin llegado. Casa de la Moneda de Linux Mint, ganado mucha popularidad, que se basa en Ubuntu, pero viene con soporte para MP3 y flash y otras cosas no es compatible con Ubuntu por defecto. PCLinuxOS Esta es otra distribucin de Linux orientada a principiantes, ms o menos como Casa de la Moneda, se trata de sacarlo de la caja, con el apoyo de una gran cantidad de hardware. Mandriva es realmente una gran distribucin, lo us durante ms de un ao, y en ese tiempo, cuando yo lo estaba usando, que era el ms avanzado de Linux de escritorio que he probado. Se cont con el apoyo de una plataforma hardware muchas otras distribuciones no en ese momento.

4 de junio de 2013

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

2.

Los usuarios intermedios

Fedora, es de alguna manera el entorno limitado de tipos de RedHat, es de escritorio orientado, y por lo general los paquetes de software sangrado borde. Tambin hacen un montn de contribucin a la comunidad Linux. Deban Linux se adapta a todas las secciones, si se instala desde el DVD, o de algunos de sus Deban LiveCD, usted puede tener algo como Ubuntu.

3.

Los usuarios avanzados

La distribucin de estas secciones no est dirigida para el recin llegado, pero desde luego no tiene por qu ser un experto en Linux con el fin de instalar y usar.

Slackware algunos dirs Slackware no es para usuarios avanzados, y que es parcialmente cierto, si usted lo instala, fuera de la caja, que tiene casi todo lo que necesita para trabajar, en un servidor o entorno de escritorio, y si es todo lo que necesita, entonces estn bien, pero si desea instalar ms software, usted puede estar en problemas. Gentoo El problema es que con tanto poder en sus dedos, puede arruinar las cosas fcilmente. La comunidad es un probable de lo mejor, y la documentacin es sin duda el mejor en el mundo Linux. Si usted realmente tiene el tiempo y te gusta Linux un poco ms, debe estar ejecutando Gentoo. Arch Linux Arch Linux, esta distribucin se basa en el principio KISS . Tambin utiliza los scripts de inicio al estilo BSD, que para m son mucho ms fciles de usar que los de System V.

4. Linux para los servidores Vamos a enumerar aqu algunas de las mejores distribuciones para servidores, una vez ms, en mi opinin.

CentOS Si no les importa tener software antiguo CentOS es una distribucin de buen servidor, puede utilizar centosplus, pero entonces usted podra estar perdiendo una de las fortalezas de CentOS, que es la estabilidad y la seguridad.

4 de junio de 2013

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

Slackware se han centrado en la seguridad de hard rock y la estabilidad. Tambin es muy simple y fcil de administrador, que es ideal para el campo Servidor. Debian Tiene una gran cantidad de aplicaciones, tal vez usted no ser capaz de encontrar una aplicacin de servidor que no est en sus repositorios oficiales.

1.5 Estructura: niveles o estratos de diseo


En Linux existen diversos directorios y subdirectorios que cumplen esta labor. Libreras, binarios, programas instalados, archivos temporales, etc., se encuentran contenidos en sitios especficos donde podemos ubicarlos si precisamos en algn momento de ellos.

4 de junio de 2013

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

A continuacin dar una breve resea sobre ellos:

/ Directorio raz donde se encuentran todos los directorios y archivos de una manera lgica. /bin En este directorio podemos encontrar todos los archivos ejecutables del sistema. En l estn muchos de los comandos que usamos habitualmente como por ejemplo ls, cat, more, cp, tar adems de los de tus programas. /home Aqu se encuentran todos los archivos de los usuarios del sistema. Si mi nombre de usuario es kiefer seria /home/kiefer /media Generalmente aqu es donde se montan los Cds y Dvds adems de los SticksUSB y discos duros externos. /sbin Contiene archivos ejecutables que por lo general son comandos usados para la administracin del sistema. Los comandos mount, halt, umount y shutdown son algunos de ellos. /usr Contiene varios archivos y subdirectorio importantes como pueden ser las configuraciones del entorno grafico X, fuentes del kernel, librerias, juegos y un largo etc. /boot Todos los archivos necesarios para el arranque incluidos el cargador Grub y los kernels disponibles. /mnt Directorio vaco, normalmente se suele usar para montajes de unidades temporales que deseamos cargar en ese momento.

4 de junio de 2013

10

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

/var Contiene varios archivos que definen el sistema as como archivos log que almacenan cada movimiento del sistema como por ejemplo el fichero /var/log/messages. /cdrom Normalmente es un enlace simblico hacia /media/cdrom /dev Aqu es donde estn todos los drivers y los dispositivos, estos se identifican en forma de archivo. /lib Contiene librerias para C y otros lenguajes de programacin. /proc Directorio que contiene informacin sobre diferentes partes del sistema, cpu, discos, tiempo uptime, irqs, memoria, etc /opt En este directorio se suelen almacenar todos los archivos de una instalacin fuera de los repositorios como puede ser cuando instalamos un .deb /etc Contiene prcticamente todos los archivos de configuracin del equipo y los demonios de inicio en /etc/init.d entre otras cosas. /lost+found Directorio especfico para archivos perdidos. Cada particin tiene el suyo propio independientemente. /root Directorio particular del superusuario del sistema (root)

4 de junio de 2013

11

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

/tmp Directorio temporal que pueden usar todos los usuarios para archivos temporales y del sistema. En Linux no existen unidades, todo se monta como carpetas que empiezan en el directorio principal (tambin llamado raz), adems, aunque puedes crear las carpetas que quieras.

1.6 Ncleo de Linux


El kernel o ncleo de Linux se puede definir como el corazn de este sistema operativo. Es el encargado de que el software y el hardware del computador puedan trabajar juntos. Las funciones del Kernel se simplifican en: 1. Administracin de la memoria, para todos los programas en ejecucin. 2. Administracin del tiempo de procesador, que estos programas en ejecucin utilizan. 3. Acceder a los perifricos/elementos y hardware de entrada y salida de una forma prctica y cmoda. El usuario de Linux puede adaptar el Kernel a sus necesidades configurando y compilando un nuevo Kernel o simplemente parchando y compilando el Kernel existente.

Hasta que empez el desarrollo de la serie 2.6 del ncleo, existieron dos tipos de versiones del ncleo:

Versin de produccin: La versin de produccin, era la versin estable hasta el momento. Esta versin era el resultado final de las versiones de desarrollo o experimentales.

4 de junio de 2013

12

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

Cuando el equipo de desarrollo del ncleo experimental, decida que tena un ncleo estable y con la suficiente calidad, se lanzaba una nueva versin de produccin o estable. Esta versin era la que se deba utilizar para un uso normal del sistema, ya que eran las versiones consideradas ms estables y libres de fallos en el momento de su lanzamiento.

Versin de desarrollo: Esta versin era experimental y era la que utilizaban los desarrolladores para programar, comprobar y verificar nuevas caractersticas, correcciones, etc. Estos ncleos solan ser inestables y no se deban usar sin saber lo que se haca.

Arquitectura del Kernel Linux Debido a que el kernel de Linux es monoltico, tiene ms complejidad que en los otros tipos de kernel. Esta fue una caracterstica de diseo que estaba bajo un poco de debate en los primeros das de Linux y an tiene algunos de los defectos de diseo. Una cosa que los desarrolladores del kernel de Linux hicieron para conseguir solucionar estas fallas es hacer mdulos del kernel que pueden ser cargados y descargados en tiempo de ejecucin, lo que significa que puede agregar o quitar caractersticas de su ncleo en el momento. Esto puede ir ms all de la adicin de la funcionalidad de hardware para el ncleo, mediante la inclusin de mdulos que ejecutan los procesos del servidor, como la virtualizacin de bajo nivel, pero tambin puede permitir que el ncleo pueda ser del todo reemplazado sin necesidad de reiniciar el equipo en algunos casos. Mdulos del Kernel Los mdulos del kernel, tambin conocido como un mdulo del kernel cargables (LKM), son esenciales para mantener el funcionamiento del ncleo con todo el hardware sin consumir toda la memoria disponible. Un mdulo generalmente, aumenta la funcionalidad del ncleo de base para cosas como los dispositivos, sistemas de archivos y las llamadas al sistema. Debido a su carcter modular, usted puede personalizar fcilmente su ncleo mediante el establecimiento de mdulos de carga o no.

4 de junio de 2013

13

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

Los mdulos de terceros y de cdigo cerrado estn disponibles en algunas distribuciones, como Ubuntu, y no puede ser instalado de forma predeterminada porque el cdigo fuente de los mdulos no est disponible. Las empresas desarrolladoras de software no proporcionan el cdigo fuente, sino que construyen sus propios mdulos y compilan sus archivos, archivos para su distribucin. Un ncleo no es magia, pero es completamente esencial para cualquier equipo que ejecute correctamente. El kernel de Linux es diferente a OS X y Windows, ya que incluye los controladores nivel del ncleo y hace muchas cosas.

4 de junio de 2013

14

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

Administrador de procesos y del procesador.

2.1 Concepto de proceso.


Los procesos son programas que se ejecutan en un momento dado. Cuando usamos un sistema operativo de GNU/Linux como Ubuntu por ejemplo existen una serie de procesos que se estn ejecutando constantemente y que son los que hacen al sistema operativo utilizable. Los procesos en GNU/Linux son organizados de forma jerrquica, cada proceso es lanzado por un proceso padre y es denominado proceso hijo. De esta forma, todos los procesos en GNU/Linux son hijos de init ya que este es el primer proceso que se ejecuta al iniciar el ordenador e init es padre de todos los procesos. Si se mata al proceso padre, tambin desaparecern los procesos hijos. Para que Linux pueda gestionar los procesos en el sistema, cada proceso se representa por una estructura de datos task_struct (las tareas task y los procesos son trminos intercambiables en Linux). El vector task es una lista de punteros a estructuras task_struct en el sistema. Esto quiere decir que el mximo nmero de procesos en el sistema est limitado por el tamao del vector task; por defecto tiene 512 entradas. A medida que se crean procesos, se crean nuevas estructuras task_struct a partir de la memoria del sistema y se aaden al vector task. Para encontrar fcilmente el proceso en ejecucin, hay un puntero (current) que apunta a este proceso. Linux soporta procesos de tiempo real as como procesos normales. Estos procesos tienen que reaccionar muy rpidamente a sucesos externos (de ah el trmino tiempo real') y reciben un trato diferente del planificador. La estructura task_struct es bastante grande y compleja, pero sus campos se pueden dividir en reas funcionales:

4 de junio de 2013

15

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

State (Estado) A medida que un proceso se ejecuta, su estado cambia segn las circunstancias. Los procesos en Linux tienen los siguientes estados: Running (Preparado) El proceso se est ejecutando (es el proceso en curso en el sistema) o est listo para ejecutarse (est esperando a ser asignado a una de las cpus del sistema). Waiting (Esperando) El proceso est esperando algn suceso o por algn recurso. Linux diferencia dos tipos de procesos; interrumpibles e ininterrumpibles. Los procesos en espera interrumpibles pueden ser interrumpidos por seales mientras que los ininterrumpibles dependen directamente de sucesos de hardware y no se pueden interrumpir en ningn caso. Stopped (Detenido) El proceso ha sido detenido, normalmente porque ha recibido una seal. Si se estn depurando errores en un proceso, ste puede estar detenido. Zombie Es un proceso que ya ha terminado pero cuya estructura task_struct permanece an en el vector task. Se suele mantener para que el padre pueda extraer informacin til de l.

Un Proceso en Linux es un programa que se est ejecutando en un determinado momento en el sistema. En el Sistema Operativo Linux siempre hay una serie de procesos que se est ejecutando sin que el usuario se d cuenta de ello y stos hacen que el sistema sea utilizable. El proceso init es un proceso despachador y produce, entre otros, los procesos para que los usuarios puedan conectarse al sistema. Normalmente ejecuta la secuencia de rdenes del script /etc/rc.boot para comprobar los sistemas de archivos y posteriormente ejecuta las rdenes del etc/rc y /etc/rc.local para comenzar las operaciones de multiusuario; en otro caso, se comenzara en modo monousuario. Hay dos tipos de procesos: los de usuario y los demonios. Los Procesos de Usuario: son aquello procesos que el usuario utiliza Los Demonios: son aquellos procesos que para su funcionamiento, no requiere de la intervencin del usuario y en general se usan para programas que funcionan constantemente como servidores de red, programas administrativos, etc. En la jerga del mundo de Linux, se habla que los procesos estn vivos o estn muertos, son lanzados o pueden ser matados.

4 de junio de 2013

16

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

En Linux, un proceso no puede imponer su derecho sobre otro proceso que se est ejecutando para ejecutarse l mismo. Cada proceso decide dejar la CPU que est usando cuando tiene que esperar un suceso en el sistema. Por ejemplo, un proceso puede estar esperando a leer un carcter de un fichero. Esta espera sucede dentro de la llamada de sistema, en modo sistema; el proceso utiliza una funcin de una biblioteca para abrir y leer el fichero y la funcin, a su vez, hace una llamada de sistema para leer bites del fichero abierto. En este caso el proceso en espera ser suspendido y se elegir a otro proceso para ejecutarse. Linux usa un algoritmo razonablemente simple para planificar las prioridades y elegir un proceso entre los procesos que hay en el sistema. Cuando ha elegido un nuevo proceso para ejecutar, el planificador salva el estado del proceso en curso, los registros especficos del procesador y otros contextos en la estructura de datos task_struct. Luego restaura el estado del nuevo proceso (que tambin es especfico a un procesador) para ejecutarlo y da control del sistema a ese proceso

2.2 Estados y transiciones


ESTADOS. (Segn Andrew S. Tanenbaum, 2003) El principal trabajo del procesador es ejecutar las instrucciones de mquina que se encuentran en memoria principal. Estas instrucciones se encuentran en forma de programas. Para que un programa pueda ser ejecutado, el sistema operativo crea un nuevo proceso, y el procesador ejecuta una tras otra las instrucciones del mismo. En un entorno de multiprogramacin, el procesador intercalar la ejecucin de instrucciones de varios programas que se encuentran en memoria. El sistema operativo es el responsable de determinar las pautas de intercalado y asignacin de recursos a cada proceso.

Existen varios modelos que representan los estados que puede tener un proceso; esto es el Modelo de dos estados y el Modelo de los cinco estados.

4 de junio de 2013

17

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

Modelo de dos estados: El modelo de estados ms simple es el de dos estados. En este modelo, un proceso puede estar ejecutndose o no. Cuando se crea un nuevo proceso, se pone en estado de No ejecucin. En algn momento el proceso que se est ejecutando pasar al estado No ejecucin y otro proceso se elegir de la lista de procesos listos para ejecutar para ponerlo en estado Ejecucin. De esta explicacin se desprende que es necesario que el sistema operativo pueda seguirle la pista a los procesos, conociendo su estado y el lugar que ocupa en memoria. Adems los procesos que no se estn ejecutando deben guardarse en algn tipo de cola mientras esperan su turno para ejecutar.

Modelo de Cinco estados: El modelo anterior de 2 estados funcionara bien con una cola FIFO y planificacin por turno rotatorio para los procesos que no estn en ejecucin, si los procesos estuvieran siempre listos para ejecutar. En la realidad, los procesos utilizan datos para operar con ellos, y puede suceder que no se encuentren listos, o que se deba esperar algn suceso antes de continuar, como una operacin de Entrada/Salida. Es por esto que se necesita un estado donde los procesos permanezcan esperando la realizacin de la operacin de Entrada Salida por parte del Sistema Operativo hasta que puedan proseguir. Se divide entonces al estado No ejecucin en dos estados: Listo y Espera. Se agregan adems un estado Nuevo y otro Terminado. Los cinco estados de este diagrama son los siguientes segn Osliyo: *Ejecucin: el proceso est actualmente en ejecucin. *Listo: el proceso est listo para ser ejecutado, slo est esperando que el planificador de corto plazo as lo disponga. *Espera: el proceso no puede ejecutar hasta que no se produzca cierto suceso, como la finalizacin de una operacin de Entrada/Salida solicitada por una llamada al sistema operativo. *Nuevo: El proceso recin fue creado y todava no fue admitido por el sistema operativo.

4 de junio de 2013

18

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

En general los procesos que se encuentran en este estado todava no fueron cargados en la memoria principal. *Terminado: El proceso fue expulsado del grupo de procesos ejecutables, ya sea porque termin o por algn fallo, como un error de proteccin, aritmtico, etc. Los nuevos estados Nuevo y Terminado son tiles para la gestin de procesos. En este modelo los estados Espera y Listo tienen ambos colas de espera. Cuando un nuevo proceso es admitido por el sistema operativo, se sita en la cola de listos. A falta de un esquema de prioridades sta puede ser una cola FIFO. Una de las razones para implementar el estado Espera era poder hacer que los procesos se puedan mantener esperando algn suceso, por ejemplo una Entrada/Salida. Sin embargo, al ser mucho ms lentas estas operaciones, puede suceder que en nuestro modelo de cinco estados todos los procesos en memoria estn esperando en el estado Espera y que no haya ms memoria disponible para nuevos procesos. Podra conseguirse ms memoria, aunque es probable que esto slo permita procesos ms grandes y no necesariamente nuevos procesos. Adems hay un costo asociado a la memoria y de cualquier forma es probable que se llegara al mismo estado con el tiempo. Otra solucin es el intercambio. El intercambio se lleva a cabo moviendo una parte de un proceso o un proceso completo desde la memoria principal al disco, quedando en el estado Suspendido. Despus del intercambio, se puede aceptar un nuevo proceso o traer a memoria un proceso suspendido anteriormente. El problema que se presenta ahora es que puede ser que si se decide traer a memoria un proceso que est en el estado Suspendido, el mismo todava se encuentre en espera. Slo convendra traerlo cuando ya est listo para ejecutar, esto implica que ya aconteci el suceso que estaba esperando. Para tener esta diferenciacin entre procesos suspendidos, ya sean listos como en espera, se utilizan cuatro estados: Listo, Espera, suspendido y bloqueado.

TRANSICIONES (Segn Andrew S. Tanenbaum, 2003) *De ejecucin Bloqueado: al iniciar una operacin de E/S, al realizar una operacin WAIT sobre un semforo a cero (en el tema de procesos concurrentes se estudiarn los semforos). *De ejecucin Listo: por ejemplo, en un sistema de tiempo compartido, cuando el proceso que ocupa la CPU lleva demasiado tiempo ejecutndose continuamente (agota su cuanto) el sistema operativo decide que otro proceso ocupe la CPU, pasando el proceso

4 de junio de 2013

19

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

que ocupaba la CPU a estado listo. *De Listo en ejecucin: cuando lo requiere el planificador de la CPU (veremos el planificador de la CPU en el tema de planificacin de procesos). *De Bloqueado Listo: se dispone del recurso por el que se haba bloqueado el proceso. Por ejemplo, termina la operacin de E/S, o se produce una operacin SIGNAL sobre el semforo en que se bloque el proceso, no habiendo otros procesos bloqueados en el semforo. Obsrvese que de las cuatro transiciones de estado posibles, la nica iniciada por el proceso de usuario es el bloqueo, las otras tres son iniciadas por entidades externas al proceso.

Interpretacin de la figura: Como podemos observar en esta figura tenemos una serie de transiciones posibles entre estados de proceso, representadas a partir mediante una gama de colores. Estos colores hay que interpretarlos de forma que, el color del borde de los estados representa a dichos estados, los colores dentro de los crculos nos dicen las posibles alternativas de acceso hacia otro estado, y los colores de las flechas nos representan hacia qu estado nos dirigimos si seguimos la misma.

2.3 procesos ligeros


Linux usa la misma estructura de datos (task_struct) para representar un proceso y para representar un hilo. Esto supone una ventaja importante para la planificacin: se planifica cada hilo como si fuera un proceso. A veces a esto se le llama proceso ligero (LWP- Light Weight Process). La peculiaridad es que a esta estructura tiene unos campos que son punteros al espacio de direcciones de un proceso. En qu se diferencia un proceso hijo de un hilo? Al crear un proceso hijo lo que se hace es copiar la memoria del padre en otra direccin y hacer que estos punteros sealen a la nueva; al crear un hilo lo que se hace es copiar los punteros, de forma que todos los hilos de un mismo proceso comparten exactamente el mismo espacio de direcciones. La

4 de junio de 2013

20

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

sincronizacin y exclusin mutua del acceso concurrente de los hilos a la memoria del proceso es responsabilidad del programador que los usa.

2.4 Concurrencia y secuencialidad


Cuando consultamos en un diccionario por el signicado de esta palabra encontramos entre una de las deniciones: Acaecimiento de varios sucesos o cosas de manera simultnea. Este mismo signicado es el que adquiere ste trmino cuando se relaciona con la teora de los sistemas operativos, la concurrencia se presenta cuando dos o ms procesos deben hacer uso de un mismo recurso a un mismo tiempo. Alguien puede pensar que se est presentando una contradiccin o que se est hablando slo de sistemas con ms de una CPU, ya que en una sola CPU no se puede ejecutar ms de un proceso en al mismo tiempo. Seccin critica: La seccin crtica es la parte que debe protegerse de interferencias de otros procesos. Tambin se define como a la porcin de cdigo de un programa de computador el cual accede a un recurso compartido que no debe de ser accedido por ms de un hilo en ejecucin (thread). La seccin crtica por lo general termina en un tiempo determinado y el hilo, proceso o tarea solo tendr que esperar un perodo determinado de tiempo para entrar. Se necesita de un mecanismo de sincronizacin en la entrada y salida de la seccin crtica para asegurar la utilizacin exclusiva del recurso Problemas de la seccin critica: El problema de la seccin crtica es uno de los problemas que con mayor frecuencia aparece cuando se ejecutan procesos concurrentes. Cuando Linux realiza esta accin en dos procesadores de forma simultnea sin ningn tipo de control, se pueden producir errores, ya que se puede asignar el mismo PID a dos procesos distintos. Este problema se debe a que constituyen una seccin crtica que debe ejecutarse en forma atmica, es decir, de forma completa e indivisible y ningn otro proceso podr ejecutar dicho cdigo mientras el primero no haya acabado su seccin.

4 de junio de 2013

21

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

Solucin a la seccin crtica: Para resolver el problema de la seccin crtica es necesario utilizar algn mecanismo de sincronizacin que permita a los procesos cooperar entre ellos sin problemas. Este mecanismo debe proteger el cdigo de la seccin crtica y su funcionamiento bsico es el siguiente:

Cada proceso debe solicitar permiso para entrar en la seccin crtica, mediante algn fragmento de cdigo que se denomina de forma genrica entrada en la seccin crtica. Cuando un proceso sale de la seccin crtica debe indicarlo mediante otro fragmento de cdigo que se denomina salida de la seccin crtica. Este fragmento permitir que otros procesos entren a ejecutar el cdigo de la seccin crtica.

Cualquier solucin que se utilice para resolver este problema debe cumplir los tres requisitos siguientes:

Exclusin mutua: Si un proceso est ejecutando cdigo de la seccin crtica, ningn otro proceso lo podr hacer. Progreso: Si ningn proceso est ejecutando dentro de la seccin crtica, la decisin de qu proceso entra en la seccin se har sobre los procesos que desean entrar. Espera acotada: Debe haber un lmite en el nmero de veces que se permite que los dems procesos entren a ejecutar cdigo de la seccin crtica despus de que un proceso haya efectuado una solicitud de entrada y antes de que se conceda la suya.

Para solucionar las condiciones de competencia se implement un modelo para prohibir que dos procesos accedan al mismo recurso. El modelo en cuestin se denomina exclusin mutua Interaccin entre procesos Estos tipos de interaccin se producen dependiendo del grado o nivel de conocimiento que un proceso tiene de otro. La exclusin mutua desafortunadamente trae consigo otro gran problema, el interbloqueo, este se da cuando dos o ms procesos requieren acceso a dos o ms recursos compartidos, el problema se puede presentar en el caso que el sistema operativo asigne a cada proceso un recurso, pero dicho proceso necesite a su vez del recurso que
4 de junio de 2013

22

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

tiene el otro proceso (y viceversa) por lo cual ambos procesos son bloqueados a la espera de que se libere el recurso que necesita cada uno, por lo cual ambos procesos se bloquean permanentemente ya que ninguno de los dos puede terminar hasta no utilizar el recurso faltante y por este motivo el recurso ya asignado no puede ser liberado. El tercer problema es la inanicin, esta se presenta cuando un proceso permanece en estado de bloqueo permanente a la espera de un recurso que necesita, pero por algn motivo externo al proceso solicitante, este nunca logra que le sea asignado (por lo general por que dos o ms procesos se pasan mutuamente el control de dicho recurso por lo que siempre estar ocupado). Estos tres problemas se dan tambin cuando los procesos no compiten entre s por el recurso si no que por el contrario deben cooperar entre ellos (sin tener conocimiento exacto de quin es el otro y que hace) ya que son conscientes de que no son los nicos que hacen uso de este, para el caso de la exclusin mutua se debe aclarar que slo se debe hacer uso de ella en el caso que los datos compartidos deban ser modicados. Adicionalmente en la cooperacin por comparticin se debe tambin garantizar la coherencia de los datos, ya que puede darse el caso de que a pesar que cuando se modica un dato nadie ms puede modicarlo (por la exclusin mutua) hasta tanto no nalicen las instrucciones que hacen uso de este, es posible que se requiera de algn otro dato (o datos) con los cuales se trabaje en diversas partes del proceso en conjunto con el que tiene la garanta de la exclusin mutua, pero puede suceder que entre cada uso de la informacin del dato esta pueda variar, por lo tanto puede presentarse el caso de que aun habiendo exclusin mutua, el resultado de la ejecucin puede variar su comportamiento normal. Para solucionar esto se utiliza la atomicidad de las instrucciones, es decir no pueden presentarse cambios mientras un conjunto de instrucciones (declaradas como atmicas) se est ejecutando, este tipo de situaciones se presenta mucho en aplicaciones como bases de datos. Exclusin mtua El principio de exclusin mutua es un mecanismo empleado en el diseo de los sistemas operativos para evitar los problemas de competencia por recursos, se basa en denir una zona o regin crtica la cual est marcada por las instrucciones que hacen uso del recurso o recursos por el que se presenta la competencia (recurso crtico), existen diferentes mtodos de aplicacin de la exclusin mutua tanto por hardware como por software, dentro de las soluciones por software se destacan el algoritmo de Dekker y el algoritmo de Peterson, sin embargo su explicacin se deja para consulta en textos ms avanzados segn criterio del docente, aunque exhortando a hablar sobre algunos (s) de los problemas clsicos que se utilizan para ilustrar las diferentes soluciones.

4 de junio de 2013

23

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

Interbloqueo Este problema se presenta cuando dos o ms procesos se bloquean mutuamente a la espera de un recurso crtico y esta situacin se mantiene de manera permanente, no existen como en la exclusin mutua grandes soluciones que permitan disolver un interbloqueo, por el contrario se deben utilizar diversas tcnicas para prevenir este tipo de situaciones. Inanicin La inanicin se presenta cuando un proceso nunca lograr acceder a un recurso crtico, y por tanto no pudiendo continuar con su normal ejecucin. SEMAFOROS Los semforos se pueden utilizar para controlar el acceso a los archivos, memoria compartida, y en general cualquier otro recurso compartido. Obtener semforos Con IPC de System V, se obtienen conjuntos de semforos. Obviamente, se puede obtener un conjunto de semforos que slo contiene un semforo, pero la idea es que se puede tener una gran cantidad de semforos al crear un solo conjunto de semforos.

Destruir un semforo Hay dos maneras de deshacerse de un conjunto semforos: una es usando el comando ipcrm de UNIX. La otra manera es a travs de la llamada semctl () con los argumentos adecuados. Los semforos son muy tiles en una situacin de concurrencia. Sirven para controlar el acceso a un archivo, pero tambin a otro recurso como por ejemplo la memoria compartida. Siempre cuando se tienen mltiples procesos ejecutndose dentro de una seccin crtica de cdigo, se necesitan los semforos. Una vez ejecutado este ejemplo, se puede verificar la existencia del conjunto de semforos con el comando ipcs. (No se olviden eliminar el semforo con el comando ipcrm!)

2.5 niveles, objetivos y criterios del planificador


El Process Scheduler (SCHED), es el componente del kernel de Linux encargado de controlar el acceso de los procesos al CPU. El SCHED es el componente de bajo nivel ms

4 de junio de 2013

24

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

importante de los sistemas; todos los dems (incluyendo los mdulos de acceso a disco, controladores de video, etc.), dependen directamente de l. Los procesos en Linux pueden ser divididos en tres categoras, relacionadas con la prioridad: interactivos, por lotes y de tiempo real. Los procesos Tiempo Real son manejados bien por un algoritmo FIFO o RR. Los dems procesos son despachados utilizando planificacin RR con un sistema de envejecimiento basado en crditos, donde el siguiente proceso a ejecutar es aquel que ms crditos posea. Los procesos Tiempo Real son considerados prioritarios sobre cualquier otro proceso en el sistema, por lo que sern ejecutados antes que los dems.

2.6 Tcnicas de administracin del planificador


Los tipos de algoritmos de planificacin usados en este ncleo estn definidos en las extensiones de tiempo real del estndar POSIX (POSIX.1b, antes llamado POSIX.4). El algoritmo de planificacin es bastante parecido a un RR con prioridades. Puede haber a la vez en el sistema procesos con distinta poltica de planificacin establecida. En realidad cada proceso se puede planificar de varias maneras, las polticas de planificacin de un proceso se pueden cambiar en tiempo de ejecucin y son:

SCHED_OTHER: Es la planificacin clsica de UNIX. No es aplicable a tiempo real. Examina las prioridades dinmicas (calculadas como combinacin de las especificadas por el usuario y las calculadas por el sistema). Los procesos que llevan ms tiempo en el sistema van perdiendo prioridad. SCHED_FIFO: El sistema FIFO o FCFS (First to Come is First Served). Los procesos esperan en cola y se ejecutan secuencialmente. Se sigue calculando un cuanto de tiempo para el proceso, aunque normalmente no se use porque con esta planificacin no se fuerza al proceso a abandonar la CPU. Se usa en procesos de tiempo real. SCHED_RR: Round Robin o turno rotatorio. Funciona como el FIFO pero ahora cuando un proceso acaba su cuanto de tiempo (time slice) se le desaloja. El siguiente proceso se escoge de la lista de procesos con SCHED_RR o de la lista SCHED_FIFO. Son procesos en tiempo real. SCHED_YIELD: No es una poltica de planificacin, sino un modificador que afecta a las tres polticas anteriores. El proceso cede la CPU a cualquier otro que est listo. Se activa con una llamada al sistema (sched_yield ()) slo para el siguiente ciclo de planificacin.

4 de junio de 2013

25

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

Diferencias en el kernel El nuevo planificador ejecuta un hilo de ncleo en cada CPU. Este hilo se encarga de planificar los procesos de la cola de ejecucin de la CPU en la que se ejecuta. Se llama a este hilo por temporizador, por llamada del sistema o cuando se ha acabado la cola de ejecucin para equilibrar la carga con otras cpus. Adems, se lleva la cuenta del comportamiento del proceso, si se dedica a entrada/salida o tiene carga de CPU, pudiendo cambiar dinmicamente la poltica de planificacin y la prioridad del proceso. Policy (poltica) Esta es la poltica de planificacin que se aplicar a este proceso. Hay dos tipos de procesos en Linux, normales y de tiempo real. Los procesos de tiempo real tienen una prioridad ms alta que los otros. Si hay un proceso de tiempo real listo para ejecutarse, siempre se ejecutar primero. Los procesos de tiempo real pueden tener dos tipos de polticas: RR (en crculo) y FIFO. En la planificacin RR, cada proceso de tiempo real ejecutable se ejecuta por turnos, y en la planificacin FIFO cada proceso ejecutable se ejecuta en el orden en el que est en la cola de ejecucin y el orden no se cambia nunca. Priority (prioridad) Esta es la prioridad esttica que el planificador dar a este proceso. Tambin es la cantidad de tiempo (en jiffies) que se permitir ejecutar a este proceso una vez que sea su turno de ejecucin. Se puede cambiar la prioridad de un proceso mediante una llamada de sistema y la orden renice. Rt_priority (prioridad de tiempo real) Linux soporta procesos de tiempo real y estos tienen una prioridad ms alta que todos los otros procesos en el sistema que no es de tiempo real. Este campo permite al planificador darle a cada proceso de tiempo real una prioridad relativa. La prioridad del proceso de tiempo real se puede alterar mediante llamadas de sistema.

4 de junio de 2013

26

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

Administracion de memoria en Linux.

La gestin de memoria en Linux tiene dos componentes. Primero, el sistema de gestin de memoria fsica, que se encarga de asignar y liberar pginas, grupos de pginas y bloques pequeos de memoria. El segundo componente maneja la memoria virtual, que es memoria que tiene una correspondencia con el espacio de direcciones de procesos de ejecucin.

3.1 Poltica y filosofa en Linux


GNU/Linux ha sido desarrollado principalmente por un grupo de programadores de todo el mundo unidos por Internet. A travs de Internet, cualquiera tiene la oportunidad de unirse al grupo y ayudar al desarrollo y depuracin de GNU/Linux, portar nuevo software, escribir documentacin o ayudar a los nuevos usuarios. Hoy en da, grandes compaas como IBM, SUN, HP y Novell, entre otras muchas, aportan a GNU/Linux grandes ayudas tanto econmicas como del trabajo de sus propios empleados. El sistema se ha diseado siguiendo una filosofa abierta y de crecimiento. Normalmente, GNU/Linux se comparte como un kernel junto con otros programas en lo que se conoce como distribucin. Existen numerosas distribuciones GNU/Linux. Se diferencian principalmente entre ellas por los programas que incorporan. Las principales distribuciones son RedHat, Fedora, Suse, openSUSE y Debian. Las distribuciones se pueden conseguir gratuitamente en su web correspondiente.

3.2 Memorial real


La memoria RAM es un recurso fundamental y debe ser administrado con mucho cuidado. Es el espacio que estn utilizando los procesos que se estn ejecutando. En Linux tambin

4 de junio de 2013

27

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

se utiliza la memoria fsica para tener cache de los datos de los dispositivos de i/o, memoria compartida y buffers de intercambio. El administrador de memoria fsica del ncleo de Linux es el asignador de pginas, es el que se encarga de asignar intervalos de pginas contiguas fsicamente si se le solicitan.. Se usan listas enlazadas individuales para registrar las regiones de memoria libre de cada tamao permitido; en Linux, el tamao ms pequeo que se puede asignar con este mecanismo es una sola pgina fsica. Existen varios subsistemas de gestin de memoria especializados que usan el asignador de pginas subyacente para administrar para administrar su propia reserva de memoria. Los subsistemas de memoria ms importantes son los de memoria virtual. Linux tambin trabaja con estas dos formas de compartir la memoria: Particiones fijas: se divide la memoria en reas contiguas, cuyo tamao puede variar pero permanece fijo mientras el sistema est activo. Particiones variables: las reas contiguas se asignan a medida que se necesitan, y se liberan cuando dejan de usarse. Zona de intercambio Permite hasta un mximo de 8 cheros, que se crean con un tamao jo que no cambia durante su uso. Es ms eciente usar una particin que un archivo. No es necesario que haya correspondencia entre bloque de archivo y bloques de disco (ahorra la E/S de disco por lectura de bloques indirectos). Las escrituras fsicas pueden ser de cualquier tamao, no tienen que ser del bloque de archivo entero. Una pgina siempre se escribe contigua en el disco, en un archivo de paginacin podra o no quedar contigua. La asignacin del hueco de intercambio se hace cuando se necesita Los segmentos de texto se paginan desde su archivo en disco, no se les asigna hueco en la zona de intercambio.

4 de junio de 2013

28

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

Para cada particin/archivo de paginacin hay un mapa de bits para controlar los huecos asignados/libres. A las particiones/cheros se les puede asignar un valor de prioridad, a las particiones se les asigna mayor prioridad. Cuando se necesita asignar un hueco a una pgina, se escoge la particin/archivo de ms alta prioridad y con un hueco disponible.

3.3 Organizacin de memoria virtual


Paginacin en Linux El espacio de memoria se divide en partes iguales llamadas marcos .A cada proceso se le asigna un espacio de memoria lineal. Un mecanismo de hardware permite que ese espacio de direcciones se divida, en forma transparente para el programa, en pginas del mismo tamao que los marcos. stos se relacionan entre s mediante una tabla de pginas. Para cada pgina del proceso, existe un marco correspondiente en memoria. Linux utiliza un esquema de paginacin a tres niveles, paginacin por demanda, aunque para ser ms eciente, pre pgina algunas pginas cuando se produce un fallo de pgina. No utiliza el concepto de conjunto de trabajo tamao de pgina jo. El espacio de direcciones virtual se divide en reas o regiones homogneas y contiguas: -Cada rea consiste en una serie de pginas consecutivas con las mismas propiedades en cuanto a proteccin y paginacin. -El segmento de texto podra ser un ejemplo de rea -Puede haber huecos entre las distintas reas -Cualquier referencia a la memoria que caiga dentro de un hueco producir un fallo de pgina -Para cada rea el sistema operativo almacena, entre otros, los siguientes datos: modo de proteccin, si es paginable o no, direccin en la que crece (hacia arriba el segmento de datos, hacia abajo la pila), si es privada o compartida, si tiene asignado hueco en la zona de intercambio, y si lo tiene, dnde Ejemplo de divisin en reas del espacio de direcciones virtuales de dos procesos que comparten el cdigo:

4 de junio de 2013

29

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

Esquema de paginacin de tres niveles Se tienen los siguientes tipos de tablas: Directorio global: cada proceso tiene slo uno que ha de estar en memoria, y su tamao es de una pgina. Cada entrada apunta a un directorio intermedio de pginas (tabla intermedia de pginas). Directorio intermedio de pginas: que puede ocupar varias pginas. Cada entrada seala a una pgina de la tabla de pginas nal. Tabla de pginas: que puede ocupar varias pginas. Cada una de sus entradas hace referencia a la pgina virtual requerida.

Cada direccin virtual se divide en 4 campos: Directorio: 1er campo, para consultar el directorio global Intermedio: 2campo, para consultar el directorio intermedio de pginas Pgina: 3campo, para acceder a la tabla de pginas Desplazamiento dentro de la pgina seleccionada, 4campo

4 de junio de 2013

30

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

Con el paginado se logra eliminar el problema de la fragmentacin externa, ya que mientras haya marcos libres suficientes se puede cumplir con cualquier pedido de asignacin de memoria. Sigue habiendo fragmentacin interna, aunque sea pequea, porque la memoria debe asignarse en cantidades enteras de pginas. Hasta ahora se partamos de la base de que un programa tena que residir completamente en memoria. Con el paginado, slo sera necesario que resida en memoria la pgina que contiene la instruccin que se est ejecutando. Si aplicamos el principio de localidad, es decir que en un programa las referencias a memoria tienden a estar agrupadas, las pginas tenderan a ser unas pocas a la vez. Esto implica que la cantidad de memoria fsica necesaria sera mucho menor a la que ocuparan todos los programas juntos. Esto se implementa mediante un bit en la tabla de pginas que indica si la pgina est presente en memoria o no. Si est presente, el acceso contina como en el caso del paginado normal. Si no est, se genera lo que se conoce como fallo de pgina. En este caso, para que el proceso pueda continuar, se debe traer la pgina desde el disco a la memoria. Mientras esto ocurre, el proceso no puede continuar y deja de utilizar la CPU. Cuando el marco es ubicado en memoria, se actualiza la tabla de pginas y se re arranca el proceso desde donde se produjo el fallo de pgina. El precio que se paga por esto es que el acceso demora mucho ms que si la pgina hubiera estado en memoria., por el tiempo de acceso al disco. Para poder resolver un fallo de pgina, tiene que haber un marco libre para ubicar la nueva pgina. Cuando no hay ningn marco libre sucede el caso, mediante algn criterio que vara de acuerdo al sistema de que se trate, se selecciona una pgina y se la elimina de la memoria fsica para hacer lugar para la nueva pgina. Para que el contenido de la pgina eliminada no se pierda, se la graba en un archivo especial llamado archivo de intercambio.

4 de junio de 2013

31

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

Ya que una pgina puede estar tanto en memoria real o en el archivo de intercambio, la cantidad total de memoria utilizable por los procesos es la suma de ambas. Tabla de pginas en Linux Linux supone que hay tres niveles de tablas de pginas: El directorio de tablas de pginas (punteros a tablas intermedias). La tabla de pginas intermedia (punteros a tablas de pginas). Las tablas de pginas (punteros a pginas).

Cada plataforma sobre la que funciona Linux tiene que proporcionar los marcos que permitan al ncleo atravesar las tablas de pgina de cada proceso. De esta forma, el ncleo no necesita conocer el formato de las entradas de la tabla de pginas ni cmo stas se organizan. Esto es tan til que Linux utiliza el mismo cdigo de gestin de tablas de pginas en un procesador Alpha, que tiene tres niveles de tablas de pginas, que en un Intel x86, que slo tiene dos niveles de tablas (para ello, supone que el tamao de la tabla intermedia es 1, y por tanto, coincide con la entrada del directorio).

Asignacin de pginas Linux utiliza el algoritmo Buddy para asignar y liberar eficientemente bloques de pginas. El cdigo de asignacin intenta asignar un bloque de una o ms pginas fsicas. Las pginas

4 de junio de 2013

32

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

se asignan en bloques de tamao potencia de 2. Esto quiere decir que pueden asignar bloques de 1, 2, 4, etc. pginas. El algoritmo de asignacin busca primero entre los bloques de pginas de igual tamao que el pedido. Luego sigue la lista de pginas libres que est encolada. Si no encuentra ningn bloque de pginas del tamao pedido libre, entonces busca en los siguientes (los cuales son del doble del tamao pedido). Puesto que el nmero de pginas de cada bloque es potencia de 2, simplemente dividiendo el bloque por la mitad se obtienen dos bloques con un tamao de bloque inmediatamente inferior. Cache de pginas Linux El cometido de la cache de pginas en Linux es el de acelerar el acceso a los ficheros de disco. Las lecturas sobre los ficheros proyectados en memoria se realizan pgina a pgina y estas pginas se guardan en la cache de pginas. Siempre que se lee en una pgina de un fichero proyectado en memoria, por ejemplo cuando se necesita traer a memoria una pgina desde un fichero de intercambio, la pgina se lee a travs de la cache de pginas. Linux asigna una pgina fsica y lee la pgina desde el fichero del disco. Si es posible, Linux comenzar una lectura de la siguiente pgina del fichero. Con esta pgina de adelanto se consigue que si el proceso est accediendo las pginas de forma secuencial, la siguiente pgina est lista y esperando en memoria la peticin del proceso. Con el tiempo, la cache de pginas va creciendo conforme las imgenes se leen y ejecutan. Las pginas han de ser eliminadas de la cache cuando dejan de utilizarse. Conforme Linux utiliza memoria puede comenzar a escasear las pginas de memoria fsica. En esta situacin Linux reducir el tamao de la cache de pginas.

Segmentacin en Linux: Linux no aprovecha la segmentacin. Sin embargo, no puede desactivarla, la utiliza de una forma muy limitada. Se ha preferido la paginacin sobre la segmentacin porque la
4 de junio de 2013

33

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

gestin de memoria es ms simple, y uno de los objetivos de Linux es la portabilidad: muchos procesadores soportan malamente la segmentacin, as que la independencia de la plataforma se vera disminuida en Linux. 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 ampliamente independiente de la plataforma sobre la que se ejecuta. Este modelo no siempre se corresponde con el de la plataforma sobre el cual se ejecuta). Est sumamente extenso el modelo de paginacin en Linux que se hace imposible de abordar.

3.4 Administracin de memoria virtual


Algoritmo de reemplazo de pginas El algoritmo de reemplazo de pginas de Linux se basa en el algoritmo del reloj, que, en caso de ser el sencillo, se asocia un bit de uso y un bit de modificacin a cada pgina de la memoria principal. En Linux utiliza una variable edad que, cada vez que se accede a la pgina, se incrementa la variable y 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, y cuanto mayor valor de edad, ms frecuentemente se ha usado la pgina recientemente y menos elegible es para el reemplazo Trata de mantener algunos marcos desocupados, creando una reserva de marcos libres, para poderlos usar cuando se solicite un nuevo marco. El verdadero algoritmo de paginacin se encarga de mantener esta reserva de marcos libres. Un demonio de paginacin peridicamente comprueba si hay sucientes marcos libres: Si hay suciente se desactiva hasta la prxima vez Si no hay sucientes trata de recuperar marcos de diferentes tipos

El demonio de paginacin tambin se puede activar si se necesitan marcos libres y no hay sucientes. Demonio de paginacin: Su cdigo consiste en un ciclo que se ejecuta hasta 6 veces, con urgencia creciente, Invoca a tres procedimientos que se encargan de recuperar diferentes tipos de pginas.

4 de junio de 2013

34

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

El valor de urgencia se pasa como parmetro, para que el procedimiento sepa cunto debe esforzarse por recuperar pginas. El efecto de este algoritmo es que primero se toman las pginas fciles de cada categora para despus ir tras las difciles. Cuando se han recuperado sucientes pginas se duerme otra vez. Los procedimientos para recuperar marcos: 1er Procedimiento. Trata de recuperar pginas del cach de paginacin y del cach de buffer a los que no se haya hecho referencia ltimamente. 2Procedimiento. Busca pginas compartidas que al parecer ninguno de los usuarios est utilizando mucho. 3Procedimiento. Intenta recuperar pginas de usuarios ordinarias. Tercer procedimiento para recuperar pginas de usuario: Primero se ejecuta un ciclo que abarca todos los procesos y determina cul es el que ms pginas tiene en memoria. Una vez localizado ese proceso se examinan todas sus pginas en orden por direccin virtual, partiendo del punto donde se qued por ltima vez el procedimiento. Paginacin por Demanda Puesto que hay mucho menos memoria fsica que memoria virtual, Linux ha de tener especial cuidado de no hacer un mal uso de la memoria fsica. Una forma de conservar memoria fsica es cargar slo las pginas que estn siendo utilizadas por un programa. En este caso no es necesario cargar en memoria toda la base de datos, sino slo aquellos registros que son examinados. Si la consulta consiste en realizar una bsqueda, entonces no tiene sentido cargar el fragmento de programa que se ocupa de aadir nuevos registros. Esta tcnica de cargar slo pginas virtuales en memoria conforme son accedidas es conocida como Paginacin por demanda. Linux utiliza la paginacin por demanda para cargar imgenes ejecutables en la memoria virtual de un proceso. Siempre que se ejecuta un proceso, se abre el fichero que la contiene y su contenido se asocia en la memoria virtual del proceso. Esto se hace modificando las estructuras de datos que describen el mapa de memoria del proceso y se conoce como asociacin de memoria. Sin embargo, slo la primera parte de la imagen se copia realmente en memoria fsica, el resto de la imagen se deja en disco. Conforme se va

4 de junio de 2013

35

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

ejecutando, se generan fallos de pgina y Linux utiliza el mapa de memoria del proceso para determinar qu partes de la imagen ha de traer a memoria para ser ejecutadas. Liberacin de pginas Asignar bloques de pginas tiende a fragmentar la memoria al dividir los bloques grandes para conseguir bloques ms pequeos. El cdigo de liberacin de pginas recombina pginas en bloques de mayor tamao siempre que es posible. De hecho, el tamao de bloque de pgina es importante pues facilita la recombinacin en bloques grandes. Siempre que se libera un bloque de pginas, se comprueba si est libre el bloque adyacente de igual tamao. Si es as, se combina con el bloque de pginas recin liberado para formar un bloque nuevo de tamao doble. Cada vez que dos bloques de pginas se recombinan en uno mayor, el algoritmo de liberacin intenta volver a recombinarlo en otro an mayor. De esta forma, los bloques de pginas libres son tan grandes como la utilizacin de la memoria permita. Intercambiando y liberando pginas en Linux Cuando queda poca memoria fsica, el subsistema de gestin de memoria de Linux tiene que intentar liberar pginas fsicas. Este trabajo es realizado por el demonio de intercambio del ncleo (kswapd). El demonio de intercambio del ncleo es un tipo especial de proceso, un hilo de ejecucin del ncleo. Los hilos del ncleo son procesos que no tienen memoria virtual, en lugar de ello, se ejecutan en modo ncleo en el espacio de memoria fsica. Su misin es la de garantizar que haya suficientes pginas libres en el sistema para mantener al sistema de gestin de memoria funcionando eficientemente. Linux no quiere enviar a disco de intercambio demasiadas pginas a la vez, por lo lleva la cuenta de cuantas pginas estn en ese momento siendo copiadas al fichero de intercambio. Si hay suficientes pginas libres, el demonio de intercambio se duerme hasta que el temporizador expire, en caso contrario, el demonio intenta de tres formas distintas reducir el nmero de pginas fsicas ocupadas: Reduciendo el tamao de la cache de pginas y el buffer cache. Enviando a disco pginas compartidas. Enviando a disco o descartando pginas.

Si el nmero de pginas libres ha cado demasiado, el demonio de intercambio intentar liberar 6 pginas antes de su prxima ejecucin. En caso contrario, intentar liberar 3 pginas. Los mtodos anteriores se intentan uno tras otro de hasta que se consiguen
4 de junio de 2013

36

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

liberar suficientes pginas. Luego el demonio de intercambio se suspende hasta que el temporizador vuelva a expirar. El demonio recuerda cul fue el ltimo mtodo que emple para liberar pginas, y la prxima vez que se ejecuta lo vuelve a intentar con el mismo mtodo que tuvo xito.

4 de junio de 2013

37

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

Administracin de entrada/salida en Linux.

4.1 Dispositivos y manejadores de dispositivos: Device drivers.


Uno de los propsitos de un sistema operativo es esconder las peculiaridades de los dispositivos de hardware del sistema de sus usuarios. Este captulo describe cmo el kernel de Linux maneja los dispositivos fsicos en el sistema. La CPU no es el nico dispositivo inteligente en el sistema, cada dispositivo fsico tiene su propio controlador de hardware. Cada controlador de hardware tiene su propio control y estado de registros y stos difieren entre los dispositivos. En lugar de poner el cdigo para manejar a los controladores de hardware en el sistema en cada aplicacin, el cdigo se guarda en el kernel de Linux. El software que maneja un controlador de hardware es conocido como un controlador de dispositivo. Los controladores de dispositivos del kernel de Linux son, esencialmente, una librera de privilegios compartida, memoria residente, manejo de rutinas a bajo nivel. Son los controladores de dispositivos de Linux los que se ocupan de las peculiaridades de los dispositivos que se estn manejando.

4 de junio de 2013

38

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

4.2 Mecanismos y funciones de los manejadores de dispositivos


Son los controladores de dispositivos de Linux los que se ocupan de las peculiaridades de los dispositivos que se estn manejando. Uno de las caractersticas bsicas de este resumen es el manejo de dispositivos. Todos los dispositivos del hardware se parecen a los archivos regulares; estos se pueden abrir, cerrar, leer y escribir usando el mismo estndar, las llamadas al sistema se usan para manipular los archivos. Cada dispositivo en el sistema se representa por un archivo especial de dispositivo. Los dispositivos de la red tambin son representados por archivos especiales de dispositivos pero ellos son creados por Linux, este encuentra e inicializa a los controladores de red en el sistema. Todos los manejadores de dispositivos por el mismo controlador del dispositivo tienen un nmero mayor comn de dispositivo. Los nmeros de dispositivo menores se usan para distinguir entre los diferentes dispositivos y sus controladores, Linux mapea el archivo especial de dispositivos en las llamadas pasadas del sistema (para montar un archivo del sistema sobre un dispositivo del bloque) al controlador del dispositivo que usa el nmero del dispositivo mayor y varios sistemas de tablas. Linux soporta tres tipos de dispositivo de hardware: el carcter, bloque y red. Los dispositivos de carcter son ledos y escritos directamente sin el buffering. Los dispositivos del Bloque slo pueden escribirse y leerse en mltiplos del tamao del bloque, tpicamente 512 o 1024 bytes. Se acceden a los dispositivos del bloque a travs de la memoria cach y se pueden acceden a estos aleatoriamente, es decir, cualquier bloque puede leerse o puede escribirse no importa dnde est en el dispositivo. A los dispositivos de Bloque se puede acceder a travs de su archivo especial pero normalmente se accede a ellos a travs del archivo de sistema. Solamente un dispositivo del bloque puede soportar un archivo de sistema montado. Hay muchos manejadores de dispositivos diferentes en el kernel de Linux (sta es una de las fortalezas de Linux) pero todos ellos comparten algunos atributos comunes: Kernel code Los manejadores de dispositivo son parte del kernel y, como otro cdigo dentro del kernel, si estos contienen errores pueden daar el sistema seriamente. Un controlador escrito incorrectamente puede chocar el sistema, posiblemente daar archivos del sistema y perder datos, incluso.

4 de junio de 2013

39

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

Kernel interfaces Los manejadores de dispositivos deben proporcionar una interfaz estndar al kernel de Linux o al subsistema del que ellos son parte. Kernel mecanismos y servicios Los manejadores de dispositivo hacen uso del estndar de los servicios del kernel como la asignacin de memoria, interrupciones y colas de la espera para operar. Cargable La mayora de los controladores de dispositivo pueden ser cargados cuando se necesiten (segn la demanda) como los mdulos del kernel cuando se necesitan y se descargan cuando ellos ya no estn usndose. Esto hace al kernel muy adaptable y eficaz con los recursos del sistema. Configurable Los controladores de dispositivos de Linux pueden construirse en el kernel. Los dispositivos construidos se configuraran cuando el kernel es compilado. Dinmico Como el sector de arranque del sistema y cada controlador de dispositivo es inicializado se buscan los dispositivos del hardware que este est controlando. No le importa si el dispositivo empez controlndose por un manejador de dispositivo particular que no existe. En este caso el manejador de dispositivo es absolutamente redundante y no causa ningn dao aparte de ocupar un poco de la memoria del sistema. Interrupciones Cada vez que el dispositivo se da una orden, por ejemplo mover el cabezal de lectura de sector 42 del disco'' el controlador de dispositivo tiene la opcin de decidir la forma en que se entera de que el comando se ha completado. Los controladores de dispositivo pueden sondear el dispositivo o pueden utilizar las interrupciones. Sondeo del dispositivo por lo general significa leer su estado de registro de vez en cuando hasta que los cambios de estado del dispositivo para indicar que se ha completado la solicitud. Como un controlador de dispositivo es parte del ncleo sera desastroso si un conductor era para sondear como nada ms en el ncleo del sistema permite ejecutar hasta que el dispositivo se haba completado la solicitud. En lugar de los controladores de dispositivos de votacin usar temporizadores del sistema para tener el ncleo llamar a una rutina dentro del controlador de dispositivo en un momento posterior.

4 de junio de 2013

40

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

Un controlador de dispositivo impulsado por interrupcin es aquel en el que el dispositivo de hardware que se controla elevar una alarma cada vez que necesita ser reparado. El kernel de Linux debe ser capaz de entregar la interrupcin del dispositivo de hardware para el controlador de dispositivo correcto. Esto se consigue por el controlador de dispositivo de registro de su uso de la interrupcin con el ncleo. Se registra la direccin de una rutina de tratamiento de interrupcin y el nmero de interrupcin que desea poseer. Se puede ver que las interrupciones estn siendo utilizadas por los controladores de dispositivo, as como el nmero de cada tipo de interrupciones que ha habido. Este inters de los recursos de interrupcin se realiza en el momento de la inicializacin del controlador. Algunas de las interrupciones en el sistema son fijas. Cmo se entrega una interrupcin a la CPU? En s es dependiente de la arquitectura, pero en la mayora de las arquitecturas de la entrega de la interrupcin en un modo especial que para otras interrupciones que ocurran en el sistema. Un controlador de dispositivo debe hacer lo menos posible en su rutina de manejo de interrupciones para que el kernel Linux pueda descartar la alarma y volver a lo que estaba haciendo antes de que se interrumpiera. Los controladores de dispositivos que se necesitan para hacer un montn de trabajo como resultado de recibir una interrupcin pueden usar los controladores de medio fondo del ncleo o colas de tareas para las rutinas de cola que se llamarn ms tarde. Acceso directo a memoria (DMA) Utilizando los controladores de dispositivos impulsados interrumpe la transferencia de datos hacia o desde dispositivos de hardware funciona bien cuando la cantidad de datos es razonablemente bajo. Si la latencia de interrupcin, la cantidad de tiempo que se necesita entre el dispositivo de hardware eleva la interrupcin y la rutina de manejo de interrupciones del controlador de dispositivo que se llama, es baja (digamos 2 milisegundos), entonces el impacto global del sistema de la transferencia de datos es muy bajo. Para los dispositivos de alta velocidad, tales como controladores de disco duro o dispositivos Ethernet la velocidad de transferencia de datos es mucho ms alto. Acceso directo a memoria o DMA, se invent para resolver este problema. Un controlador de DMA permite que los dispositivos para transferir datos hacia o desde la memoria del sistema sin la intervencin del procesador. Cada canal de DMA ha asociado un registro de direccin de 16 bits y un nmero de registro de 16 bits. Para iniciar la transferencia de una base de datos del controlador de dispositivo configura la direccin del canal de DMA y el

4 de junio de 2013

41

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

recuento de registros, junto con la direccin de la transferencia de datos, leer o escribir. A continuacin, se le indica al dispositivo que puede iniciar la DMA cuando se desea. Cuando se complete la transferencia de las interrupciones del dispositivo al PC. Mientras que la transferencia tiene lugar la CPU est libre para hacer otras cosas. Los controladores de dispositivos tienen que tener cuidado al usar DMA. En primer lugar el controlador de DMA no sabe nada de la memoria virtual, que slo tiene acceso a la memoria fsica en el sistema. Sin embargo, puede bloquear pginas fsicas del proceso en memoria, evitando que sean cambiados al dispositivo de intercambio durante una operacin de DMA. En segundo lugar, el controlador DMA no se puede acceder a toda la memoria fsica. La direccin de registro del canal DMA representa los primeros 16 bits de la direccin DMA, los prximos 8 bits proceden del registro pgina. Esto significa que las solicitudes de DMA se limitan a la parte inferior 16 Mbytes de memoria. Canales DMA son recursos escasos, hay slo 7 de ellos, y no pueden ser compartidos entre los controladores de dispositivos. Al igual que las interrupciones, el controlador del dispositivo debe ser capaz de trabajar en el canal DMA debe utilizar. Al igual que interrumpe, algunos dispositivos tienen un canal DMA fija. A veces, el canal de DMA para un dispositivo se puede ajustar mediante puentes; un nmero de dispositivos Ethernet utilizan esta tcnica. Los dispositivos ms flexibles se les puede decir que canales DMA para el uso y, en este caso, el controlador de dispositivo slo tiene que elegir un canal DMA de uso gratuito. Linux supervisa el uso de los canales DMA utilizando un vector de estructuras de datos canal_dma (uno por canal DMA). La estructura de datos canal_dma contiene slo dos campos, un puntero a una cadena que describe el dueo del canal DMA y una bandera que indica si el canal DMA se asigna o no. Memoria Los controladores de los dispositivos tienen que ser cuidados al usar la memoria. Como ellos son parte del Kernel de Linux, ellos no pueden usar la memoria virtual. Cada tiempo un controlador del dispositivo corre, quiz cuando una interrupcin es recibida o como un fondo medio o el manipulador de cola de tarea son programados, el proceso actual puede cambiar. El controlador del dispositivo no puede confiar en un funcionamiento de un proceso particular aun cuando est funcionando en su nombre. Como el resto del Kernel, los controladores de dispositivos

4 de junio de 2013

42

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

usan estructuras de datos para guardar huella del dispositivo que est controlando. Estas estructuras de datos pueden ser asignadas estticamente, parte del cdigo del controlador del dispositivo, pero que podra ser malgastado mientras este hace el Kernel ms grande de lo que este necesita ser. Linux proporciona asignacin de memoria de Kernel y rutinas de des asignacin y este es el que usan los controladores de dispositivos. La memoria del Kernel es asignada en pedazos que son potencia de 2. El nmero de bytes que demanda el controlador del dispositivo es redondeado al prximo lmite de tamao de bloque. Esto hace ms fcil la des asignacin de memoria del Kernel, como los bloques libres ms pequeos pueden ser recombinados en los bloques ms grandes. Puede ser que Linux necesite hacer bastante trabajo extra cuando la memoria del Kernel es solicitada. Si la cantidad de memoria libre es baja, las paginas fsicas pueden necesitar ser desechadas o escritas al dispositivo de intercambio. Normalmente, Linux suspendera el solicitador, poniendo el proceso hacia una cola de espera hasta que all suficiente memoria fsica. No todos los controladores de dispositivo (o de hecho el cdigo del Kernel de Linux) pueden querer que esto pase y para que las rutinas de asignacin de memoria del Kernel puedan ser solicitadas para fallar si ellos no pueden asignar la memoria inmediatamente. Si el controlador del dispositivo desea DMA de la memoria asignada puede especificar tambin que la memoria DMA esta hbil. Este camino est en el Kernel de Linux que necesita entender lo que constituye la memoria hbil de DMA para este sistema, y no el controlador del dispositivo.

4.3 Estructuras de datos para manejo de dispositivos


El Kernel de Linux debe poder interactuar con ellos en maneras normales. Cada clase de controlador de dispositivo, carcter, bloque y red, proporciona interfaces comunes que el Kernel usa cuando solicita los servicios de ellos. Estos medios de las interfaces comunes que el Kernel puede tratar a menudo de dispositivos diferentes y sus controladores de dispositivo son absolutamente los mismos.

Linux es muy dinmico, cada vez que inicia el Kernel de Linux puede encontrarse los dispositivos fsicos diferentes y as la necesidad de controladores de dispositivos diferentes. Linux le permite incluir a controladores de dispositivos en el momento de la estructura del Kernel por va de escritura en su configuracin.

4 de junio de 2013

43

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

Cuando estos controladores se inicializan en el tiempo de arranque ellos no pueden descubrir ningn hardware para controlar. Pueden cargarse otros controladores como mdulos del Kernel cuando son necesitados. Tener suficiente fuerza para esta naturaleza dinmica de controladores de dispositivos, los controladores de dispositivo se registran con el Kernel como son inicializados. Linux mantiene tablas de controladores de dispositivos registrados como parte de sus interfaces con ellos. Estas tablas incluyen los indicadores a las rutinas y a la informacin que sostiene la interface con esa clase de dispositivos. Dispositivos de carcter Los dispositivos de carcter, son el ms simple de los dispositivos de Linux, como los archivos, las aplicaciones usan el sistema normal de llamada para abrirlos, leerlos, escribir en ellos y cerrarlos exactamente como si el dispositivo fuera un archivo. Esto es verdad aun cuando el dispositivo es un mdem usando por el demonio de PPP para conectar un sistema de Linux hacia una red. Cuando un dispositivo de carcter se inicializa su controlador se registra con el kernel de Linux agregando una entrada en el chrdevsvector de estructuras de datos de device_structz. El identificador del dispositivo mayor se usa como un ndice en este vector. El identificador del dispositivo mayor para un dispositivo es fijo. Cada entrada en el vector del chrdevs, es una estructura de datos de device_struct que contiene dos elementos; un indicador al nombre del controlador del dispositivo registrado y un indicador a un bloque de operaciones del archivo. Este bloque de operaciones del archivo tiene direcciones de rutinas dentro del controlador del dispositivo de carcter cada una de las cuales los une con las operaciones del archivo especfico como abrir, leer, escribir y cerrar. Cuando un archivo especial de carcter que representa un dispositivo de carcter se abre el kernel para preparar las cosas para que se llamen las rutinas de las operaciones del archivo correctas del controlador del dispositivo de carcter. Simplemente como un archivo ordinario o directorio, cada dispositivo del archivo especial se representa por un inode VFS. El inode VFS para un carcter es el archivo especial, de hecho para todos los
4 de junio de 2013

44

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

archivos especiales de dispositivos, este contiene ambos identificadores mayores y menores para el dispositivo. Siempre que un inode VFS representa un carcter el archivo especial se crea, las operaciones del archivo se ponen por defecto a las operaciones del dispositivo de carcter. Estas son operaciones nicas del archivo, la operacin de abrir el archivo. Cuando se abre el archivo especial del carcter por una aplicacin la operacin de abrir el archivo genrico usa el identificador mayor del dispositivo como un ndice en el vector del chrdevs para recuperar las operaciones bloqueadas del archivo para este dispositivo particular. Tambin prepara la estructura de datos del archivo describiendo el archivo especial de carcter, tomando los indicadores de las operaciones del archivo del controlador del dispositivo. Despus de esto todas a las aplicaciones de las operaciones de archivo se trazarn las llamadas a las de los dispositivos de carcter puestos en las operaciones del archivo. Dispositivos de Bloque Los dispositivos de bloque tambin soportan ser accedidos como los archivos. Los mecanismos usados para mantener el correcto set de operaciones de archivo para abrir el archivo especial de bloque son muy parecidos como en los dispositivos del carcter. Linux mantiene el set de dispositivos de bloque registrados en el vector blkdevs. Los diferentes dispositivos de carcter, tienen clases de dispositivos de bloque. Los dispositivos de SCSI son de una tal clase y dispositivos de IDE son de otra. Es la clase la que se registra con el kernel de Linux y proporciona las operaciones de archivo al kernel. Los controladores de dispositivo para una clase de dispositivo de bloque proporcionan la clase de las interfaces especficas a la clase. Cada controlador de dispositivo de bloque debe proporcionar una interfaz al buffer de cache para una normal interfaz de las operaciones de archivo. Cada controlador de dispositivo de bloque rellena su entrada en el vector del blk_dev en la estructura de datos de blk_dev_struct. El ndice en este vector es, de nuevo, el nmero mayor del dispositivo. La estructura de datos de blk_dev_struct consiste en la direccin de una rutina de requerimiento y en un indicador a una lista de requerimientos de la estructura de datos, cada uno representa un requerimiento del buffer cache para que el controlador pueda leer o escribir un bloque de datos.

4 de junio de 2013

45

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

Figura: El Buffer Cache de los requerimientos de los Dispositivos de Bloque Cada tiempo el buffer cache desea leer o escribir un bloque de datos desde un registro de dispositivos si agrega que un requerimiento en la estructura de datos blk_dev_struct. Muestra que cada requerimiento tiene un indicador a una o ms estructura de datos del buffer_head, cada uno de los requerimientos son para leer o escribir en un bloque de datos. Las estructuras del buffer_head se cierran con llave (por el buffer cache) y puede haber un proceso esperando a que el bloque de operaciones del buffer se complete. A cada estructura del requerimiento se asigna una lista esttica. Si el requerimiento est agregndose a una lista de requerimientos vaca, la funcin de la demanda del controlador se llama para empezar el proceso en la cola de requerimientos. Por otra parte el controlador procesar cada requerimiento simplemente en la lista de los requerimientos. Una vez el controlador del dispositivo ha completado un requerimiento debe quitarlo de cada una de las estructuras del buffer_head desde la estructura de requerimientos, abrindolos y marcndolos para actualizar. Al abrirlos del buffer_head se despertar cualquier proceso que ha estado esperando inactivo para completar el bloque de operaciones. El proceso est inactivo en el buffer_head que contendr la entrada del directorio hasta que el controlador del dispositivo lo active. La estructura de datos de requerimiento es marcada como libre para que pueda usarse en otro requerimiento del bloque.

4 de junio de 2013

46

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

Discos Duros Los controladores de disco mantienen un mtodo ms permanente guardando los datos, mientras se crean en los platos fuentes del disco. Para escribir los datos, una cabeza diminuta magnetiza las partculas diminutas en la superficie de los platos. El dato se lee por una cabeza que puede descubrir si una partcula diminuta particular es magnetizada. Una unidad de disco consiste en uno o ms platos, cada uno esta echo de vidrio finamente pulido o de compuestos cermicos y cubierto con una capa fina de xido frrico. Las platos se atan a un eje central e hilan a una velocidad constante que puede variar entre 3000 y 10,000 RPM que depende del modelo. Compare esto a un disco flexible que slo se hila a 360 RPM. Las cabezas del read/write del disco son responsables para leer y escribir los datos y hay un par para cada plato, una cabeza para cada superficie. Las cabezas del read/write no tocan la superficie de los platos fsicamente, en cambio ellos flotan adelante un muy delgado cojn de aire. Las cabezas del read/write se mueven por la superficie de los platos por un actuador. Todas las cabezas del read/write se atan juntas, todas ellas se mueven juntas por las superficies de los platos. Cada superficie del plato es dividida en crculos estrechos, concntricos llamados huellas. La pista 0 es la pista extrema y la pista numerada ms alta es la ms cercana a la pista del eje central. Un cilindro es el juego de todas las pista con el mismo nmero. As que todas las pista 5 de cada lado de cada plato en el disco estn conocidas como cilindro 5. Como el nmero de cilindros es igual que el nmero de pista, usted ve a menudo geometras del disco descritas por lo que se refiere a los cilindros. Cada pista es dividida en los sectores. Un sector es la unidad ms pequea de datos que pueden escribirse a o pueden leerse de un disco duro y tambin es el tamao del bloque del disco. Un tamao del sector comn es 512 bytes y el tamao del sector era fijo cuando el disco fue estructurado, normalmente cuando el disco es manufacturado. Un disco normalmente se describe por su geometra, el nmero de cilindros, cabezas y sectores. Aunque los subsistemas del disco construyen las entradas del gendisk durante su inicializacin ellos slo se usan por Linux durante la comprobacin de la particin. En cambio, cada subsistema del disco mantiene su propia estructura de datos la cual le permite trazar mayor el dispositivo especial y menor nmero de dispositivos a las particiones dentro de los discos fsicos.

4 de junio de 2013

47

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

4.4 Operaciones de entrada y de salida


Durante estas fases los datos se transfiere entre el inicializador y el blanco. ESTADO En esta fase se entra despus de la terminacin de todos los comandos y permite que el blanco enve un octeto de condicin que indica el xito o el fracaso al inicializador. EL MENSAJE DE ENTRADA Y MENSAJE DE SALIDA La informacin adicional se transfiere entre el inicializador y el blanco. El subsistema SCSI de Linux se constituye de dos elementos bsicos, cada uno de los cuales es representado por las estructuras de datos:

Dispositivos de Red Un dispositivo de red es, segn el subsistema de red de Linux, es considerado como una entidad que enva y recibe paquetes de datos. Normalmente es un dispositivo fsico tal como una tarjeta Ethernet. Algunos dispositivos de red sin embargo son solo el software tal como el dispositivo loopback, el cual es para datos remitentes a usted mismo. Los drivers del dispositivo de red registran los dispositivos que ellos controlan con Linux durante la inicializacin de la red en tiempo de ganancia del ncleo. La estructura de datos device contiene informacin sobre el dispositivo y las direcciones de funciones que permiten apoyando los diversos protocolos de red usar los servicios del dispositivo. Estas funciones se preocupan principalmente de datos transmitidos usando el dispositivo de red. El dispositivo usa la norma networking que apoya los mecanismos para pasar datos recibidos hasta la capa protocolar apropiada. Todos los datos de red transmitidos y recibidos son representados por las estructuras de datos sk_buff, estas son estructuras flexibles de datos permiten a las cabeceras protocolares de red ser fcilmente agregados y retirados. Las estructuras de datos device contienen informacin sobre el dispositivo de red: Nombre Informacin de bus Banderas de Interface Informacin del Protocolo.

4 de junio de 2013

48

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

Cada dispositivo describe como puede ser usado por las capas del protocolo de red: mtu El tamao del paquete ms grande que esta red puede transmitir no incluyendo ningn vnculo de cabecera de capa que se necesita agregar. Este mximo es usado por las capas protocolares. La Familia La familia indica la familia protocolar que el dispositivo puede soportar. La familia para todo dispositivo de red Linux es AF_INET, la direccin de familia Internet. Tipo El tipo de interface de hardware describe los medios que este dispositivo de red tiene adjunto. Hay muchos tipos diferentes de medios que los dispositivos de red Linux soportan. Ests incluyen Ethernet, X.25, Token Ring, Slip, PPP y Apple Localtalk. Direcciones La estructura de datos device retiene un nmero de direcciones que son relevantes a este dispositivo de red, incluyendo sus direcciones IP. La cadena de paquetes Esta es la cadena de paquetes sk_buff encadenados esperada para ser transmitida sobre este dispositivo de red, Funciones de apoyo Cada dispositivo provee un conjunto de rutinas estndar que las capas protocolares llaman como parte de su interface al vnculo de capa de este dispositivo. Estas incluyen estructurar y enmarcar rutinas transmitidas as como tambin rutinas para agregar cabeceras estndares de marco y recopilar estadsticas.

4 de junio de 2013

49

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

Sistemas de archivos en Linux

5.1 Concepto
Un sistema de archivos establece los mecanismos para acceder a los datos que contiene y permite o no el acceso a dichos datos en determinadas circunstancias y en caso de alguna inconsistencia posibilita medios para su restauracin. Existen diferentes sistemas de archivos y cada sistema operativo soporta diferentes sistemas de ficheros, algunos de ellos son los siguientes:

Ext2 el primer sistema de archivos diseado expresamente para Linux. Ext3 versin mejorada de Ext2, ampliamente utilizada en distribuciones Linux Ext4 nuevo sistema de ficheros para Linux evolucionado de Ext3

5.2 Nocin de archivo real y virtual


En Linux, al igual que en Unix, no se accede a los diferentes sistemas de ficheros que el sistema puede usar mediante identificadores de unidad (como el nmero de la unidad o su nombre), sino que son combinados en un nico rbol jerrquico que representa el sistema de ficheros como una entidad individual. Linux aade cada sistema de ficheros en su rbol nico cuando es montado en un directorio. Una de las caractersticas ms importantes de Linux es su soporte para muchos sistemas de ficheros diferentes. Esto lo hace muy flexible y capaz de coexistir con otros sistemas operativos. El sistema de ficheros ms popular de Linux es el EXT2, y ste es el soportado por la mayor parte de las distribuciones de Linux. Un sistema de ficheros da al usuario una visin ordenada de los ficheros y directorios guardados en los discos duros del sistema, independientemente del tipo de su sistema y

4 de junio de 2013

50

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

de las caractersticas de la unidad fsica subyacente. Linux soporta transparentemente muchos sistemas diferentes (por ejemplo MS-DOS y EXT2) y presenta todos los ficheros y sistemas de ficheros montados como un nico rbol virtual. Por esto, los usuarios y los procesos no necesitan generalmente saber en qu tipo de sistema de ficheros est algn fichero, tan slo lo usan. Archivo Virtual El sistema de Ficheros Virtual est implementado de forma que el acceso a los ficheros es rpido y tan eficiente como es posible. Tambin debe asegurar que los ficheros y los datos que contiene son correctos. Estos dos requisitos pueden ser incompatibles uno con el otro. El VFS de Linux mantiene una memoria intermedia con informacin de cada sistema de ficheros montado y en uso. Se debe tener mucho cuidado al actualizar correctamente el sistema de ficheros ya que los datos contenidos en esas memorias se modifican cuando se crean, escriben y borran ficheros y directorios. Si se pudieran ver las estructuras de datos del sistema de ficheros dentro del kernel en ejecucin, se podra ver los bloques de datos que se leen y escriben por el sistema de ficheros. El sistema de archivos virtual ofrece a Linux una visin homognea de un sistema de archivos con independencia del sistema de archivos real que resida en cada volumen. Linux es capaz de adaptarse a una variedad de sistemas de archivo. Lo hace mediante un Sistema de archivos virtual que sirve como interface en el sistema de archivos que hay en el volumen y el propio sistema operativo. El sistema virtual se enfrenta al sistema de

4 de junio de 2013

51

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

archivos que exista en el volumen ofrecindole al sistema operativo un nico formato con independencia de cul sea este sistema de archivos. VFS permite a Linux soportar muchos, incluso muy diferentes, sistemas de ficheros y cada uno presentando un interfaz software comn al VFS. Todos los detalles del sistema de ficheros de Linux son traducidos mediante software de forma que todo el sistema de ficheros parece idntico al resto del kernel de Linux y a los programas que se ejecutan en el sistema. La capa del sistema de Ficheros Virtual de Linux permite al usuario montar de forma transparente diferentes sistemas de ficheros al mismo tiempo. El VFS de Linux mantiene una memoria cache con informacin de cada sistema de ficheros montado y en uso, siempre se debe tener mucho cuidado al actualizar correctamente el sistema de ficheros ya que los datos contenidos en las ante memorias se modifican cuando se crean, escriben y borran ficheros y directorios.

Archivo real Es un objeto que contiene programas, datos o cualquier otro elemento. Un archivo se muestra de manera real, en la informacin del espacio que ocupa en un disco duro o sistema de almacenamiento, en otras palabras su tamao en bytes.

4 de junio de 2013

52

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

5.3 Componentes de un sistema de archivos


En general, un Sistema de Archivos est compuesto por: Mtodos De Acceso. Se ocupan de la manera en que se tendr acceso a la informacin almacenada en el archivo. Ejemplo: Secuencial, Directo, indexado, etc. Administracin De Archivos. Se ocupa de ofrecer los mecanismos para almacenar, compartir y asegurar archivos, as como para hacer referencia a ellos. Administracin De Almacenamiento Secundario. Se ocupa de asignar espacio para los archivos en los dispositivos de almacenamiento secundario. Mecanismos De Integridad. Se ocupan de garantizar que no se corrompa la informacin de un archivo, de tal manera que solo la informacin que deba estar en l, se encuentre ah. Mecanismos de Organizacin Lgica. Contiene las diferentes rutinas y comandos a travs de los cuales el usuario podr estructurar sus archivos virtuales. Sistemas Tericos de Archivos. Su objetivo es el de activar y desactivar a travs de las rutinas de abrir y cerrar archivos y verifica el modo de acceso. Mecanismos de Organizacin Fsica. Traslada las direcciones lgicas en direcciones fsicas correspondientes a las estructuras de memoria secundaria y los buffers en memoria principal necesarios para la transferencia de datos. Mecanismos de E/S. Por cada peticin de acceso al archivo real, este mecanismo genera la secuencia de operaciones elementales de entrada y salida que se necesita. SCHEDULING E/S. En este nivel es donde se tiene el nmero de peticiones pendientes as como de las que se estn realizando y lleva el control y asignacin de tiempo de CPU a las diferentes peticiones de E/S.

5.4 Organizacin lgica y fsica


Toda entidad fsica y lgica en Linux se representa como un archivo en el sistema de archivos de Linux. Las entidades fsicas incluyen discos, impresoras y

4 de junio de 2013

53

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

terminales; las entidades lgicas incluyen directorios y archivos normales, en los que se almacenan documentos y programas. Organizacin fsica En Linux no existen unidades fsicas, sino ficheros que hacen referencia a ellas, integrados en la estructura de ficheros como cualquier otro. El sistema de ficheros de Linux consta de varias partes importantes: Superbloque Tabla de inodos Bloques de datos

En Linux cada bloque es de 512 bytes o de mltiplos de 512. Al igual que el clster era la estrella del sistema de ficheros FAT, en ext3 es el bloque. Organizacin Lgica El ncleo del sistema trabaja con el sistema de archivos a un nivel lgico y no trata directamente con los dispositivos fsicos. Cada disco tiene asociados unos nmeros de dispositivo que son utilizados como ndices en una tabla de funciones del ncleo que determinar cul de ellas es necesario emplear para manejar el disco. El sistema de ficheros de Linux de forma lgica posee una estructura arbrea cuya raz es nica y se representa por / que adems constituye el carcter separador en el camino (Path) de cualquier recurso del sistema.

5.5 Mecanismos de acceso a los archivos


Un sistema de archivos establece los mecanismos para acceder a los datos que contiene y permite o no el acceso a dichos datos en determinadas circunstancias y en caso de alguna inconsistencia posibilita medios para su restauracin. Un sistema de ficheros no slo posee los datos contenidos dentro de los ficheros del

4 de junio de 2013

54

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

sistema de ficheros, adems mantiene la estructura del sistema de ficheros. Mantiene toda la informacin que los usuarios de Linux y procesos ven como ficheros, directorios, enlaces flexibles, informacin de proteccin de ficheros y as. Los tipos de acceso ms conocidos son: Acceso Secuencial: el proceso lee en orden todos los registros del archivo comenzando por el principio, sin poder: Saltar registros. Acceso Aleatorio: el proceso puede leer los registros en cualquier orden utilizando dos mtodos para determinar el punto de inicio de la lectura: Cada operacin de lectura da la posicin en el archivo con la cual iniciar. Una operacin especial (seek) establece la posicin de trabajo pudiendo luego leerse el archivo secuencialmente.

5.6 Manejo de espacio en memoria secundaria


La memoria secundaria requiere que la computadora use sus canales de entrada/salida para acceder a la informacin y se utiliza para almacenamiento a largo plazo de informacin persistente. Linux organiza los intervalos de memoria utilizados por un proceso en lo que se denominan regiones de memoria. Estas regiones estn caracterizadas por una direccin lgica inicial, una longitud y unos ciertos permisos de acceso. Organizacin de las regiones de memoria: una operacin que se realiza muy frecuentemente es la bsqueda de la regin correspondiente a una direccin lineal. Las regiones se utilizan para representar intervalos lgicos con los mismos permisos o el mismo comportamiento. Linux es el encargado de la asignacin de bloques a archivos, de lo que surgen dos cuestiones, en primer lugar, debe asignarle el espacio de Memoria Secundaria a los archivos y, en segundo lugar, es necesario guardar constancia del espacio disponible para asignar. Para manejar los espacios en disco existen los siguientes mtodos: Contiguos. Esta asignacin requiere que cada archivo ocupe un conjunto de direcciones contiguas en el disco, su asignacin es definida por la direccin del primer bloc y la longitud del archivo.

4 de junio de 2013

55

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

Asignacin ligada o encadenada. Cada archivo es una lista ligada de blocks y el directorio contiene un apuntador al primer bloc y al ltimo. La asignacin se hace con bloques individuales, cada bloque contendr un puntero al siguiente bloque de la cadena. La tabla de asignacin de archivos necesita una sola entrada por cada archivo que muestre el bloque de comienzo y la longitud del mismo, cualquier bloque puede aadirse a la cadena. No hay que preocuparse por la fragmentacin externa porque solo se necesita un bloque cada vez.

Asignacin Indexada. Cada archivo tiene su propio bloc de ndice el cual es un arreglo de direcciones de bloc. En esta asignacin la tabla de asignacin de archivos contiene un ndice separado de un nivel para cada archivo: el ndice posee una entrada para cada seccin asignada al archivo. Normalmente, los ndices no estn almacenados fsicamente como parte de la tabla de asignacin de archivos. Ms exactamente el ndice de archivo se guardara en un bloque aparte y la entrada del archivo en la entrada de asignacin apuntara a dicho bloque.

Al espacio de memoria secundaria que guarda datos que aparentan estar en memoria principal se le llama espacio de trasiego o intercambio, en el caso de GNU/Linux, espacio swap. El uso de memoria secundaria en Linux: Permite que la cantidad de espacio dedicado a los procesos no est limitado por la cantidad de memoria principal instalada. Es posible tener cargados ms procesos y es posible cargar procesos ms grandes. Reduce la velocidad de ejecucin. Cuando se ejecutan procesos que corren en memoria secundaria no se puede igualar la velocidad de proceso que se conseguira si se utilizase memoria principal.

Linux debe gestionar la traduccin de direcciones entre el espacio de memoria virtual y fsico. Para este fin Linux se apoya en hardware especfico como la MMU (unidad de gestin de memoria, normalmente integrada en la CPU).

5.7 Modelo jerrquico


La gestin adecuada del acceso a disco es otro de los aspectos importantes en el proceso de administracin de sistemas operativos multiusuario y multitarea y es imprescindible mantener una estructura bsica con un cierto nivel organizativo. El sistema operativo interacta con los usuarios y las aplicaciones, y se hace necesario un

4 de junio de 2013

56

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

modelo de seguridad dependiente de la forma en que se almacenan los ficheros en los dispositivos. Un sistema de archivos puede verse desde dos categoras lgicas de ficheros: Archivos compartidos con otras mquinas o privados. Archivos variables o estticos. Por lo tanto, un sistema de archivos es un subrbol de directorios con un directorio raz que debe tener unos permisos acordes con las necesidades de acceso a sus archivos, una estructura lgica de almacenamiento y un punto de montaje adecuado en el rbol de directorios global del servidor. Linux Proporciona un espacio de nombres global y jerrquico para los ficheros, directorios y otros objetos relacionados con los ficheros. Adems, proporciona las funciones del sistema de ficheros. Al abrir un archivo Linux: Busca en su directorio el nombre del archivo. Extrae los atributos y direcciones en disco. Graba esta informacin en una tabla de memoria real. Todas las referencias subsecuentes al archivo utilizarn la informacin de la memoria principal.

5.8 Mecanismos de recuperacin en caso de falla


La recuperacin de datos de Linux es muy diferente de otros tipos de la recuperacin. El procedimiento para la recuperacin implica extraer datos de varios sistemas operativos basados en el Linux y unidad de disco duro cuando usted se manejara un huevo. Varia causa del fracaso de Datos Linux es debido a fracasos de unidades de disco duro que son causados debido a materiales de embarque malos. La precaucin para ser tomada a fin de prevenir la unidad de disco del fracaso es primeros medios de abrigo en un bolso antiesttico para prevenir la electricidad esttica, usar una caja que es al menos dos veces el tamao de los medios de modo que los medios puedan ser suspendidos en medio de la caja, paquete bien con espuma, abrigo de burbuja, o peridico entonces los medios no se movern a partir del medio de la caja. Linux no es seguramente inmune a la amenaza de un fallo en la alimentacin de corriente o peor. Una de las mejores opciones ah hoy tendra que ser la Recuperacin de Datos RLinux. El R-Linux es una recuperacin de datos y herramienta no borrada para el sistema

4 de junio de 2013

57

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

de archivo de Linux. Recuperacin de archivo despus de fallo en la alimentacin de corriente, fallo del sistema, infeccin de virus o reforma de particin, hasta para el sistema de archivo diferente. La creacin de la imagen archiva un disco entero, particin o su parte. Tal imagen de unidad de disco puede ser tratada como la unidad de disco regular. Los archivos recuperados pueden ser ahorrados en cualquier disco accesible por el sistema operativo de servidor. La Recuperacin Rpida LINUX es el software de recuperacin de datos LINUX no destructivo. Hay slo tres pasos para realizar la operacin completa. Ellos son el Anlisis, Seleccionar y Ahorrar. El Software de Recuperacin de Datos de Linux usa el algoritmo rpido para buscar y restaurar particiones perdidas, borradas, archivos y carpetas y de ah es el software de recuperacin de datos Linux rpido, simple y fcil de usar, que le ayuda a recuperar sus datos perdidos y archivos en el protocolo en caso de fallo del sistema de disco o desastres de prdida de datos y de ah apoya su continuidad comercial. Los datos son recuperados entonces dentro de una materia de horas, comparadas a una recuperacin de datos tpica puede tomar dos das hasta cinco das. La Recuperacin de Datos de la recuperacin de datos remota afirma que esto es la primera compaa para ofrecer la recuperacin remota de datos para el sistema operativo Linux. Muchos usuarios dan vuelta a cintas de reserva para recuperar ficheros de datos perdidos. Lamentablemente, la capacidad de restaurar datos perdidos est directamente relacionada con la vez pasada que el sistema fue hecho una copia de seguridad y la calidad de aquel proceso. La Recuperacin de Datos de Linux es la tarea difcil y requiere una maestra y profesional talentoso a fin de recuperar los datos.

4 de junio de 2013

58

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

Proteccin y seguridad
6.1 concepto proteccin y objetivos de

Ante todo Linux es un sistema multiusuario real. Puede haber varios usuarios distintos trabajando a la vez cada uno desde su terminal. El sistema tiene la obligacin de proteger a unos usuarios frente a otros y protegerse a s mismo. Linux es una excelente estacin de trabajo aislada, pero lo habitual es que cada mquina Linux est conectada a una red y adems est prestando servicios de red. El sistema tiene la obligacin de garantizar los servicios que presta. Adems, con la generalizacin de las conexiones con Internet y el rpido desarrollo del software, la seguridad se est convirtiendo en una cuestin cada vez ms importante. Ahora, la seguridad es un requisito bsico, ya que la red global es insegura por definicin. Mientras sus datos estn almacenados en un soporte informtico, mientras sus datos vayan desde un sistema X a otro sistema Y a travs de un medio fsico, Internet, por ejemplo, puede pasar por ciertos puntos durante el camino proporcionando a otros usuarios la posibilidad de interceptarlos, e incluso alterar la informacin contenida. Incluso algn usuario de su sistema puede modificar datos de forma maliciosa para hacer algo que nos pueda resultar perjudicial. Con el acceso masivo y barato a Internet se han reducido notablemente los costes de un atacante para asaltar un sistema en red, a la vez que ha aumentado paralelamente el nmero de potenciales atacantes. Tambin queremos remarcar el carcter dinmico de la seguridad de los sistemas en red. Continuamente aparecen nuevos mtodos para conseguir accesos indebidos o comprometer el correcto funcionamiento de la red. Esto obliga a estar actualizado permanentemente, y consultar las publicaciones electrnicas que informan de los ltimos

4 de junio de 2013

59

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

sucesos detectados. Evidentemente, estas publicaciones informan principalmente sobre actividades que ya se han llevado a cabo, por lo que esperamos que no sea el primero en sufrirlas. Pero tambin se puede encontrar informacin sobre debilidades detectadas antes de que se lleven a cabo. Por todo esto, este curso no pretende proporcionar una lista actualizada de programas o servicios potencialmente inseguros o de programas que afectan a la seguridad. Como continuamente aparecen nuevos programas para comprometer la seguridad de las redes y de las comunicaciones, lo que s haremos ser indicar los lugares ms habituales donde buscar una informacin actualizada de ese tipo, y algunos mtodos generales para prevenir que esos programas tengan xito en su sistema.

6.2 funciones del sistema de proteccin


Como probablemente sabr, las fuentes del ncleo de Linux son abiertas. Cualquiera puede obtenerlas, analizarlas y modificarlas. Este modelo de desarrollo abierto, que siguen tanto Linux como la mayora de las aplicaciones que se ejecutan sobre l, conduce a altos niveles de seguridad. Es cierto que cualquiera puede acceder al cdigo fuente para encontrar las debilidades, pero no es menos cierto que el tiempo que tarda en aparecer la solucin para cualquier debilidad se mide ms fcilmente en horas que en das. Gracias a esto, Linux es conocido por su alto nivel de estabilidad que parte del propio ncleo del sistema operativo. Seguridad fsica Las primeras medidas de seguridad que necesita tener en cuenta son las de seguridad fsica de sus sistemas. Hay que tomar en consideracin quines tienen acceso fsico a las mquinas y si realmente deberan acceder. El nivel de seguridad fsica que necesita en su sistema depende de su situacin concreta. Un usuario domstico no necesita preocuparse demasiado por la proteccin fsica, salvo proteger su mquina de un nio o algo as. Linux proporciona los niveles exigibles de seguridad fsica para un sistema operativo:

Un arranque seguro Posibilidad de bloquear las terminales Por supuesto, las capacidades de un sistema multiusuario real.

4 de junio de 2013

60

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

Seguridad en el arranque Cuando alguien inicia el sistema operativo Linux se encuentra con una pantalla de login: el sistema est pidiendo que se identifique. Si es un usuario conocido, podr iniciar una sesin y trabajar con el sistema. Si no lo es, no tendr opcin de hacer absolutamente nada. Adems, el sistema registra todos los intentos de acceso (fallidos o no), por lo que no pasarn desapercibidos intentos repetidos de acceso no autorizado. LILO (Linux Loader) es el encargado de cargar el sistema operativo en memoria y pasarle informacin para su inicio Y ahora algunas consideraciones generales:

Tenga en cuenta que ningn sistema es realmente seguro si alguien, con los conocimientos necesarios, puede usar su propio disco para arrancar. Si tiene una mquina servidora, y tiene una clave para el arranque, la mquina no se reiniciar sin suministrar la clave y tendr que acudir a introducirla en el caso de una parada no prevista. Bloqueo de la consola En los entornos Unix es conocido el truco de ejecutar en una terminal, que alguien ha dejado inocentemente abierto, un guion que simule la pantalla de presentacin al sistema. Entonces un usuario incauto introducir su nombre y clave, que quedarn a merced del autor del engao. Si se aleja de su mquina de vez en cuando, estara bien poder bloquear su consola para que nadie pueda manipularla o mirar su trabajo. Dos programas que hacen esto son xlock y vlock. xlock bloquea la pantalla cuando nos encontramos en modo grfico. Est incluido en la mayora de las distribuciones Linux que soportan X. En general puede ejecutar xlock desde cualquier xterm de su consola y bloquear la pantalla de forma que necesitar su clave para desbloquearla. Mire la pgina de manual para ver ms detalles, algunos curiosos. vlock es un simple programa que le permite cerrar alguna o todas las consolas virtuales de su mquina Linux. Puede bloquear slo aqulla en la que est trabajando o todas. Si slo cierra una, las otras se pueden abrir y utilizar la consola, pero no se podr usar su vty hasta que no la desbloquee. Desde luego, bloquear una consola prevendr que alguien manipule su trabajo, pero no previene de reinicios de la mquina u otras formas de deteriorar su trabajo.

4 de junio de 2013

61

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

Cuentas de usuario, grupos Cada usuario pertenece a uno o varios grupos y cada recurso pertenecen a un usuario y un grupo. Los permisos para un recurso se pueden asignar al propietario, al grupo y a otros (resto de los usuarios). Ahora bien, para mantener un sistema seguro, pero funcional, tendremos que realizar las combinaciones necesarias entre el propietario y grupo de un recurso con los permisos de los propietarios, grupos y otros. Por ejemplo, la unidad de disco flexible tiene las siguientes caractersticas:

Propietario: root con permiso de lectura y escritura. Grupo: floppy con permiso de lectura y escritura. Otros: resto de los usuario con permiso de lectura.

El administrador tiene que conocer las necesidades de cada uno de sus usuarios y asignarle los mnimos privilegios para que pueda realizar su trabajo sin resultar un peligro para otros usuarios o el sistema. Ms abajo veremos otro mecanismo para poder utilizar un recurso sobre el cual no tenemos privilegios. No se asuste. Los valores que traen por defecto las distribuciones de Linux son suficientes para mantener el sistema seguro. Otro peligro potencial para el sistema es mantener cuentas abiertas que se han dejado de utilizar. Estas cuentas pueden constituir un buen refugio para un potencial atacante y pasar desapercibidas sus acciones. Seguridad de las claves La seguridad de una sola cuenta puede comprometer la seguridad de todo el sistema. Esto es una realidad ante la que debemos protegernos. Por un lado tenemos que asegurarnos de que nuestros usuarios utilizan claves slidas:

No deben ser una palabra conocida. Deberan contener letras, nmeros y caracteres especiales. Deben ser fciles de recordar y difciles de adivinar.

Para comprobar que este requisito se verifica en nuestro sistema, podemos usar los mismos mecanismos que utilizan los atacantes. Existen varios programas que van probando varias palabras de diccionario, claves habituales y combinaciones de caracteres, que son cifrados con el mismo algoritmo que usa el sistema para mantener sus claves;
4 de junio de 2013

62

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

despus son comparadas con el valor de la clave cifrada que queremos averiguar hasta que el valor obtenido de un cifrado coincide con una clave cifrada. Posteriormente notificaremos al usuario que su clave es dbil y le solicitaremos que la modifique. Usando este mecanismo, al menos podemos garantizar que no estaremos en inferioridad de condiciones con respecto a los atacantes locales. Seguridad del ncleo Linux tiene la gran ventaja de tener disponible el cdigo fuente del ncleo; en realidad Linux propiamente dicho es slo el ncleo. Esto nos permite la posibilidad de crear ncleos a medida de nuestras necesidades. Y parte de nuestras necesidades ser la mejora de la seguridad. Para compilar el ncleo primero tendremos que configurar las opciones que nos interesen. Las fuentes del ncleo se guardan habitualmente en el directorio correspondiente, y una vez situados en l, tendremos que ejecutar, si estamos en modo grfico. As nos aparecen todas las opciones de configuracin. Dentro de ellas nos vamos a fijar en las que estn relacionadas con la seguridad, viendo una breve explicacin de lo que hacen y cmo se usan. Como el ncleo controla las caractersticas de red de su sistema, es importante que el ncleo tenga las opciones que garanticen la seguridad y que el propio ncleo no pueda ser comprometido. Para prevenir algunos de los ltimos ataques de red, debe intentar mantener una versin del ncleo actualizada. Una de las caractersticas ms interesantes del ncleo Linux es la posibilidad de realizar enmascaramiento de direcciones. Con esta tcnica podremos dar acceso a Internet a una red local con direcciones privadas de forma transparente, es decir, sin ningn tipo de modificacin en la configuracin de las aplicaciones clientes, a diferencia de los proxies clsicos. Dispositivos del ncleo Hay algunos dispositivos de bloque y carcter disponibles en Linux que tambin le resultarn tiles para mantener la seguridad de sus sistemas.

4 de junio de 2013

63

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

Comunicaciones seguras Por ltimo, nos interesar mantener unas comunicaciones seguras para garantizar la privacidad e integridad de la informacin. Actualmente existen las herramientas necesarias para cada necesidad.

6.3

Implementacin de la matriz de acceso

La mayor parte de las entradas de la matriz estn vacas. Tabla global Consiste en un conjunto de tripletas ordenadas: Si no existe, se genera error. Desventajas: La tabla es grande, por lo tanto no puede estar en memoria principal. Adems hay informacin repetida, ya que si todos los dominios usan de la misma forma un mismo objeto, debo tener una entrada de la tabla para cada dominio. En este caso se puede implementar un conjunto de derechos por omisin, que contiene todo los objetos a los que puedo acceder desde cualquier dominio. Lista de capacidades para dominios es igual que en el caso anterior, pero para los dominios. Cada dominio tiene una lista de capacidades (objetos y operaciones). El usuario puede acceder a estas listas indirectamente, ya que estn protegidas por el sistema. Proteccin de capacidades. Cada objeto tiene una etiqueta para denotar su tipo (puntero, booleano, valor no inicializado). No son directamente accesibles al usuario. El espacio de direcciones de un programa se puede dividir: Una parte accesible con datos e instrucciones normales. Otra parte con la lista de capacidades accesibles. Un mecanismo de cerradura y llave Es un trmino medio entre las dos listas (capacidades y acceso). Cada objeto tiene una lista de patrones de bit llamada cerradura, y cada dominio tiene otra llamada llave. Para que un proceso que se ejecuta en un dominio pueda acceder a un objeto, el dominio debe tener la llave adecuada. Comparacin Cuando un usuario crea un objeto, establece sus derechos, pero es difcil determinar el conjunto de derechos para cada dominio. Las listas de capacidades son tiles para localizar informacin de un proceso en particular pero no se corresponden con las necesidades del usuario. El mecanismo de cerradura y llave, es un trmino medio.

4 de junio de 2013

64

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

Puede ser eficaz y flexible, dependiendo de la longitud de las llaves, y los privilegios de acceso se pueden revocar para un dominio, simplemente cambiando su llave. La mayor parte de los sistemas usa una combinacin entre listas de acceso y capacidades.

6.4 Proteccin basada en el lenguaje


La proteccin se logra con la ayuda del ncleo de Linux que valida los intentos de acceso a recursos. El gasto de inspeccionar y validar todos los intentos de acceso a todos los recursos es muy grande, por lo tanto debe ser apoyada por hardware. Al aumentar la complejidad de Linux, se deben refinar los mecanismos de proteccin. Los sistemas de proteccin, no solo se preocupan de si puedo acceder a un recurso, sino tambin de cmo lo accedo, por lo tanto los diseadores de aplicaciones deben protegerlos, y no solo Linux. Los diseadores de aplicaciones mediante herramientas de los lenguajes de programacin pueden declarar la proteccin junto con la tipificacin de los datos. Ventajas: Las necesidades de proteccin se declaran sencillamente y no llamando procedimientos de Linux. Las necesidades de proteccin pueden expresarse independientemente de los recursos que ofrece Linux. El diseador no debe proporcionar mecanismos para hacer cumplir la proteccin. Los privilegios de acceso estn ntimamente relacionados con el tipo de datos que se declara. Diferencias entre las distintas formas de proteccin: Seguridad: La obligacin de cumplimiento por ncleo ofrece un grado de seguridad que el cdigo de seguridad ofrecido por el compilador. Flexibilidad: La flexibilidad de la implementacin por ncleo es limitada. Si un lenguaje no ofrece suficiente flexibilidad, se puede extender o sustituir, perturbando menos cambios en el sistema que si tuviera que modificarse el ncleo.

4 de junio de 2013

65

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

Eficiencia Se logra mayor eficiencia cuando el hardware apoya la proteccin. La especificacin de proteccin en un lenguaje de programacin permite describir en alto nivel las polticas de asignacin y uso de recursos. El programador de aplicaciones necesita un mecanismo de control de acceso seguro y dinmico para distribuir capacidades a los recursos del sistema entre los procesos de usuario. Las construcciones que permiten al programador declarar las restricciones tienen tres operaciones bsicas: Distribuir capacidades de manera segura y eficiente entre procesos clientes. Especificar el tipo de operaciones que un proceso podra invocar en un recurso asignado. Especificar el orden en que un proceso dado puede invocar las operaciones de un recurso.

6.5 Concepto de seguridad


Los trminos seguridad y proteccin se utilizan en forma indistinta. Sin embargo, es til hacer una distincin entre los problemas generales relativos a la garanta de que los archivos no sea ledos o modificados por personal no autorizado, lo que incluye aspectos tcnicos, de administracin, legales y polticos, por un lado y los sistemas especficos del sistema operativo utilizados para proporcionar la seguridad, por el otro. Para evitar la confusin, utilizaremos el trmino seguridad para referirnos al problema general y el trmino mecanismo de proteccin para referirnos a los mecanismos especficos del sistema operativo utilizado para resguardar la informacin de la computadora. La seguridad tiene muchas facetas. Dos de las ms importantes son la perdida de datos y los intrusos. Algunas de las causas ms comunes de la perdida de datos son: Actos divinos: Incendios, inundaciones, terremotos, guerras, revoluciones o ratas que roen las cintas o discos flexibles. Errores de Hardware o Software: Mal funcionamiento de la CPU, discos o cintas ilegibles, errores de telecomunicacin o errores en el programa. Errores Humanos: Entrada incorrecta de datos, mal montaje de las cintas o el disco, ejecucin incorrecta del programa, perdida de cintas o discos. La mayora de estas causas se pueden enfrentar con el mantenimiento de los respaldos adecuados; de preferencia, en un lugar alejado de los datos originales.

4 de junio de 2013

66

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

Un problema ms interesante es que hacer con los intrusos. Estos tienen dos variedades. Los intrusos pasivos solo desean leer archivos que no estn autorizados a leer. Los intrusos activos son ms crueles: Desean hacer cambios no autorizados a los datos. Si se desea disear un sistema seguro contra los intrusos, es importante tener en cuenta el tipo de intruso con el que se desea tener proteccin. Algunas de las categoras comunes son: Curiosidad casual de usuarios no tcnicos. Muchas personas tienen en sus escritorios terminales para sistemas con tiempo compartido y, por la naturaleza humana, algunos de ellos leern el correo electrnico de los dems u otros archivos, si no existen barreras en frente de ellos. Por ejemplo la mayora de los sistemas UNIS tienen pre definido que todos los archivos se pueden leer de manera pblica. Conocidos husmeando. Algunos estudiantes, programadores de sistemas, operadores y dems personal tcnico consideran como un reto personal romper la seguridad del sistema de cmputo local. A menudo son muy calificados y estn dispuestos a invertir una cantidad sustancial de su tiempo en este esfuerzo. Un intento deliberado de hacer dinero. Algunos programadores en banco han intentado penetrar un sistema bancario con el fin de robarle al banco. Los esquemas han variado desde cambiar el software para truncar y no redondear el inters, para quedarse con una pequea fraccin de dinero, hasta sacar dinero de las cuentas que no se han utilizado en anos o el "correo negro. Espionaje comercias o militar. El espionaje indica un intento serio y fundamentado por parte de un competidor u otro pas para robar programas, secretos comerciales, patentes, tecnologa, diseo de circuitos, planes de comercializacin, etc. A menudo, este intento implica la cobertura de cables o el levantamiento de antenas hacia la computadora con el fin de recoger su radiacin electromagntica. Debe quedar claro que el intento por mantener la KGB lejos de los secretos militares es un poco distinto del intento por evitar que los estudiantes inserten un mensaje gracioso en el sistema. La cantidad de esfuerzo que alguien pone en la seguridad y la proteccin depende claramente de quien se piensa sea el enemigo. Otro aspecto del problema de la seguridad es la primaca: la proteccin de las personas respecto del mal uso de la informacin en contra de uno mismo. Esto implica en forma casi inmediata muchos aspectos morales y legales.

4 de junio de 2013

67

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

Para proteger un sistema, debemos optar las necesarias medidas de seguridad en cuatro niveles distintos: 1. Fsico. El nodo o nodos que contengan los sistemas informticos deben dotarse de medidas de seguridad fsicas frente a posibles intrusiones armadas o subrepticias por parte de potenciales intrusos. Hay que dotar de seguridad tanto a las habitaciones donde las maquinas residan como a los terminales o estaciones de trabajo que tengan acceso a dichas maquinas. 2. Humano. La autorizacin de los usuarios debe llevarse a cabo con cuidado, para garantizar que solo los usuarios apropiados tengan acceso al sistema. Sin embargo, incluso los usuarios autorizados pueden verse motivados para permitir que otros usen su acceso (por ejemplo, a cambio de un soborno). Tambin pueden ser engaados para permitir el acceso de otros, mediante tcnicas de ingeniera social. Uno de los tipos de ataque basado en las tcnicas de ingeniera social es el denominado phishing; con este tipo de ataque, un correo electrnico o pgina web de aspecto autentico llevan a engao a un usuario para que introduzca informacin confidencial. Otra tcnica comnmente utilizada es el anlisis de desperdicios, un trmino autorizado a la computadora (por ejemplo, examinando el contenido de las papeleras, localizando listines de telfonos encontrando notas con contraseas). Estos problemas de seguridad son cuestiones relacionadas con la gestin y con el personal, ms que problemas relativos a los sistemas operativos. 3. Sistema operativo. El sistema debe auto protegerse frente a los diversos fallos de seguridad accidentales o premeditados. Un problema que este fuera de control puede llegar a constituir un ataque accidental de denegacin de servicio. Asimismo, una cierta consulta a un servicio podra conducir a la revelacin de contraseas o un desbordamiento de la pila podra permitir que se iniciara un proceso no autorizado. La lista de posibles fallos es casi infinita. 4. Red. Son muchos los datos en los modernos sistemas informticos que viajen a travs de lneas arrendadas privadas, de lneas compartidas como Internet, de conexiones inalmbricas o de lneas de acceso telefnico. La interceptacin de estos datos podra ser tan daina como el acceso a un computador, y la interrupcin en la comunicacin podra constituir un ataque remoto de denegacin de servicio, disminuyendo la capacidad de uso del sistema y la confianza en el mismo por parte de los usuarios. Si queremos poder garantizar la seguridad del sistema operativo, es necesario garantizar la seguridad en los primeros dos niveles. Cualquier debilidad en uno de los niveles altos de seguridad (fsico o humano) podra puentear las medidas de seguridad que son

4 de junio de 2013

68

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

estrictamente de bajo nivel. As, la frase que afirma que una cadena es tan fuerte como el ms dbil de sus eslabones es especialmente cierta cuando hablamos de seguridad de los sistemas. Para poder mantener la seguridad, debemos contemplar todos estos aspectos. Adems, el sistema debe proporcionar mecanismos de proteccin para permitir la implementacin de las caractersticas de seguridad. Sin la capacidad de autorizar a los usuarios y procesos, de controlar su acceso y de registrar sus actividades, sera imposible que un sistema operativo implementara medidas de seguridad o se ejecutara de forma segura. Para soportar un esquema global de proteccin hacen falta mecanismos de proteccin hardware.

6.6 Clasificacin de la seguridad


La seguridad interna est relacionada a los controles incorporados al hardware y al Sistema Operativo para asegurar los recursos del sistema. Seguridad Externa La seguridad externa consiste en:

Seguridad fsica. Seguridad operacional.

La seguridad fsica incluye:


Proteccin contra desastres (como inundaciones, incendios, etc.). Proteccin contra intrusos.

En la seguridad fsica son importantes los mecanismos de deteccin, algunos ejemplos son:

Detectores de humo. Sensores de calor. Detectores de movimiento.

La proteccin contra desastres puede ser costosa y frecuentemente no se analiza en detalle; depende en gran medida de las consecuencias de la perdida.

4 de junio de 2013

69

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

La seguridad fsica trata especialmente de impedir la entrada de intrusos:

Se utilizan sistemas de identificacin fsica: o Tarjetas de identificacin. o Sistemas de huellas digitales. o Identificacin por medio de la voz.

Seguridad Operacional Consiste en las diferentes polticas y procedimientos implementados por la administracin de la instalacin computacional. La autorizacin determina que acceso se permite y a quien. La clasificacin divide el problema en sus problemas:

Los datos del sistema y los usuarios se dividen en clases: o A las clases se conceden diferentes derechos de acceso.

Un aspecto crtico es la seleccin y asignacin de personal:


La pregunta es si se puede confiar en la gente. El tratamiento que generalmente se da al problema es la divisin de responsabilidades: o Se otorgan distintos conjuntos de responsabilidades. o No es necesario que se conozca la totalidad del sistema para cumplir con esas responsabilidades. o Para poder comprometer al sistema puede ser necesaria la cooperacin entre muchas personas: Se reduce la probabilidad de violar la seguridad. o Debe instrumentarse un gran nmero de verificaciones y balances en el sistema para ayudar a la deteccin de brechas en la seguridad. o El personal debe estar al tanto de que el sistema dispone de controles, pero: Debe desconocer cuales son esos controles: Se reduce la probabilidad de poder evitarlos. Debe producirse un efecto disuasivo respecto de posibles intentos de violar la seguridad.

4 de junio de 2013

70

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

Para disear medidas efectivas de seguridad se debe primero:


Enumerar y comprender las amenazas potenciales. Definir qu grado de seguridad se desea (y cuanto se est dispuesto a gastar en seguridad). Analizar las contramedidas disponibles.

6.7 Validacin y amenazas al sistema


Identificar cada usuario que est trabajando en el sistema (usando los recursos). Uso de contraseas. Vulnerabilidad de contraseas.
o o o

o Que sean complejas y difciles de adivinar. o Cambiarlas de vez en cuando. o Peligro de prdida del secreto.

La contrasea debe guardarse cifrada. Proteccin por Contrasea Las clases de elementos de autentificacin para establecer la identidad de una persona son: Algo sobre la persona: Ej.: huellas digitales, registro de la voz, fotografa, firma, etc. Algo posedo por la persona: o Ej.: insignias especiales, tarjetas de identificacin, llaves, etc. Algo conocido por la persona: o Ej.: contraseas, combinaciones de cerraduras, etc.
o

El esquema ms comn de autentificacin es la proteccin por contrasea: El usuario elige una palabra clave, la memoriza, la teclea para ser admitido en el sistema computarizado:
o

La clave no debe desplegarse en pantalla ni aparecer impresa.

4 de junio de 2013

71

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

La proteccin por contraseas tiene ciertas desventajas si no se utilizan criterios adecuados para: Elegir las contraseas.

Comunicarlas fehacientemente en caso de que sea necesario. Destruir las contraseas luego de que han sido comunicadas. Modificarlas luego de algn tiempo.

Los usuarios tienden a elegir contraseas fciles de recordar: Nombre de un amigo, pariente, perro, gato, etc.

Numero de documento, domicilio, patente del auto, etc.

Estos datos podran ser conocidos por quien intente una violacin a la seguridad mediante intentos repetidos, por lo tanto debe limitarse la cantidad de intentos fallidos de acierto para el ingreso de la contrasea. La contrasea no debe ser muy corta para no facilitar la probabilidad de acierto. Tampoco debe ser muy larga para que no se dificulte su memorizacin, ya que los usuarios la anotaran por miedo a no recordarla y ello incrementara los riesgos de que trascienda. Contraseas de un solo uso Al final de cada sesin, se le pide al usuario que cambie la contrasea. Si alguien roba una contrasea, el verdadero usuario se dar cuenta cuando vaya a identificarse de nuevo, pues el impostor habr cambiado la contrasea, con lo que el fallo de seguridad queda detectado. Verificacin de Amenazas Es una tcnica segn la cual los usuarios no pueden tener acceso directo a un recurso: Solo lo tienen las rutinas del S. O. llamadas programas de vigilancia.

4 de junio de 2013

72

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO


El usuario solicita el acceso al S. O. El S. O. niega o permite el acceso. El acceso lo hace un programa de vigilancia que luego pasa los resultados al programa del usuario. Permite: o Detectar los intentos de penetracin en el momento en que se producen. o Advertir en consecuencia.

Amenazas relacionadas con los programas Los procesos son junto con el kernel, el nico medio de realizar un trabajo til en una computadora. Por tanto, un objetivo comn de los piratas informticos consiste en escribir un programa que cree una brecha de seguridad. De hecho, las mayoras de las brechas de seguridad no relacionadas con programas tienen por objetivos crear una brecha que si este basada en un programa. CABALLO DE TROYA Definicin.- Un programa indudablemente til e inocente que contiene cdigos escondidos que permiten la modificacin no autorizada y la explotacin o destruccin de la informacin. Los programas caballo de Troya se distribuyen por lo general por Internet. Los juegos, freeware y protectores de pantalla son los medios comunes que utilizan los caballos de Troya. Se denomina troyano (o caballo de Troya, traduccin ms fiel del ingls Trojan horse aunque no tan utilizada) a un programa malicioso capaz de alojarse en computadoras y permitir el acceso a usuarios externos, a travs de una red local o de Internet, con el fin de recabar informacin o controlar remotamente a la maquina anfitriona. Un troyano no es de por s, un virus, aun cuando tericamente pueda ser distribuido y funcionar como tal. La diferencia fundamental entre un troyano y un virus consiste en su finalidad. Para que un programa sea un "troyano" solo tiene que acceder y controlar la maquina anfitriona sin ser advertido, normalmente bajo una apariencia inocua. Al contrario que un virus, que es un husped destructivo, el troyano no necesariamente provoca danos porque no es su objetivo. Suele ser un programa pequeo alojado dentro de una aplicacin, una imagen, un archivo de msica u otro elemento de apariencia inocente, que se instala en el sistema al ejecutar

4 de junio de 2013

73

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

el archivo que lo contiene. Una vez instalado parece realizar una funcin til (aunque cierto tipo de troyanos permanecen ocultos y por tal motivo los antivirus o anti troyanos no los eliminan) pero internamente realiza otras tareas de las que el usuario no es consciente, de igual forma que el Caballo de Troya que los griegos regalaron a los troyanos. Habitualmente se utiliza para espiar, usando la tcnica para instalar un software de acceso remoto que permite monitorizar lo que el usuario legtimo de la computadora hace y, por ejemplo, capturar las pulsaciones del teclado con el fin de obtener contraseas u otra informacin sensible. La mejor defensa contra los troyanos es no ejecutar nada de lo cual se desconozca el origen y mantener software antivirus actualizado y dotado de buena heurstica; es recomendable tambin instalar algn software anti troyano, de los cuales existen versiones gratis aunque muchas de ellas constituyen a su vez un troyano. Otra solucin bastante eficaz contra los troyanos es tener instalado un firewall. Otra manera de detectarlos es inspeccionando frecuentemente la lista de procesos activos en memoria en busca de elementos extraos, vigilar accesos a disco innecesarios, etc. Lo peor de todo es que ltimamente los troyanos estn siendo diseados de tal manera que es imposible poder detectarlos excepto por programas que a su vez contienen otro tipo de troyano, inclusive y aunque no confirmado, existen troyanos dentro de los programas para poder saber cul es el tipo de uso que se les y poder sacar mejores herramientas al mercado llamados tambin "troyanos sociales" Los troyanos estn actualmente ilegalizados, pero hay muchos crackers que lo utilizan. PUERTA TRASERA En la informtica, una puerta trasera, es una secuencia especial dentro del cdigo de programacin mediante el programador puede acceder o escapar de un programa en caso de emergencia o contingencia en algn problema. A su vez, estas puertas tambin pueden ser perjudiciales debido a que los crackers al descubrirlas pueden acceder a un sistema en forma ilegal y aprovecharse la falencia. A pesar de que no se consideran propiamente como virus, representan un riesgo de seguridad importante, y usualmente son desconocidas la inmensa gama de problemas que

4 de junio de 2013

74

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

estas puedan llegar a producir. Al hablar de estas nos referimos genricamente a una forma "no oficial" de acceso a un sistema o a un programa. Algunos programadores dejan puertas traseras a propsito, para poder entrar rpidamente en un sistema; en otras ocasiones existen debido a fallos o errores. Ni que decir tiene que una de las formas tpicas de actuacin de los piratas informticos es localizar o introducir a los diversos sistemas una puerta trasera y entrar por ella. Generalmente estos se hacen pasar por otros, es decir, se ocultan en otro programa que les sirve de caballo de Troya para que el usuario los instale por error. Como todo en Internet se basa en la arquitectura cliente / servidor, solo se necesita instalar un programa servidor en una mquina para poder controlarla a distancia desde otro equipo, si se cuenta con el cliente adecuado, esta puede bien ser la computadora de un usuario descuidado o poco informado. Las puertas traseras son programas que permiten acceso prcticamente ilimitado a un equipo de forma remota. El problema, para quien quiere usar este ataque, es que debe convencerlo a usted de que instale el servidor. Por eso, si aparece un desconocido ofrecindole algn programa maravilloso y tentador, no le crea de inmediato. Lo que estn probablemente a punto de darle es un troyano, un servidor que le proporcionara a algn intruso acceso total a su computadora. Con todo el riesgo que esto implica, hay una forma simple y totalmente segura de evitarlo: no acepte archivos ni mucho menos ejecute programas que le hayan mandado siendo estos sobre todo de procedencia dudosa. El hecho que se les clasifique como software malvolo en algunos casos, es que cuando corren, se instalan en el sistema sin necesidad de la intervencin del usuario y una vez instalados en la computadora, no se pueden visualizar estas aplicaciones en la lista de tareas en la mayora de los casos. Concluimos esto, recomendando ciertas medidas muy bsicas para estar a salvo de las puertas traseras y el delicado riesgo para la seguridad que estas representan.

4 de junio de 2013

75

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

Caractersticas principales:

El tipo de actuacin es retardada. El creador es consciente en todo momento del posible dao que puede causar y del momento que este se puede producir. Este ataque est determinado por una condicin que determina el creador dentro del cdigo. El cdigo no se replica. Los creadores de este tipo de cdigos malignos suelen ser personal interno de la empresa, que por discrepancias con la direccin o descontento suelen programarlas para realizar el dao.

VIRUS Un virus informtico es un programa que se copia automticamente y que tiene por objeto alterar el normal funcionamiento de la computadora, sin el permiso o el conocimiento del usuario. Aunque popularmente se incluye al "malware" dentro de los virus, en el sentido estricto de esta ciencia los virus son programas que se replican y ejecutan por s mismos. Los virus, habitualmente, reemplazan archivos ejecutables por otros infectados con el cdigo de este. Los virus pueden destruir, de manera intencionada, los datos almacenados en un ordenador, aunque tambin existen otros ms benignos, que solo se caracterizan por ser molestos. El funcionamiento de un virus informtico es conceptualmente simple. Se ejecuta un programa que est infectado, en la mayora de las ocasiones, por desconocimiento del usuario. El cdigo del virus queda residente (alojado) en la memoria RAM de la computadora, aun cuando el programa que lo contena haya terminado de ejecutarse. El virus toma entonces el control de los servicios bsicos del sistema operativo, infectando de, manera posterior, archivos ejecutables que sean llamados para su ejecucin. Finalmente se aade el cdigo del virus al del programa infectado y se graba en disco, con lo cual el proceso de replicado se completa. Amenazas del Sistema y de la Red Las amenazas basadas en programas utilizan tpicamente un fallo en los mecanismos de proteccin de un sistema para atacar a los programas. Por contraste, las amenazas del
4 de junio de 2013

76

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

sistema y de la red implican el abuso de los servicios y de las conexiones de red. En ocasiones, se utiliza un ataque del sistema y de la red para lanzar un ataque de programa, y viceversa. Es importante destacar que las mascaradas y los ataques por reproduccin tambin resultan comunes en las redes que interconectan los sistemas. De hecho, estos ataques son ms efectivos y ms difciles de contrarrestar cuando estn implicados mltiples sistemas. La generalizacin de este concepto es que el compartir secretos (para demostrar la identidad y en forma de claves de cifrado) es una necesidad para la autenticacin del cifrado, y que esa comparticin resulta ms sencilla en aquellos entornos (por ejemplo con un nico sistema operativo) en los que existan mtodos seguros de comparticin. Estos mtodos incluyen la memoria compartida y los mecanismos de comunicacin interprocesos.

GUSANOS Un gusano es un virus informtico o programa auto replicante que no altera los archivos sino que reside en la memoria y se duplica a s mismo. Los gusanos utilizan las partes automticas de un sistema operativo que generalmente son invisibles al usuario. Es algo usual detectar la presencia de gusanos en un sistema cuando, debido a su incontrolada replicacin, los recursos del sistema se consumen hasta el punto de que las tareas ordinarias del mismo son excesivamente lentas o simplemente no pueden ejecutarse. Cuando se lanzan nuevos gusanos, se propagan muy rpidamente. Bloquean las redes y posiblemente provocan esperas largas para ver las pginas Web en Internet. Debido a que los gusanos no tienen que viajar mediante un programa o archivo "host", tambin pueden crear un tnel en el sistema y permitir que otro usuario tome el control del equipo de forma remota. Entre los ejemplos recientes de gusanos se incluyen.

6.8 Cifrado
Hay cosas peores que el robo de un ordenador porttil, por ejemplo el robo de un porttil con toda la documentacin dentro. No slo por el robo de la informacin, que si hacemos copias de seguridad debera ser mnimo, sino por la desagradable sensacin de dejar

4 de junio de 2013

77

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

parte de nuestra vida en manos de un desconocido, eso sin contar las claves, documentos y dems que si sean vitales para nuestro trabajo. En Linux existe una solucin muy sencilla para evitar ese problema, y es cifrar todas las particiones que sean elegidas para guardar los datos (generalmente el home del usuario, aunque es conveniente hacerlo con el swap). El cifrado de particiones no afecta al rendimiento general del equipo, y ha sido pulido hasta convertirse en una opcin estndar que suele ser ofrecida incluso durante la instalacin, aunque siempre es mejor hacer las cosas a mano hasta saber cul es el funcionamiento real. Eso es lo que intentar explicar en los siguientes puntos. Como configurar un sistema Linux ya instalado para que tenga cifradas las particiones de datos. Creando la particin Como trabajamos con una distribucin basada en Red Hat (CentOS), las particiones de datos suelen estar guardadas en un contenedor LVM. En mi caso sigo sus reglas y en la instalacin hago un contenedor LVM con todo el espacio que me queda para datos y slo creo una particin swap. Luego, segn lo voy necesitando lo voy asignando. Borrar la informacin y cifrar los datos Si el disco es nuevo o no nos importan mucho los datos que haba dentro podemos saltar este paso. En caso contrario es buena idea no dejar ni rastro de los datos antiguos, aunque puede llevar bastante tiempo. Particin swap y temporal Todo esto funciona bien para particiones de datos. Sin embargo existen particiones especiales de las que solemos pedir otro tipo de comportamiento. Me refiero a las particiones de tipo swap y los directorios temporales. No habra ningn problema en tratar estas dos particiones como dos particiones normales y cifrarlas segn el procedimiento anterior, sin embargo suele ser habitual iniciarlas al arranque totalmente vaco.

4 de junio de 2013

78

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

IV.CONCLUSIN
Despus de haber realizado este trabajo y haber visto la evolucin de este sistema operativo, no dudamos en concluir que estamos ante un sistema operativo de futuro, abrindose paso a travs de otros sistemas comerciales, que, tericamente, deberan ofrecer caractersticas mejores a las que ofrece Linux. Nuestra opinin sobre este sistema operativo es que ha tenido esta gran evolucin en los cuatro o cinco ltimos aos, en gran medida debido a la ideologa que sigue este sistema operativo, la cual permite que cualquier usuario tenga la posibilidad de modificar el cdigo fuente, personalizando el sistema o creando programas nuevos a los que cualquiera pueda acceder, modificar y reparar a travs de la red. Dada esta caracterstica, creemos que Linux tiene una gran perspectiva de futuro. Esto no queda nicamente as, sino que adems, est produciendo una revolucin en la actual concepcin de mercado de software comercial, creando nuevos tipos de licencias con los que los programas puedan ser comerciales, pero incluyendo las fuentes, con lo que se consigue obtener unas caractersticas parecidas a la del software libre. Adems gracias al sistema multitarea y multiproceso de Linux, que ofrece una gran potencia de clculo y velocidad de intercomunicacin, este sistema es apto para grandes estaciones de trabajo y de servidores de red, entre otros. Centrndonos ms en el tema del trabajo, nuestra opinin, es que es un sistema muy estable, apto y recomendable para cualquier informtico, no solo con la gran cantidad de sistemas de ficheros y protocolos de red que es capaz de utilizar, sino que adems ofrece una gran posibilidad de desarrollo, gran potencia en entorno grfico, tanto desde el punto de vista de usuario como de programador, y una interfaz de red que permite la fcil comunicacin entre sistemas UNIX, o cualquier otro sistema operativo actual.

4 de junio de 2013

79

SISTEMA OPERATIVO: LINUX

INSTITUTO TECNOLOGICO DE HERMOSILLO

V.BIBLIOGRAFIA
http://www.maquinariapro.com/sistemas/sistema-operativo-linux.html http://www.monografias.com/trabajos/solinux/solinux.shtml http://softwarelibre.mes.edu.cu/index_html/news/la-evolucion-de-linux http://www.cad.com.mx/historia_de_linux.htm http://www.maginvent.org/articles/linuxmm/Kernel_o_nucleo_Linux.html http://www.linux-es.org/kernel http://www.taringa.net/posts/linux/7676622/Que-es-el-kernel-de-Linux-y-cual-es-sutarea.html http://ditec.um.es/so/apuntes/teoria/tema4.pdf http://www.monografias.com/trabajos54/paginacion-linux/paginacion-linux.shtml#paginac http://www.bestwebmaker.com/blog/wp-content/uploads/2009/07/TEMA-14-SISTEMA-DEFICHEROS-LINUX.pdf

The Linux VFS, Chapter 4 of Linux File Systems by Moshe Bar (McGraw-Hill, 2001). ISBN 0-07-212955-7 Mas adelante. (20 de Noviembre de 2005). Recuperado el 01 de Junio de 2013, de http://www.masadelante.com/faqs/sistema-operativo

4 de junio de 2013

80

Vous aimerez peut-être aussi