martes, 25 de noviembre de 2008

Introduccion

Es de suma importancia en el estudio de los sistemas operativos, el poder comprender como se manejan los archivos, y comprender la estructura general de un sistema de archivos, puesto que en un principio, uno de sus usos será el administrar diversa cantidad de ficheros, además de procesarlos, debemos comprender cómo el sistema operativo realiza estas funciones, cómo los ordena y se abordarán conceptos tales como: gestor de archivos y archivos virtuales y reales, todo esto nos llevará a una mejor comprensión del sistema operativo.

Además de esto otro punto importante a tratar es el de protección y seguridad, se abordarán temas en los cuáles comprenderemos los objetivos, funciones y técnicas de protección y seguridad. Todo esto con el fin de comprender cada vez mejor el funcionamiento y los procesos que se llevan a cabo en un sistema operativo y que muchas veces pasan desapercibidos.

lunes, 24 de noviembre de 2008

5.1 Concepto

Tanenbaum y Woodhull (1997) Describen en su investigación:
  • Los sistemas de archivos (filesystem en inglés), estructuran la información guardada en una unidad de almacenamiento (normalmente un disco duro) de una computadora, que luego será representada ya sea textual o gráficamente utilizando un gestor de archivos. La mayoría de los sistemas operativos poseen su propio sistema de archivos.
  • El “Sistema de Archivos” es un componente importante de un S. O. y suele contener:
  • “Métodos de acceso” relacionados con la manera de acceder a los datos almacenados en archivos.
  • “Administración de archivos” referida a la provisión de mecanismos para que los archivos sean almacenados, referenciados, compartidos y asegurados.
  • “Administración del almacenamiento auxiliar” para la asignación de espacio a los archivos en los dispositivos de almacenamiento secundario.
  • “Integridad del archivo” para garantizar la integridad de la información del archivo.

5.2 Noción de Archivo Real y Virtual

Tanenbaum y Woodhull (1997) Describen en su investigación:
  • La mayoría de usuarios de computadoras comprenderán con mucha facilidad el término archivo relacionándolo directamente con ejemplos tales como los archivos de texto que se pueden generar con cualquier procesador de texto.
  • Una característica de este tipo de archivos es que a mayor texto que almacena el archivo, mayor es el espacio en disco que consume dicho archivo. Por ejemplo, una línea corta de texto ocupa menos espacio en disco que esa misma línea copiada cien veces. Sin embargo al hablar de “archivos virtuales”las cosas son diferentes, pues este tipo de archivos no consumen espacio en el disco duro, sino que se almacenan en la memoria volátil, es decir la aquel tipo de memoria cuya información se pierde al interrumpirse el flujo de corriente eléctrica, esto es, la memoria RAM.

5.3 Componentes de un Sistema de Archivos

Tanenbaum y Woodhull (1997) Abarcan los siguientes Componentes de Archivos en su investigación:
  • En general, un Sistema de Archivos está compuesto por: Métodos De Acceso, Administración De Archivos, Administración De Almacenamiento Secundario, Mecanismos de Integridad.
  • Métodos De Acceso. Se ocupan de la manera en que se tendrá acceso a la información almacenada en el archivo. Ejemplo: Secuencial, Directo, indexado, etc.
  • Administración De Archivos. Se ocupa de ofrecer los mecanismos para almacenar, compartir y asegurar archivos, así como para hacer referencia a ellos.
  • Administración 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 información de un archivo, de tal manera que solo la información que deba estar en el, se encuentre ahí.

5.4 Organización Lógica Y Física de los Sistemas De Archivos

