Sunteți pe pagina 1din 18

República Bolivariana de Venezuela

Ministerio del Poder Popular para la Defensa

Universidad Nacional Experimental Politécnica de la Fuerza Armada Nacional


Bolivariana (UNEFA)

Extensión – Guacara

Guacara, Edo – Carabobo

Unidad 5:
Gestión de archivos

Profesor:​ Luis Solano Alumno:​ Jeykel Infante

Asignatura:​ Sistemas operativos CI​ 27.927.489

Ing. En sistemas

6 to Semestre

Sábado, 21 de noviembre de 2020


1. Gestión de archivos: Archivos y directorios

Sistema de archivos

El sistema de archivos o sistema de ficheros es el componente del sistema operativo


encargado de administrar y facilitar el uso de las memorias periféricas, ya sean secundarias
o terciarias.

Sus principales funciones son la asignación de espacio a los archivos, la administración del
espacio libre y del acceso a los datos resguardados. Estructuran la información guardada en
un dispositivo de almacenamiento de datos o 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 manejan su propio sistema de archivos.

Lo habitual es utilizar dispositivos de almacenamiento de datos que permiten el acceso a los


datos como una cadena de bloques de un mismo tamaño, a veces llamados sectores,
usualmente de 512 bytes de longitud (también denominados clústers). El software del
sistema de archivos es responsable de la organización de estos sectores en archivos y
directorios y mantiene un registro de qué sectores pertenecen a qué archivos y cuáles no
han sido utilizados. En la práctica, un sistema de archivos también puede ser utilizado para
acceder a datos generados dinámicamente, como los recibidos a través de una conexión de
red de computadoras (sin la intervención de un dispositivo de almacenamiento).2

Los sistemas de archivos proveen métodos para crear, mover, renombrar y eliminar tanto
archivos como directorios, pero carecen de métodos para crear, por ejemplo, enlaces
adicionales a un directorio o archivo (enlace duro en Unix) o renombrar enlaces padres (".."
en Unix).

El acceso seguro a sistemas de archivos básicos puede estar basado en los esquemas de
lista de control de acceso (access control list, ACL) o capacidades. Las ACL hace décadas
que demostraron ser inseguras, por lo que los sistemas operativos experimentales utilizan el
acceso por capacidades. Los sistemas operativos comerciales todavía funcionan con listas
de control de acceso.

Rutas y nombre de archivos

La estructura de directorios suele ser jerárquica, ramificada o "en árbol", aunque en algún
caso podría ser plana. En algunos sistemas de archivos los nombres de archivos son
estructurados, con sintaxis especiales para extensiones de archivos y números de versión.
En otros, los nombres de archivos son simplemente cadenas de texto y los metadatos de
cada archivo son alojados separadamente.
En los sistemas de archivos jerárquicos, usualmente, se declara la ubicación precisa de un
archivo con una cadena de texto llamada ruta (path, en inglés). La nomenclatura para rutas
varía ligeramente de sistema en sistema, pero mantienen por lo general una misma
estructura. Una ruta viene dada por una sucesión de nombres de directorios y
subdirectorios, ordenados jerárquicamente de izquierda a derecha y separados por algún
carácter especial que suele ser una barra diagonal / o barra diagonal invertida \ (según el
sistema operativo) y puede terminar en el nombre de un archivo presente en la última rama
de directorios especificada.

Ejemplo de 'ruta' en un sistema Unix

En un sistema tipo Unix como GNU/Linux, la ruta para la canción llamada "La canción.ogg"
del usuario "Alvaro" sería algo como:

● /home/Alvaro/Mi música/La canción.ogg

donde:

● / representa el directorio raíz donde está montado todo el sistema de archivos.


● home/Alvaro/Mi música/ es la ruta del archivo.
● La canción.ogg es el nombre del archivo que se establece como
único.
● .ogg es la extensión del archivo.

Ejemplo de 'ruta' en un sistema Windows

Un ejemplo análogo, en un sistema de archivos de Windows se vería como:

● C:\Users\Alvaro\Music\canción.mp3

donde:

● C: es la unidad de almacenamiento en la que se encuentra el archivo.


