Grupo n°12 - tema n°7- UNIX Sistema de Archivos y
Sistema de Entrada/Salida
Introducción
El sistema
UNIX se ha vuelto bastante popular desde su estreno en 1969, funcionando en
máquinas de procesamiento variable desde microprocesadores hasta mainframes y
suministrando un entorno de ejecución común a través de él.
El sistema está dividido en dos partes:
La primera
parte está formado por programas y
servicios que ha hecho del sistema UNIX un entorno muy popular (es la parte
visible para el usuario).
La segunda
parte está formada por el S.O. Que soporta estos programas.
Objetivos del UNIX
UNIX fue diseñado teniendo en mente los
siguientes objetivos:
·
Crear un sistema
interactivo de tiempo compartido diseñados por programadores y para
programadores, destinados a usuarios calificados.
·
Que fuera
sencillo, elegante y consistente.
·
Que permitiera
resolver problemas complejos combinando un número reducidos de comandos
básicos.
Grupo n°12 - tema n°7 UNIX Sistema de Archivo y
Sistema de Entrada/Salida
UNIX Sistema de Archivo y Sistema de E/S
Que es Unix
UNIX designa
el núcleo de un S.O. multiusuario y multitarea. En un sentido más amplio,
comprende el núcleo del S.O. más un conjunto de programas que permiten compilar lenguajes de programación, editar
texto, interpretar coman- dos, manejar archivos y discos, acceder a otras
máquinas, establecer comunicaciones telefónicas, enviar y recibir correo
electrónicos, manejar las colas de impresión y un sinfín de tareas más. Algunos
de estos programas pueden haber sido desarrollados por los propios usuarios.
UNIX está
escrito en C, el cual puede estar compilado en muchos lenguajes diferentes de
máquina, esto hace que UNIX corra en
mayor cantidad de hardware que cualquier otro programa de control.
Es un sistema operativo multiusuario que
incorpora multitarea. Fue desarrollado originalmente por Ken Thompson y Dennis
Ritchie en los laboratorios de AT&T Bell en 1969 para su uso en
minicomputadoras. El sistema operativo UNIX tiene diversas variantes y se
considera potente, más transportable e independiente de equipos concretos que
otros sistemas operativos porque esta escrito en lenguaje C. El UNIX esta
disponible en varias formas, entre las que se cuenta AIX, una versión de UNIX
adaptada por IBM (para su uso en estaciones de trabajo basadas en RISC), A/ux
(versión gráfica para equipos Apple Macintosh) y Mach (un sistema operativo
reescrito, pero esencialmente compatible con UNIX, para las computadoras NeXT).
El UNIX y sus clones permiten múltiples
tareas y múltiples usuarios. Su sistema de archivos proporciona un método
sencillo de organizar archivos y permite la protección de archivos. Sin
embargo, las instrucciones del UNIX no son intuitivas.
Este sistema ofrece una serie de utilidades
muy interesantes, como las siguientes:
°
Inclusión de compiladores e interpretes de lenguaje.
°
Existencia de programas de interfase con el usuario, como ventanas, menús, etc.
°
Muchas facilidades a la hora de organización de ficheros.
°
Inclusión de lenguajes de interrogación.
°
Facilidades gráficas.
°
Programas de edición de textos.
UNIX Sistema de Archivo y Sistema de E/S
Sistema de Entrada/Salida
MANEJO DE ENTRADA/SALIDA
El sistema de entrada/salida se divide en
dos sistemas complementarios: el estructurado por bloques y el estructurado por
caracteres. El primero se usa para manejar cintas y discos magnéticos, y emplea
bloques de tamaño fijo (512 o 1024 bytes) para leer o escribir. El segundo se
utiliza para atender a las terminales, líneas de comunicación e impresoras, y
funciona byte por byte.
En general, el sistema Unix emplea
programas especiales (escritos en C) conocidos como manejadores (drivers) para
atender a cada familia de dispositivos de E/S. Los procesos se comunican con
los dispositivos mediante llamadas a su manejador. Además, desde el punto de
vista de los procesos, los manejadores aparecen como si fueran archivos en los
que se lee o escribe; con esto se logra gran homogeneidad y elegancia en el
diseño.
Cada dispositivo se estructura
internamente mediante descriptores llamados número mayor, número menor y clase
(de bloque o de caracteres). Para cada clase hay un conjunto de entradas, en
una tabla, que aporta a los manejadores de los dispositivos. El número mayor se
usa para asignar manejador, correspondiente a una familia de dispositivos; el
menor pasa al manejador como un argumento, y éste lo emplea para tener acceso a
uno de varios dispositivos físicos semejantes.
Las rutinas que el sistema emplea para
ejecutar operaciones de E/S están diseñadas para eliminar las diferencias entre
los dispositivos y los tipos de acceso. No existe distinción entre acceso
aleatorio y secuencial, ni hay un tamaño de registro lógico impuesto por el
sistema. El tamaño de un archivo ordinario está determinado por el número de
bytes escritos en él; no es necesario predeterminar el tamaño de un archivo.
El sistema mantiene una lista de áreas de
almacenamiento temporal (buffers), asignadas a los dispositivos de bloques. El
Kernel usa estos buffers con el objeto de reducir el tráfico de E/S. Cuando un
programa solicita una transferencia, se busca primero en los buffers internos
para ver si el bloque que se requiere ya se encuentra en la memoria principal
(como resultado de una operación de lectura anterior). Si es así, entonces no
será necesario realizar la operación física de entrada o salida.
Existe todo un mecanismo de manipulación
interna de buffers (y otro de manejo de listas de bytes), necesario para
controlar el flujo de datos entre los dispositivos de bloques (y de caracteres)
y los programas que los requieren.
UNIX Sistema de Archivo y Sistema de E/S
![]()
Por último, y debido a que los
manejadores de los dispositivos son programas escritos en lenguaje C, es
relativamente fácil reconfigurar el sistema para ampliar o eliminar
dispositivos de E/S en la computadora, así como para incluir tipos nuevos.
ADMINISTRACION DE DISPOSITIVOS
Introducción:
El administrador del sistema es
responsable de la administración de dispositivos y demás recursos del mismo.
Una de las categorías de recursos a tener en cuenta son los dispositivos
utilizados para almacenar datos: discos, disquetes y cintas.
Archivos
especiales:
Durante el proceso de carga, el sistema
identifica automáticamente los dispositivos instalados.
En el directorio /dev existe un archivo
especial, tipo bloque y/o carácter, asociado a cada
dispositivo
y, en el caso de los discos, a cada una de las particiones realizados.
Se puede observar haciendo un listado del
directorio /dev que en los archivos especiales, donde debe aparecer la longitud
del archivo, aparecen dos cifras que corresponden al numero principal y
secundario.
Tabla
de dispositivos:
SVR4 almacena información relativa a cada
dispositivo, en un archivo (/etc/device.tab) que representa una base de datos
de aquellos comandos, y otra información específica, utilizable por cada
dispositivo.
Esta información y los comandos tienen
asignados unos nombres que pueden ser utilizados por aplicaciones, lo que
permite que éstas puedan efectuar una función general sin necesidad de conocer
el comando específico requerido.
Para identificar cada dispositivo, se
utiliza un "alias" que debe ser único.
El formato para cada entrada en el archivo
/etc/device.tab consiste en 5 campos separados por ":" de la
siguiente forma:
alias:cdevide:bdevice:path:atributos
Donde
cada campo significa:
|
alias |
Nombre único
por el que será conocido el dispositivo. Su tamaño máximo es de catorce
caracteres. |
|
cdevice |
Archivo
especial, tipo carácter, asociado a ese dispositivo. |
|
|
|
|
path |
UNIX Sistema de Archivo y Sistema de E/S Nombre completo
de archivo, para identificar el i-nodo del dispositivo. Sólo se utiliza
cuando no es ni de tipo carácter ni bloque. |
Tabla de grupos de
dispositivos
Otra posibilidad suministrada por SVR4 es
la de manejar los dispositivos no individualmente, sino como grupos. Esta
característica permite al administrador realizar tareas sobre todos los
dispositivos de un grupo dado.
Para almacenar la información relativa a
los grupos de dispositivos, se utiliza el archivo /etc/dgroup.tab.
Cada entrada de este archivo consta de dos
campos separados por ":". El primer campo de los registros de este
archivo es el nombre asignado al grupo de dispositivos (máximo 14 caracteres).
El segundo campo incluye los nombres de los miembros del grupo separados por comas.
SPOOOL DE IMPRESION
Para enviar un archivo a una impresora
física se podría utilizar la técnica de redireccionamiento sobre el archivo
especial asociado a la misma, pero esto tiene el inconveniente de que el
usuario que lo haga toma ese archivo en uso exclusivo y nadie más puede enviar
algo a la impresora hasta que finaliza el listado.
Este problema es solucionado en UNIX por
un sistema (spool) que permite a diferentes usuarios enviar archivos a la
impresora simultáneamente. Un conjunto de procesos, que se activan
automáticamente durante la carga del sistema y el paso a multiusuario, se
encarga de planificar las solicitudes creando una cola de impresión.
Cuando un usuario hace una solicitud de
impresión, el planificador del sistema spool le contesta suministrando el
número asignado a esa solicitud, e inmediatamente le devuelve el prompt, con lo
que puede continuar con su trabajo aunque no se haya terminado de imprimir.
UNIX Sistema de Archivo y Sistema de E/S
![]()
Sistema de Archivos
ORGANIZACIÓN DE LA INFORMACION
Un pilar básico del Sistema UNIX es el
sistema jerárquico de archivos. El sistema de archivos proporciona una forma
poderosa y flexible de organizar la información contenida en la computadora.
UNIX es un S.O., al igual que DOS, en el
que la organización de los archivos es jerárquica, organizada en directorios,
presentando una estructura en forma de árbol, en donde los directorios son
ramas y los archivos hojas.
Existe un concepto de archivo, que es sólo
un conjunto de información (Ej.: podría ser un examen final, un mensaje de
correo electrónico, un programa que pueda ejecutarse, etc.).
CONCEPTOS DE ARCHIVOS
El sistema UNIX funciona totalmente en
base a archivos. Los programas, los datos, los directorios, y aún los
controladores de dispositivos tales como discos, modems e impresoras, son
archivos.
El sistema de
archivos de UNIX se organiza en una
jerarquía de directorios que resulta en una estructura arborescente.
Cada archivo
tiene asociado un nombre, un contenido, un lugar de ubicación e información de
tipo administrativo, tal como dueño y tamaño. El contenido de un archivo puede
ser texto, programas fuente, programas ejecutables, imágenes, sonidos y otros.
Estructuralmente un archivo es una secuencia de bytes de datos que
residen en forma semipermanente en algún medio estable, como ser una cinta
magnética o un disco.
Conceptualmente un archivo es similar a un documento
escrito en un papel.
En UNIX
cualquier dispositivo se trata como un archivo. Una terminal tiene asociado un
archivo, y por lo tanto si se escribe algo en ese archivo, aparecerá en la
terminal. Lo mismo sucede con las impresoras, módem, etc.
El núcleo del
sistema UNIX se mantiene al tanto del tamaño
de los archivos sin introducir ningún carácter especial
(no hay carácter de fin de archivo).
UNIX Sistema de Archivo y Sistema de E/S
![]()
El carácter
nueva línea es interpretado por las terminales como nueva línea y retorno de
carro.
Cada usuario
es dueño de los archivos creados por
él, hasta que los borre o los ceda a otro usuario. Cada usuario pertenece a un
grupo, y puede compartir archivos con los usuarios de ese grupo.
Un sistema de
archivo en UNIX puede contener miles de
archivos, cientos de directorios y de enlaces simbólicos, dependiendo de
la distribución y de lo que se haya instalado.
NOMBRE DE ARCHIVOS
Los archivos
son identificados por su nombre (de hasta 14 caracteres), no existe un formato estándar para los nombres de archivos,
como existe en MS-DOS y otros S.O., en general el nombre de un archivo puede
contener cualquier carácter, incluso caracteres no visibles, excepto el
carácter (-), puede utilizar los
llamados Caracteres Comodín, en lugar
de un nombre de archivo exacto. Es limitado en su extensión a 256 caracteres,
se aconseja usar solamente letras, números, punto, y subraya (también se usan espacios, comas, etc.).
A diferencia
de MS-DOS los nombres de archivos en UNIX
son sensibles a mayúsculas o minúsculas.
Los archivos
y directorios cuyos nombres comienzan con un punto (.), son normalmente
archivos de configuración.
Los archivos
cuyos nombres terminan con (~), por lo general son archivos de soporte (copias
de seguridad).
TIPOS DE ARCHIVOS
Hay cuatro (4)
tipos diferentes de archivos:
1-Archivos Odinarios
Como usuario la
información con que se trabaja, generalmente será almacenada como archivo
ordinario. El archivo puede contener caracteres ASCII o programas. Los archivos
pueden cambiarse, crearse o borrarse cuando sea pertinente
UNIX Sistema de Archivo y Sistema de E/S
![]()
2-Vinculos o Ligas (Simples o
Simbólicos)
Simples: No es una clase de archivo, sólo un segundo
nombre. Si dos usuarios necesitan compartir la información de un archivo de
forma consistente, un vínculo es la solución a este problema. Además el usar
vínculos ahorra espacio en disco.
Simbólicos: También se conocen como HARD LINKS. Eliminan las
limitaciones de los vínculos simples. Un vínculo simbólico es un archivo que
sólo contiene el nombre de otro archivo. De tal modo que pueden emplearse para
asignar mas de un nombre a un archivo o
directorio
3-Directorios
Este tema se
desarrollará más adelante
4-Archivos Especiales
Constituyen una
característica no usual del sistema de archivos UNIX. Los nombres de estos
archivos identifican los dispositivos físicos (hardware) del equipo:
Discos magnéticos
Cintas magnéticas
Terminales, etc.
DIRECTORIOS
Un directorio
es una colección de archivos (e información acerca de los mismos). Dentro del
sistema de archivos, un directorio es una localización capaz de contener otros
directorios o archivos. Dos archivos que se encuentren en distintos directorios
pueden tener el mismo nombre sin confundirse.
Al ingresar
al sistema cada usuario entra en su DIRECTO- RIO PROPIO, un directorio privado
que no es tocado por el sistema ni por
los otros usuarios. El directorio en el cual se
encuentra posicionado el usuario en un momento dado se
denomina DIRECTORIO ACTUAL.
Un directorio
puede contener otros directorios así como archivos ordinarios, lo que genera
una jerarquía o árbol de directorios, el de más nivel es llamado “DIRECTORIO
RAIZ”.
UNIX Sistema de Archivo y Sistema de E/S
![]()
JERARQUIA
DEL SISTEMA DE ARCHIVOS
El sistema de archivos está organizado en una
estructura jerárquica. Este sistema jerárquico permite agrupar la información
de una forma lógica y manipular un grupo de archivo como una unidad.
No tiene
ninguna limitación en su desarrollo, permitiendo un crecimiento dinámico tanto
en su número como en su tamaño.
Los usuarios
deberán “caminar“ a través del árbol hasta encontrar el archivo deseado.
Por lo tanto resulta muy útil saber la disposición del árbol directorio
para poder localizar archivos y directorios particulares.
UNIX permite crear archivos y directorios
arbitrariamente.
PERMISOS DE ARCHIVOS
Cada archivo
tiene un conjunto de permisos asociados con el que determinan que puede hacerse
con el archivo y quien puede hacerlo.
Los permisos de un archivo se indican con
10 caracteres:
1 Carácter para tipo de
archivo.
3 Caracteres (rwx) para
permisos del grupo,
3 Caracteres (rwx) para
permisos del grupo.
3 Caracteres (rwx) para
permisos de otros.
Caracteres de
permisos:
R Acceso de lectura (read).
W Acceso de escritura (write).
X Acceso de ejecución (execute).
|
Permisos |
Archivos |
Directorios |
|
R |
Leer archivos |
Ver contenido
de directorios |
|
W |
Grabar un
archivo |
Crear y borrar
un archivo |
|
X |
Ejecutar como
un programa |
Ingresar a un
directorio |
CARACTERÍSTICAS DEL SISTEMA OPERATIVO
·
Un sistema
de ficheros jerárquico en el que todo se encuentra anclado en la raíz. La
mayoría de la literatura sobre el tema dice que el sistema de ficheros UNIX es
un grafo acíclico, sin embargo, la
realidad es que se trata de un grafo
UNIX Sistema de Archivo y Sistema de E/S
todas las actividades: el root,
todopoderoso, para el que no hay barreras; y el resto de los usuarios,
controlados por el S.O. según las directivas del root.
·
Una de las
grandes ideas de UNIX es la unificación y compatibilidad de todos los procesos
de entrada y salida. Para UNIX, el universo es un sistema de ficheros. De esta
forma existe compatibilidad entre ficheros, dispositivos, procesos, pipes y
sockets.
·
El núcleo
de UNIX es relativamente compacto en comparación con otros sistemas de tiempo
compartido. Introduce la idea de reducir el tamaño del kernel y ceder ciertas
funciones a programas externos al núcleo llamados demonios. Esto ha sido muy
desarrollado y en la actualidad, la tendencia es el desarrollo de micro-kernels, sin embargo UNIX, aunque
pionero, es anterior a estos desarrollos.
·
El sistema
presenta comandos de usuario (es decir, a nivel de shell) para iniciar y
manipular procesos concurrentes asíncronos.
Un usuario puede ejecutar varios procesos, intercambiarlos e interconectarlos a
través de pipes o tuberías,
simbolizados por el carácter ¦ (ASCII 124). En DOS, también existe la idea del
pipe, sin embargo, al no existir concurrencia de procesos, no se trata de una
comunicación en "tiempo real", sino de un paso de información a
través de ficheros temporales.
·
UNIX es un
S.O. de red, algo que muchos confunden con un S.O. distribuido, lo que se
discutirá en los capítulos de internetworking. Por ello, se ha incluído en su
núcleo la arquitectura de protocolos de Internet, TCP/IP.
UNIX,
como la mayoría de los S.O. actuales es un sistema multiusuario y multitarea.
Esto influye en la gestión de la protección del sistema que soluciona de la
siguiente forma:
·
Todas las
operaciones de ENTRADA/SALIDA son realizadas por UNIX en el llamado modo supervisor, modo de ejecución en el
que el S.O. toma control total del ordenador arrebatándoselo al programa de
usuario. El usuario, sin embargo, tiene la impresión de ser él quien realiza la
operación invocando una system call o
llamada al sistema desde programa. La
forma de una system call es la de una función C cualquiera y es la forma que
tiene el usuario de interactuar con el sistema.
·
UNIX tiene
un absoluto control de la memoria, gestionando límites de zona para usuarios y
para sí mismo y proporcionando llamadas para petición y liberación. Podría
compararse con el modo protegido de un extender de DOS.
·
Al ser un
S.O. multiusuario y multitarea pero monoprocesador, debe realizar la gestión de
la CPU asignándosela o arrebatándosela a los programas de usuario (sistema de
tiempo compartido).
![]()
Número de visitantes actuales disponible desde el 14/07/2002:
Autor: lrmdavid@exa.unne.edu.ar
Ó FACENA - http://exa.unne.edu.ar
Servicios WEB: webmaster@exa.unne.edu.ar