Tanenbaum y Woodhull (1997) Describen en su investigación:
  • Un sistema de archivos garantiza la organización lógica de los datos en los discos duros y proporciona al sistema operativo las rutinas necesarias para que puedan ser accedidos, modificados y eliminados.
  • Cualquier sistema operativo suele tener soporte para varios sistemas de archivos, aunque sólo sea en modo lectura. Los sistemas de archivos de la familia Microsoft que podemos encontrarnos son: FAT (FAT16 y FAT32) y NTFS (NTFS4, NTFS5). NTFS (New Technology File System) fue diseñado para NT e incorporaba un sistema de seguridad integrado que nos permitía asignar permisos a archivos y directorios a nivel de usuarios y grupos. Definiciones relacionadas con un sistema de archivo:
  • Unidad física: El propio disco duro, sin más.
  • Unidad lógica: Fragmento que se comporta como una partición y que está dentro de una partición extendida.
  • Partición: Puede ser el total del tamaño del disco o una parte.
  • Partición primaria: Partición que el sistema marca como iniciable o arrancable.
  • Partición extendida: partición que no es de inicio y que a su vez puede contener unidades lógicas. Sólo puede haber una por disco.
  • RAID (matriz redundante de discos independientes): Utilizar varias unidades físicas en una matriz para ofrecer mayor tamaño, tolerancia a fallos y mayor rendimiento. Hay varios niveles, RAID-0, RAID-1, RAID-5,etc. La numeración no indica mejor rendimiento o tolerancia a fallos, tan solo diferencias de métodos.

5.5 Mecanismos De Acceso a Los Archivos

Tanenbaum y Woodhull (1997) Abarcan los siguientes mecanismos en su investigación:
  • Método de Acceso Secuencial: El acceso secuencial significa que un grupo de elementos es accedido en un predeterminado orden secuencial. El acceso secuencial es a veces la única forma de acceder a los datos, por ejemplo en una cinta de cassette.
  • Método de Acceso Secuencial Indexado: Método de acceso secuencial indexado. Método común de acceso a disco que almacena datos en forma secuencial, al tiempo que mantiene un índice de campos claves para todos los registros en el archivo para acceso directo.
  • Método de Acceso Directo o de Dispersión (Hashed): Los archivos directos explotan la capacidad de los discos para acceder directamente a cualquier bloque de dirección conocida. Como en los archivos secuenciales y secuenciales indexados, se requiere un campo clave en cada registro. Sin embargo, aquí no hay concepto de ordenamiento secuencial.

5.6 Manejo Espacio Memoria Secundaria

Tanenbaum y Woodhull (1997) Abarcan los siguientes conceptos en su investigación:

  • La memoria secundaria requiere que la computadora use sus canales de entrada/salida para acceder a la información y se utiliza para almacenamiento a largo plazo de información persistente. Sin embargo, la mayoría de los sistemas operativos usan los dispositivos de almacenamiento secundario como área de intercambio para incrementar artificialmente la cantidad aparente de memoria principal en la computadora. La memoria secundaria también se llama "de almacenamiento masivo".
  • Habitualmente, la memoria secundaria o de almacenamiento masivo tiene mayor capacidad que la memoria primaria, pero es mucho más lenta. En las computadoras modernas, los discos duros suelen usarse como dispositivos de almacenamiento masivo. El tiempo necesario para acceder a un byte de información dado almacenado en un disco duro es de unas milésimas de segundo (milisegundos). En cambio, el tiempo para acceder al mismo tipo de información en una memoria de acceso aleatorio se mide en mil-millonésimas de segundo (nanosegundos).

5.7 Modelo Jerarquico Memoria Secundaria

Tanenbaum y Woodhull (1997) definen lo siguiente en su investigación:
  • La cuestión de la cantidad es simple, cuanto más memoria haya disponible, más podrá utilizarse. La velocidad óptima para la memoria es la velocidad a la que el procesador puede trabajar, de modo que no haya tiempos de espera entre cálculo y cálculo, utilizados para traer operandos o guardar resultados. En suma, el costo de la memoria no debe ser excesivo, para que sea factible construir un equipo accesible.
  • Como puede esperarse los tres factores compiten entre sí, por lo que hay que encontrar un equilibrio. Las siguientes afirmaciones son válidas:
  1. A menor tiempo de acceso mayor coste
  2. A mayor capacidad mayor coste
  3. A mayor capacidad menor velocidad.
  • Se busca entonces contar con capacidad suficiente de memoria, con una velocidad que sirva para satisfacer la demanda de rendimiento y con un coste que no sea excesivo. Gracias a un principio llamado cercanía de referencias, es factible utilizar una mezcla de los distintos tipos y lograr un rendimiento cercano al de la memoria más rápida.

5.8 Mecanismos Recuperación Caso de Falla