● \Users\Alvaro\Music\ es la ruta del archivo.
● canción es el nombre del archivo.
● .mp3 es la extensión del archivo, este elemento (parte del nombre) es
especialmente relevante en los sistemas Microsoft Windows, porque
sirve para identificar qué tipo de archivo es y la aplicación que está
asociada con el archivo en cuestión, es decir, con qué programa se
puede abrir y leer, editar o reproducir el archivo. Para la mayoría de
los sistemas operativos modernos la extensión del archivo es un
complemento burocrático sólo útil para la observación del usuario, ya
que los entornos de administración de archivos y aplicaciones varias,
analizan la información contenida en el principio del interior del
archivo (MIME headers) para determinar su función o asociación, la
cual normalmente está catalogada en la tabla MIME Content-Type en
el sistema. El sistema Windows permite ocultar la extensión de los
archivos si el usuario lo desea, de no hacerlo la extensión aparece en
los nombres de todos los archivos. En el sistema operativo Windows
XP, si el usuario cambia la extensión de un archivo, el archivo puede
quedar inutilizable si la nueva extensión lo asocia a un programa que
no tenga la capacidad de editar o reproducir ese tipo de archivo.
Algunos usuarios igual habilitan la visualización de las extensiones en
los sistemas Windows como medida de precaución para evitar virus
que utilizan íconos o nombres parecidos a los archivos personales del
usuario, ya que la extensión permite identificar a los ficheros .EXE
(ejecutables en Windows).

Resumen de características de los sistemas de archivos