Los diseñadores de Windows (Microsoft, 2000) diseñaron un nuevo sistema de archivos, el sistema de archivos de W2K (NTFS), que cumple requisitos de estaciones de trabajo y servidores.
  • La esencia de recuperación, está en el registro. Cada operación que modifica el sistema de archivos se trata como una transacción, se registra en un archivo de registro. Por medio del registro, una transacción parcialmente completada en el momento de la caída del sistema, puede rehacerse o deshacerse más tarde, cuando se recupere el sistema.
  • Pasos a dar para asegurar la recuperabilidad:
  • NTFS primero lleva al registro del sistema de archivo para grabar en el archivo de registro de la caché, cualquier transacción que modifique la estructura del volumen.
  • NTFS modifica el volumen (en la caché).
  • El gestor de caché llama al registro del sistema de archivos para indicarle que lleve el archivo de registro al disco.
  • Una ves que el archivo de registro actualizado está seguro en el disco, el gestor de caché lleva los cambios del volumen al disco.

6. Proteccion Y Seguridad

La protección es limitar el acceso a ciertos archivos. Utilizamos protección para asegurarnos que solo a aquellos procesos a los que le demos permiso puedan utilizar el recurso o archivo dado.

6.1 Concepto y objetivos de protección.

De acuerdo con Deitel (1987) existen varios mecanismos que pueden usarse para asegurar los archivos, segmentos de memoria, CPU, y otros recursos administrados por el Sistema Operativo.

Deitel (1987) menciona que la protección se refiere a los mecanismos para controlar el acceso de programas, procesos, o usuarios a los recursos definidos por un sistema de computación. Seguridad es la serie de problemas relativos a asegurar la integridad del sistema y sus datos. Hay importantes razones para proveer protección. La más obvia es la necesidad de prevenirse de violaciones intencionales de acceso por un usuario. Otras de importancia son, la necesidad de asegurar que cada componente de un programa, use solo los recursos del sistema de acuerdo con las políticas fijadas para el uso de esos recursos. Un recurso desprotegido no puede defenderse contra el uso no autorizado o de un usuario incompetente. Los sistemas orientados a la protección proveen maneras de distinguir entre uso autorizado y desautorizado.

6.2 Funciones del sistema de protección.

Deitel (1987) llega a la conclusión de que dado que los sistemas de computo se han venido haciendo cada vez más sofisticados en sus aplicaciones, la necesidad de proteger su integridad, también ha crecido. Los aspectos principales de protección en un Sistema Operativo son:
1. Protección de los procesos del sistema contra los procesos de usuario.
2. Protección de los procesos de usuario contra los de otros procesos de usuario.
3. Protección de Memoria.
4. Protección de los dispositivos.

6.3 Implantación de matrices de acceso.

Silberschatz (1989) nos menciona que un modelo de protección puede ser visto abstractamente como una matriz, llamada matriz de derecho. Los renglones de la matriz representan dominios y las columnas representan objetos. Cada entrada en la matriz contiene un conjunto de derechos de acceso. Dado que los objetos son definidos explícitamente por la columna, se puede omitir el nombre del objeto en el derecho de acceso. La entrada "Matriz[i, j]" define el conjunto de operaciones que un proceso ejecutándose en el dominio "Dj" puede realizar sobre el objeto "Oj".

6.4 Protección basada en el lenguaje.

Silberschatz (1989) menciona que a medida que ha aumentado la complejidad de los sistemas operativos, sobre todo al trata de ofrecer interfaces de más alto nivel con el usuario, lo objetivos de la protección se han vuelto mucho más refinados. En esta refinación observamos que los diseñadores de los sistemas de protección se han apoyado mucho en ideas que se originaron en los lenguajes de programación y especialmente en los conceptos de tipos de datos abstractos y objetos. Los sistemas de protección ahora se ocupan no sólo de la identidad de un recurso al cual se intenta acceder, sino también de la naturaleza funcional de ese acceso. Especificar el control de acceso deseado a un recurso compartido en un sistema es hacer una declaración acerca del recurso. Este tipo de declaración se puede integrar en un lenguaje mediante una extensión de su mecanismo de tipificación. Si se declara la protección junto con la tipificación de los datos, el diseñado de cada subsistema puede especificar sus necesidades de protección así debería darse directamente durante la redacción del programa, y en el lenguaje en el que el programa mismo se expresa.