● Seguridad o permisos
● Listas de control de acceso (ACL)
● UGO ("Usuario, Grupo, Otros", o por sus siglas en inglés: "User, Group,
Others")
● Capacidades granuladas
● Atributos extendidos (ej.: sólo añadir al archivo pero no modificar, no
modificar nunca, etcétera)
● Mecanismo para evitar la fragmentación
● Capacidad de enlaces simbólicos o duros
● Integridad del sistema de archivos (Journaling)
● Soporte para archivos dispersos
● Soporte para cuotas de discos
● Soporte de crecimiento del sistema de archivos nativo

Tipo de sistemas de archivos

● Sistemas de archivos de disco


Un sistema de archivo de disco está diseñado para el almacenamiento de archivos en una
unidad de disco, que puede estar conectada directa o indirectamente a la computadora.

● Sistemas de archivos de red


Un sistema de archivos de red es el que accede a sus archivos a través de una red de
computadoras.

Dentro de esta clasificación encontramos dos tipos de sistemas de archivos:


los sistemas de archivos distribuidos (no proporcionan E/S en paralelo);
los sistemas de archivos paralelos (proporcionan una E/S de datos en paralelo).
Sistemas de archivos de propósito especial
Los sistemas de archivos de propósito especial (special purpose file system) son aquellos
tipos de sistemas de archivos que no son ni sistemas de archivos de disco, ni sistemas de
archivos de red.
Ejemplos: acme (Plan 9), archfs, cdfs, cfs, devfs, udev, ftpfs, lnfs, nntpfs, plumber (Plan 9),
procfs, ROMFS, swap, sysfs, TMPFS, wikifs, LUFS, etcétera.

Sistemas de archivos por Sistema Operativo


En cada sistema operativo existen distintas formas de utilización de los tipos de acceso para
la organización óptima de sus archivos y su información. Cada sistema operativo cuenta con
uno o varios sistemas diferentes de organización, los cuales trabajan acorde a las
necesidades del usuario y su uso de la información.

● Sistemas de archivos en Windows


Los sistemas de organización de archivos que emplea Microsoft Windows utilizan el acceso
secuencial indexado (acceso secuencial y acceso indexado adjuntos en un mismo método),
el acceso directo en algunos casos en la utilización de los sistemas de organización por
tablas.

● Tabla de asignación de archivos: comúnmente conocido como FAT (del inglés File
Allocation Table), es un sistema de archivos. Es un formato popular para disquetes
admitido prácticamente por todos los sistemas operativos existentes para
computadora personal. Se utiliza como mecanismo de intercambio de datos entre
sistemas operativos distintos que coexisten en la misma computadora, lo que se
conoce como entorno multiarranque.
● HPFS (High Performance File System).
● NTFS (New Technology File System).

● Sistema de archivos en Linux


GNU/Linux es el sistema operativo que soporta más sistemas de organización que lo
convierte en uno de los más versátiles.3​ Además Linux, implementado en su kernel, admite
la administración de manera transparente al usuario de más de 15 tipos diferentes de
sistemas de archivos, incluyendo NTFS (Microsoft Windows), iso9660, msdos y vfat.4​ La
estructura de archivos es una estructura jerárquica en forma de árbol invertido, donde el
directorio principal (raíz) es el directorio "/", del que cuelga toda la estructura del sistema.
Este sistema de archivos permite al usuario crear, borrar y acceder a los archivos sin
necesidad de saber el lugar exacto en el que se encuentran. No existen unidades físicas,
sino archivos que hacen referencia a ellas. Consta de tres partes importantes, superbloque,
tabla de i-nodos y bloques de datos.
EXT: el "sistema de archivos extendido" (extended file system, ext), fue el primer sistema de
archivos de Linux. Tiene metadatos estructura inspirada en el tradicional Unix File System o
sistema de archivos UNIX (UFS). Fue diseñado por Rémy Card para vencer las limitaciones
del sistema de archivos MINIX.

● Sistema de archivos de MacOS


Los sistemas de archivos que utiliza MacOS tienen su forma peculiar de trabajar, la cual es
totalmente distinta a la de Microsoft Windows y GNU/Linux, trabajan por medio de
jerarquías.
HFS: el "sistema de archivos jerárquico" (Hierarchical File System, HFS) divide un volumen
en bloques lógicos de 512 bytes. Estos bloques lógicos están agrupados juntos en bloques
de asignación (allocation blocks) que pueden contener uno o más bloques lógicos
dependiendo del tamaño total del volumen.
APFS: el "sistema de archivos de Apple" que utilizan todos los dispositivos desde MacOS
High Sierra, iOS 10.3, tvOS 10.2 y watchOS 3.2 (Apple File System, APFS). Su objetivo es
solucionar problemas de núcleo de HFS+. está optimizado para unidades flash y estado
sólido, con un enfoque principal en encriptación. Utiliza números de inodo de 64-bits, y
permite un almacenamiento más seguro. Tiene varias características como Clones,
Snapshots, Encriptación, Número máximo aumentado de archivos, Protección contra
accidentes y Espacio Compartido.

2. Implementación de sistemas de archivos

Implementación de Archivos

Se emplean diversos métodos en los diferentes sistemas operativos. Algunos de ellos son:

Asignación Continua: El esquema de asignación más sencillo es almacenar cada archivo


como un bloque contigua de datos en el disco. Este esquema tiene dos ventajas
importantes:

1. La implementación es sencilla porque para saber dónde están los bloques de un


archivo basta con recordar un número, la dirección en disco del primer bloque.
2. El rendimiento es excelente porque es posible leer todo el archivo del disco en una
sola operación.

Desventajas:

1. No es factible sino se conoce el tamaño máximo del archivo en el momento en que


se crea el archivo.
2. Es la fragmentación del disco que resulta de esta política de asignación.
Asignación por Listas Enlazadas: Es guardar cada uno como una lista enlazada de bloques
de disco. Con este método es posible utilizar todos los bloques. No se pierde espacio por
fragmentación del disco.

Asignación por Lista enlazada Empleando un Índice: Todo el bloque está disponible para
todos. Además, el acceso directo es mucho más fácil. Al igual que el método anterior, basta
con guardar un solo entero en la entrada del directorio para poder localizar todos los
bloques.

La desventaja principal de este método es que toda la tabla debe estar en la memoria todo
el tiempo para que funcione.

Nodos-i: Consiste en asociar a cada archivo una pequeña tabla llamada nodo-i
(nodo-índice), que lista los atributos y las direcciones en disco de los bloques del archivo.

Implementación de Directorios

Cuando se abre un archivo, el sistema operativo usa el nombre de la ruta proporcionado por
el usuario para localizar la entrada del directorio.

Directorios CP/M

Directorios en MS-DOS: Los directorios pueden tener otros directorios, dando lugar a un
sistema de archivos jerárquicos. En este sistema operativo es común que los diferentes
programas de aplicación comience por crear un directorio en el directorio raíz pongan ahí
todos sus archivos, con objeto que no haya conflictos entre las aplicaciones.

Directorios en UNIX: La estructura de directorios es extremadamente sencilla.Cuando se


abre un archivo, el sistema de archivos debe tomar el nombre que se le proporciona y
localizar sus bloques de disco.

Administración del Espacio en Disco

Es de interés primordial para los diseñadores de sistemas de archivos. Hay dos posibles
estrategias para almacenar un archivo de n bytes: asignar n bytes consecutivos de espacio
en disco, o dividir el archivo en varios bloques (no necesariamente) contiguos.

Tamaño de bloque: Una vez que se ha decidido almacenar archivos en bloques de tamaño
fijo, surge la pregunta de qué tamaño deben tener los bloques. Dada la forma como están
organizados los discos, el sector, la pista y el cilindro son candidatos obvios para utilizarse
como unidad de asignación. En un sistema con paginación, el tamaño de página también es
un contendiente importante.

Administración de bloques libres: Una vez que se ha escogido el tamaño de bloque, el


siguiente problema es cómo seguir la pista a los bloques libres. Se utilizan ampliamente dos
métodos.
● El primero consiste en usar una lista enlazada de bloques de disco, en la que cada
bloque contiene tantos números de bloques de disco libres como quepan en él.
● El mapa de bits. Un disco con n bloques requiere un mapa de bits con n bits. Los
bloques libres se representan con unos en el mapa, y los bloques asignados con
ceros (o viceversa).

Caché

La memoria caché (también memoria buffer) es una memoria rápida que permite reducir los
tiempos de espera de las distintas informaciones almacenada en la RAM (Random Access
Memory o Memoria de Acceso Aleatorio). En efecto, la memoria principal del ordenador es
más lenta que la del procesador. Existen, sin embargo, tipos de memoria que son mucho
más rápidos, pero que tienen un costo más elevado. La solución consiste entonces, en
incluir este tipo de memoria local próxima al procesador y en almacenar en forma temporal
la información principal que se procesará en él. Los últimos modelos de ordenadores
poseen muchos niveles distintos de memoria caché:

● La memoria caché nivel 1 (denominada L1 Cache, por Level 1 Cache) se encuentra


integrada directamente al procesador. Se subdivide en dos partes:
● La primera parte es la caché de instrucción, que contiene instrucciones de la
RAM que fueron decodificadas durante su paso por las canalizaciones.
● la segunda parte es la caché de información, que contiene información de la
RAM, así como información utilizada recientemente durante el
funcionamiento del procesador.

El tiempo de espera para acceder a las memorias caché nivel 1 es muy breve; es similar al
de los registros internos del procesador.

● La memoria caché nivel 2 (denominada L2 Cache, por Level 2 Cache) se encuentra


ubicada en la carcasa junto con el procesador (en el chip). La caché nivel 2 es un
intermediario entre el procesador con su caché interna y la RAM. Se puede acceder
más rápidamente que a la RAM, pero no tanto como a la caché nivel 1.
● La memoria caché nivel 3 (denominada L3 Cache, por Level 3 Cache) se encuentra
ubicada en la placa madre.

Manejador de dispositivo
Un controlador de dispositivo o manejador de dispositivo (en inglés: device driver, o
simplemente driver) es un programa informático que permite al sistema operativo
interaccionar con un periférico, haciendo una abstracción del hardware y proporcionando
una interfaz (posiblemente estandarizada) para utilizar el dispositivo.
Es una pieza esencial del software, sin la cual el hardware sería inutilizable.
Tipos de controladores
Existen tantos tipos de controladores como tipos de periféricos, y es común encontrar más
de un controlador posible para un mismo dispositivo, cada driver ofreciendo un nivel distinto
de funcionalidades.
Por ejemplo, aparte de los drivers oficiales (normalmente disponibles en el sitio web del
fabricante), se pueden encontrar también los proporcionados por los sistemas operativos, y
también versiones no oficiales realizadas por terceros.

Creación de controladores
Normalmente, los fabricantes de hardware son los encargados de desarrollar los
controladores de los dispositivos que manufacturan, porque conocen mejor el
funcionamiento interno de cada aparato.
También se encuentran los controladores libres, por ejemplo, en los “sistemas operativos
libres”. En este caso, los creadores o desarrolladores no pertenecen a la empresa
fabricante, aunque pueden cooperar entre ellos para facilitar el desarrollo. Si no hay
cooperación, pueden recurrir a procedimientos de ingeniería inversa y otros métodos
difíciles o con riesgos legales.

Fallos de controladores
Si alguno de los drivers falla, por ser una parte crítica del sistema operativo, puede ser más
grave que otros errores de software, pudiendo bloquear la computadora e incluso dañar el
hardware.
Debido a que el hardware es necesariamente indeterminista, encontrar y solucionar un fallo
en un controlador es una tarea complicada porque se debe monitorear el programa y
también el propio dispositivo.

3. Protección y control de acceso

Seguridad

Seguridad externa

En un sistema informático todos los mecanismos de seguridad tienen que complementarse


entre sí, de tal forma que si una persona logra saltarse alguna de las protecciones, se
encuentre con otras que le hagan el camino difícil.

Todos los mecanismos dirigidos a asegurar el sistema informático sin que el propio sistema
intervenga en el mismo se engloban en lo que podemos denominar seguridad externa.
La seguridad externa puede dividirse en dos grandes grupos:

● Seguridad física. Engloba aquellos mecanismos que impiden a los agentes físicos la
destrucción de la información existente en el sistema; entre ellos podemos citar el
fuego, humo, inundaciones, descargas eléctricas, campos magnéticos, acceso físico
de personas con no muy buena intención, etc.
● Seguridad de administración. Engloba los mecanismos más usuales para impedir el
acceso lógico de personas físicas al sistema.

Seguridad física

Como ya hemos mencionado, se trata de eliminar los posibles peligros que originan los
agentes físicos o la presencia física de personas no autorizadas. Para ello podemos
considerar los siguientes aspectos:

● Protección contra desastres. Consta de elementos de prevención, detección


y eliminación que actúan contra incendios, humos, sobretensiones, fallos en
el suministro de energía, etc. También es necesario controlar la temperatura
y limpieza del medio ambiente en que se encuentran los equipos, instalando
aire acondicionado, falso suelo, ventilación, y, en definitiva, tomando en
consideración todo aquello que pueda causar cualquier problema a la
instalación.
● Protección contra intrusos. Desde el punto de vista físico, es necesario
establecer mecanismos que impidan el acceso físico de las personas no
autorizadas a las instalaciones. Suele llevarse a cabo mediante puertas de
seguridad con apertura por clave o llaves especiales, identificación de las
personas por tarjetas de acceso o por reconocimiento de la voz, huellas
digitales, etc.

Seguridad de administración

Comprende aquellos mecanismos cuya misión es dar acceso lógico al sistema. Este acceso
puede realizarse a través de un terminal del sistema o bien desde otro sistema por medio de
una red de comunicación a la que estén conectados ambos sistemas.

Protección de acceso

Se trata de un mecanismo para el control de los intentos de entrada o acceso al sistema, de


tal forma que permita la conexión cuando un usuario lo solicite y pase el control
correspondiente y rechace el intento en aquellos casos en que la identificación del supuesto
usuario no sea satisfactoria.
Palabra de acceso o identificador del usuario (password).

Para la identificación del usuario, la fórmula más extendida es la de pedirle su nombre de


usuario (username) y a continuación la palabra clave tal que el mecanismo accede al
archivo correspondiente para contrastar los datos recibidos y aceptar o rechazar el intento.
Los intentos fallidos de acceso son registrados por el sistema con el fin de que el
administrador del sistema pueda estudiar cada cierto tiempo si se está o no intentando
transgredir la seguridad del sistema.

El sistema operativo dota al administrador del sistema para que en cualquier momento se
pueda dar de alta o de baja a un usuario, asignándole en el primer caso, además de un
username, la correspondiente contraseña o password inicial. Mientras que el nombre de
usuario es público, la password no lo es, siendo recomendable su cambio cada cierto
tiempo, así como no tenerla escrita en ninguna otra parte que en la propia mente del
usuario.

La password cuando se escribe en un terminal, tanto para acceder al sistema como para su
cambio, no aparece en la pantalla como ocurre en el resto de datos que se teclean, para así
conservar el secreto de la misma. Además, esta palabra se graba en los archivos de
administración del sistema codificada o encriptada para que no sea fácilmente reconocible
por las personas.

Al proceso de petición de entrada a un sistema, contestación a las preguntas de


identificación, contrastación de los datos recibidos y dar el correspondiente acceso se
denomina login. Asimismo, al proceso de despedida del sistema se le llama logout.

Criptografia.

Es un proceso de transformación que se aplica a unos datos para ocultar su contenido. El


proceso al que hay que someter la información para conseguir que sea secreta se conoce
con el nombre de encriptado o cifrado, denominándose la información antes del proceso
como texto claro y después del mismo texto cifrado.

Seguridad en la transmisión de datos. En las líneas de transmisión de datos existen


diversos problemas de seguridad debido a lo fácilmente violables que son dichas líneas. Por
esta razón, para enviar datos a través de líneas de comunicación entre computadoras se
siguen diversas técnicas, como son:

a. Compactación de datos. Consiste en comprimir los datos para que ocupen el menor
espacio posible y así conseguir en principio que la duración de la transmisión sea
menor, y que para entenderla haya que descompactarla; por tanto, la información va
relativamente cifrada. Existen muchos métodos de compactación de datos, de los
cuales los más utilizados son:
1. Reducción de espacios en blanco. Un archivo de información puede tener
muchos espacios en blanco que pueden ser sustituidos por un número que
indique cuántos de ellos están de forma consecutiva en un determinado
punto.
2. Codificación por diferencia. En ella se transmiten únicamente las diferencias
existentes entre la información que se quiere enviar y la misma información
ya enviada previamente, de tal forma que en el destino se puede reconstruir
la información sin grandes dificultades. Se trata de un caso similar a las
copias de seguridad (Backup) incrementales, donde cada nueva copia sólo
registra las diferencias que existan entre el estado actual de la información y
el original, con lo que se logra un importante ahorro de memoria.

b. Criptografía. Similar al proceso ya mencionado para ocultar la información en una


transmisión.
c. Fiabilidad. Además de las medidas anteriores, se suelen tomar otras para asegurar
el correcto estado de la información al llegar a su destino. Se pueden presentar
problemas debidos a causas accidentales, como la influencia de fuertes campos
magnéticos, perturbaciones eléctricas, etc., así como por motivos de intrusión en las
comunicaciones con el fin de destruirlas o modificarlas. También pueden producirse
errores por colisiones entre mensajes en redes locales y un sinfín de otras causas
de diversa naturaleza.

Para evitar todo tipo de incidencias, se suele añadir a la información una pequeña parte que
nos permitirá saber si los datos recibidos coinciden con los enviados o no. Los métodos más
utilizados para dotar de fiabilidad a una transmisión de datos son mecanismos hardware o
software que permiten detectar errores ocurridos en una comunicación e incluso recuperar
algunos de ellos. Citaremos los siguientes métodos:

1. Bit de paridad. Consiste en añadir un bit a cada octeto o palabra que se transmita
para con él conseguir que la suma de unos sea par (paridad par) o impar (paridad
impar). Con este método se detectan errores al variar un bit o un número impar de
ellos sin que se detecten variaciones de un número par de bits. Se sabe que la
mayoría de errores que se producen en condiciones normales sólo afectan a un bit.
2. Códigos de Hamming. Añaden varios bits de control al octeto o palabra a transmitir,
de tal forma que detectan errores de uno o más bits y los corrigen.
3. Código de redundancia cíclica (CRC). Si se prevé que los daños esperados en una
transmisión no sean de un bit en un octeto o palabra, sino en una secuencia de
ellos, se puede utilizar un algoritmo que permita realizar una suma denominada
suma de chequeo (Checksum) y aplicar el método denominado de redundancia
cíclica durante la transmisión, de tal forma que al terminar ésta se repite en el
destino el mismo algoritmo de suma, comprobando si el valor final de la suma es el
mismo.
Seguridad interna

Todos los mecanismos dirigidos a asegurar el sistema informático, siendo el propio sistema
el que controla dichos mecanismos, se engloban en lo que podemos denominar seguridad
interna.

Seguridad del procesador

Los mecanismos de protección del procesador son varios ya estudiados y que pasamos a
enumerar:

● Estados protegidos (Kernel) o no protegido (Usuario).


● Reloj hardware para evitar el bloqueo del procesador.

Seguridad de la memoria

Se trata de mecanismos para evitar que un usuario acceda la información de otro sin
autorización. Entre ellos citaremos dos:

● Registros límites o frontera.


● Estado protegido y no protegido del procesador.

Además se emplean para la memoria métodos como el de utilizar un bit de paridad o el


checksum ya mencionado.

● Seguridad de los archivos

La finalidad principal de las computadoras es la del tratamiento de la información que se


almacena permanentemente en los archivos. La pérdida o alteración no deseada de dicha
información causaría trastornos que podrían ser irreparables en algunos casos. Por eso es
necesario tomar las correspondientes medidas de seguridad, que se deben enfocar desde
dos aspectos diferentes: la disponibilidad y la privacidad de los archivos.

Disponibilidad de los archivos

Un archivo debe tener la información prevista y estar disponible en el momento que un


usuario la necesite. Hay que tener presente la necesidad de asegurar tal circunstancia y
para ello se suelen realizar las siguientes acciones:

● Copias de seguridad (backup).


Consiste en que cada cierto tiempo (hora, día, semana...) se realice una copia del contenido
de los archivos, de forma que si se destruyen éstos, es posible la recuperación de los datos
a partir de la última de las copias. La operación de realizar copias de seguridad, así como la
recuperación de los datos a partir de las mismas, se suele hacer por medio de programas
de utilidad del sistema operativo.

La fiabilidad de las copias de seguridad dependerá fundamentalmente de la periodicidad


con que se realicen y del índice de actividad de los archivos, es decir, del ritmo al que se
actualicen.

Las copias de seguridad suelen realizarse sobre cinta magnética, guardándose en


dependencias alejadas del sistema y en armarios protegidos incluso contra incendios.

Al margen de las copias de seguridad, en muchos casos es conveniente mantener los


archivos duplicados en el mismo o distinto disco, para que en caso de problemas locales en
el archivo original se pueda tener una rápida recuperación. En los grandes sistemas se
tiende a automatizar los procesos de copias de seguridad por medio de un software que
periódicamente revisa la fecha de la última copia de cada archivo, así como su último
proceso de actualización, y a través de unos parámetros prefijados decide en qué archivos
deben ser procesadas sus copias.

● Archivos LOG.

En sistemas de tiempo compartido donde trabajan simultáneamente muchos usuarios, que


entre otras operaciones llevan a cabo numerosas actualizaciones y modificaciones de
archivos, no son suficientes las periódicas copias de seguridad para afrontar la pérdida de la
información. Si la computadora falla por cualquier motivo en medio de una sesión donde hay
un gran número de usuarios trabajando, se puede recuperar la información de los archivos
desde la última copia de seguridad; pero esto puede no ser suficiente, por lo cual se recurre
en estos sistemas a archivos auxiliares donde se registran todas las operaciones que
realiza un usuario sobre sus archivos, almacenandose la nueva información o aquella que
difiera de la ya existente. Estos archivos reciben el nombre de archivos LOG y son tratados
por utilidades del sistema operativo conjuntamente con las copias de seguridad para los
procesos de recuperación.

Privacidad de los archivos

El contenido de los archivos se debe proteger de posibles accesos no deseados. Entre el


peligro de permitir a todos los usuarios el acceso a cualquier archivo, y la rigidez de que
cada usuario sólo pueda acceder a los suyos, el sistema de protección debe permitir
accesos de forma controlada, según unas reglas predefinidas y con las consiguientes
autorizaciones.

Cada usuario, al comenzar la sesión en un sistema tras su identificación, tiene asignado por
el sistema de protección un dominio compuesto de una serie de recursos y de operaciones
permitidas, por ejemplo, una serie de archivos a los que acceder, no teniendo permitido el
acceso al resto de archivos. En general, los sistemas operativos almacenan la información
relativa a los dominios en lo que se denomina matriz de dominios, cuyas filas indican los
dominios existentes y las columnas los recursos. Cada elemento de la matriz indica el
derecho a utilizar el recurso correspondiente en el dominio.

Si la matriz anterior tiene poca información, se recurre a otro tipo de almacenamiento de


información sobre dominios, consistente en asociar a cada recurso una lista de dominios
que pueden utilizarlo, denominándose este vector lista de acceso. También se puede
obtener otro vector donde a cada dominio se le asigna una lista de recursos a los que puede
acceder, denominándose en este caso lista de capacidades.

En todos estos casos, la gestión de las listas de control se realiza mediante comandos de
uso restringido, estando éstos únicamente disponibles para el administrador del sistema.

Mecanismo de protección

Los sistemas operativos proveen mecanismos de protección para poder implementar


políticas de protección. Las políticas definen qué hay que hacer (qué datos y recursos
deben protegerse de quién; es un problema de administración), y los mecanismos
determinan cómo hay que hacerlo. Esta separación es importante en términos de
flexibilidad, puesto que las políticas pueden variar en el tiempo y de una organización a otra.
Los mismos mecanismos, si son flexibles, pueden usarse para implementar distintas
políticas.

Dominios de protección

Un dominio de protección es un conjunto de pares (objeto, operaciones); cada par identifica


un objeto y las operaciones permitidas sobre él.

En cada instante, cada proceso se ejecuta dentro de un dominio de protección. Los


procesos pueden cambiar de un dominio a otro en el tiempo; el cómo depende mucho del
sistema. En UNIX, se asocia un dominio a cada usuario+grupo; dado un usuario y el grupo
al cual pertenece, se puede construir una lista de todos los objetos que puede accesar y con
qué operaciones. Cuando un usuario ejecuta un programa almacenado en un archivo de
propiedad de otro usuario B, el proceso puede ejecutarse dentro del dominio de protección
de A o B, dependiendo del bit de dominio o SETUSERID bit del archivo. Este mecanismo se
usa con algunos utilitarios. Por ejemplo, el programa passwd debe tener privilegios que un
usuario común no tiene, para poder modificar el archivo donde se guardan las claves. Lo
que se hace es que el archivo /bin/passwd que contiene el programa es propiedad del
superusuario, y tiene el SETUSERID encendido. Este esquema es peligroso: un proceso
puede pasar de un estado en que tiene poco poder a otro en que tiene poder absoluto (no
hay términos medios). Cualquier error en un programa como passwd puede significar un
gran hoyo en la seguridad del sistema. Cuando se hace una llamada al sistema también se
produce un cambio de dominio, puesto que la llamada se ejecuta en modo protegido.

Matriz de acceso

Ahora bien, ¿cómo se las arregla el sistema para llevar la cuenta de quién puede acceder
qué objetos y con qué operaciones? Conceptualmente al menos, podemos ver este modelo
de protección como una gran matriz de acceso.

Para la mayoría de los usuarios, el sistema de archivos es el aspecto más visible

Los cambios de dominio que un proceso puede hacer también podemos integrarlos a la
matriz, tratando a los dominios como otros objetos, con una operación: entrar.

Una política de protección involucra decidir cómo se va a llenar esta matriz. Normalmente el
usuario que crea un objeto es quién decide cómo se va a llenar la columna de la matriz
correspondiente a ese objeto. La matriz de acceso es suficientemente general como para
apoyar diversas políticas. Por ejemplo:

La capacidad para copiar o transferir un derecho de un objeto a otro dominio.

Capacidad de un dominio para modificar los derechos en otros dominios (todos, o para un
recurso específico).

El problema es cómo almacenar esta matriz. Como es una matriz poco densa (muchos de
los elementos son vacíos), no resulta práctico representarla como matriz propiamente.
Podríamos usar una tabla con triples (dominio, objeto, derechos). Si un proceso dentro de
un dominio D intenta efectuar una operación M sobre un objeto O, se busca (D, O, C), y se
verifica si M pertenece a C. De todas maneras, la tabla es grande, y el esquema no es muy
eficiente. Además, si un objeto puede ser, por ejemplo, leído por todo el mundo, debe tener
entradas para cada dominio.

Listas de accesos

Alternativamente, podemos guardar la matriz por columnas (descartando, por cierto, las
entradas vacías). Es decir, a cada objeto se le asocia una lista de pares (dominio,
derechos). Es lo que se conoce como lista de acceso o ACL. Si pensamos en archivos de
Unix, podemos almacenar esta lista en el nodo-i de cada archivo, y sería algo así como

((Juan, *, RW), (Pedro, Profes, RW), (*, Profes, R))


En la práctica, se usa un esquema más simple (y menos poderoso), pero que puede
considerarse aún una lista de accesos, reducida a 9 bits. 3 para el dueño (RWX), 3 para el
grupo, y 3 para el resto del mundo.

Windows NT usa listas de accesos con todo el nivel de detalle que uno quiera: para
cualquier usuario o grupo, se puede especificar cualquier subconjunto de derechos para un
archivo, de entre {RWXDPO}. .

AFS también usa ACL, pero la granularidad es a nivel de directorios, no de archivos. Los
permisos que se pueden asignar a un directorio son: Lookup, Insert, Delete, Administer,
Read, Write, Lock. Estos tres últimos son válidos para los archivos en el directorio.

Los derechos Unix sobre un directorio son totalmente ignorados por AFS. En el caso de
archivos, sólo los derechos Unix para el dueño son utilizados por AFS de manera especial:
se puede restringir el acceso a los usuarios a los que la ACL les da acceso. Por ejemplo, si
según la ACL de un directorio, un usuario puede escribir los archivos, en rigor sólo podrá
escribir aquellos con el bit W del dueño encendido.

Lista de capacidades

La otra posibilidad es almacenar la matriz por filas. En este caso, a cada proceso se le
asocia una lista de capacidades. Cada capacidad corresponde a un objeto más las
operaciones permitidas.

Cuando se usan capacidades, lo usual es que, para efectuar una operación M sobre un
objeto O, el proceso ejecute la operación especificando un puntero a la capacidad
correspondiente al objeto, en vez de un puntero al objeto. La sola posesión de la capacidad
por parte del proceso quiere decir que tiene los derechos que en ella se indican. Por lo
tanto, obviamente, se debe evitar que los procesos puedan "falsificar" capacidades.

Una posibilidad es mantener las listas de capacidades dentro del sistema operativo, y que
los procesos sólo manejen punteros a las capacidades, no las capacidades propiamente.
Otra posibilidad es cifrar las capacidades con una clave conocida por el sistema, pero no
por el usuario. Este enfoque es particularmente adecuado para sistemas distribuidos, y es
usado en Amoeba.

Un problema de las capacidades es que puede ser difícil revocar derechos ya otorgados. En
Amoeba, cada objeto tiene asociado un número al azar, grande, que también está presente
en la capacidad. Cuando se presenta una capacidad, ambos números deben coincidir. De
esta manera, para revocar los derechos ya otorgados, se cambia el número asociado al
objeto. Problema: no se puede revocar selectivamente. Las revocaciones con ACL son más
simples y más flexibles.

S-ar putea să vă placă și