6.5 Concepto de seguridad.

Silberschatz (1989) comenta que la seguridad son aquellos problemas relativos a asegurar la integridad del sistema y sus datos. La seguridad debe tener en cuenta eventos tanto internos como externos, de nada sirve tener mecanismos de protección interna muy buenos, si el sistema operativo no es capaz de identificar a los usuarios que acceden al sistema o si no existe una política de salvaguarda de datos antes la rotura de un disco.
La seguridad de un sistema operativo se basa principalmente en tres aspectos de diseño:
1. Evitar pérdida de datos
2. Controlar la confidencialidad
3. Controlar el acceso a los datos y recursos
.

6.6 Clasificaciones de la seguridad.

Silberschatz (1989) La seguridad en los sistemas operativo puede ser de distintos tipos: interna, externa. La seguridad interna se encuentra relacionada con los controles que están incorporados al hardware y a los sistemas operativos. La seguridad externa se compone de seguridad física (protección contra intrusos y contra desastres) y seguridad operacional (es la implantada por el administrador del sistema de computación, y mediante la autorización se ve que acceso se permite y a qué entidad).

6.7 Validación y amenazas al sistema.

Deitel (1987) establece que la validación de datos es una de las áreas más importantes a tener en cuenta, especialmente en el desarrollo de sistemas conectados a redes como internet. Validar datos hace referencia a verificar, controlar o filtrar cada una de las entradas de datos que provienen desde el exterior del sistema.

La validación tiene que ver con:
• La verificación y la auditoría del sistema.
• La autentificación de los usuarios.
Los sistemas sofisticados de autentificación de usuarios resultan muy difíciles de evitar por parte de los intrusos.
Un problema existente es la posibilidad de que el sistema rechace a usuarios legítimos:
• Un sistema de reconocimiento de voz podría rechazar a un usuario legítimo resfriado.
• Un sistema de huellas digitales podría rechazar a un usuario legítimo que tenga una cortadura o una quemadura.

Deitel (1987) concluye que en definitiva, se debe identificar cada uno de los flujos de entrada, verificar que el tipo de dato sea el esperado y no otro, verificar que no haya códigos ocultos, etc.

6.8 Cifrado

Deitel (1987) nos menciona que una rama de la criptología es la criptografía, que se ocupa del cifrado de mensajes. Esta se basa en que el emisor emite un mensaje en claro, que es tratado mediante un cifrador con la ayuda de una clave, para crear un texto cifrado. Este texto cifrado, por medio del canal de comunicación establecido, llega al descifrador que convierte el texto cifrado, apoyandose en otra clave, para obtener el texto en claro original. Las dos claves implicadas en el proceso de cifrado/descifrado pueden ser o no iguales dependiendo del sistema de cifrado utilizado.

Sistemas de cifrado simétrico.
Deitel (1987) nos comenta que los sistemas de cifrado simétrico son aquellos que utilizan la misma clave para cifrar y descrifrar un documento. El principal problema de seguridad reside en el intercambio de claves entre el emisor y el receptor ya que ambos deben usar la misma clave.

Sistemas de cifrado asimétrico.
Deitel (1987) menciona que También son llamados sistemas de cifrado de clave pública. Este sistema de cifrado usa dos claves diferentes. Una es la clave pública y se puede enviar a cualquier persona y otra que se llama clave privada, que debe guardarse para que nadie tenga acceso a ella. Para enviar un mensaje, el remitente usa la clave pública del destinatario para cifrar el mensaje.
Una vez que lo ha cifrado, solamente con la clave privada del destinatario se puede descifrar, ni siquiera el que ha cifrado el mensaje puede volver a descifrarlo.

Sistemas de cifrado híbridos.
Deitel (1987) nos comenta que es el sistema de cifrado que usa tanto los sistemas de clave simétrica como el de clave asimétrica. Funciona mediante el cifrado de clave pública para compartir una clave para el cifrado simetrico. En cada mensaje, la clave simétrica utilizada es diferente por lo que si un atacante pudiera descubrir la clave simétrica, solo le valdría para ese mensaje y no para los restantes.