DAEP Dispositivos, Sistema de archivos Linux, Herencia estándar
De Gleducar, http://www.gleducar.org.ar
Tabla de contenidos |
Particiones y sistemas de archivos
¿Qué es un sistema de archivos?
Para comenzar digamos que es un método de abstracción que permite al usuario (humano) entender y ordenar los bits que componen los bytes usados por el hardware.
Un sistema de archivo está diseñado para el almacenamiento de archivos en una unidad de disco. Dependen de un gestor de archivos para ser manipulados, ya que sin este no se pueden ejecutar órdenes que interactuen con los archivos que contiene. Está conformado sectores de almacenamiento de aprox. 512 bytes de tamaño. Se encarga de determinar que sectores utilizar y de que forma hacerlo que el almacenado de información. Esta organización se visualiza como archivos y carpetas para hacerlo fácil de usar y entender para el usuario final.
Los sistemas de archivos poseen directorios (también conocido como subsistema), que relacionan los nombres de los archivos con los archivos propiamente dichos. Esto se llama tabla de asignación de archivos y las mas comunes son FAT en windows e INODOS en Linux.
La estructura de sistema de archivos puede ser plana o Jerárquica(en forma de árbol). En linux la forma del sistema utilizado es Jerárquica, tomando un directorio pricipal y reduciendo en sub-directorios.
La forma de expresar un archivo es la ruta del lugar exacto donde este se encuentra (como una sucesión de directorios) y el nombre de archivo.
Formato de particiones
En informática, el formato de un disco es la manera en la que están dispuestas los datos en él. Aunque hay dos tipos de formato (el físico y el lógico), habitualmente los usuarios sólo conocen el lógico. El formato lógico puede ser realizado habitualmente por los usuarios, aunque muchos medios vienen ya formateados de fábrica. El formato lógico implanta un sistema de archivos que asigna sectores a archivos. En los discos duros, para que puedan convivir distintos sistemas de archivos, antes de realizar un formato lógico hay que dividir el disco en particiones; más tarde, cada partición se formatea por separado.
Tipos de sistemas de archivos
Los tipos de sistemas de archivos mas conocidos son:
- FAT 16-32
- EXT2 (Extended)
- EXT3 (Extended)
- NTFS
- Reisers
- JFS
- XFS
Integridad del sistema de archivos
Mantener un sistema de archivos (o File System en inglés) a pleno funcionamiento tiene como resultado un sistema eficiente y sin problemas. Los problemas que pueden afectar a la integridad del sistema de archivos pueden ser variados, pero cualquiera sea este también hay formas de solucionarlo.
Problemas comunes
Todos los problemas que tenga el sistema de archivos son delicados y de mucha importancia, ya que el filesystem es el pilar para el sistema operativos y sus programas. Por esta razón es muy importante hacer periódicos chequeos y mantenimientos. Si bien en la generalidad de los casos hay formas de recuperar la integridad del sistema de archivos, en ocaciones el mismo es irrecuperable.
Corte de la energia eléctica (apagado sin desmontar el filesystem)
Un error muy grave y muy común, lamentablemente, es apagar la pc incorrectamente. El hecho de hacerlo parece no hacer nada al sistema pero nada mas alejado de eso. Cuando se apaga correctamente el sistema, este se encarga de avisarle al sistema de archivos que haga los cambios que crea necesarios y que después se apague para que no halla pérdida de información. Cuando se aprieta el botón del gabinete sin haber apagado el sistema, se corre el riesgo de que halla quedado el filesystem ejecutando algún proceso importante y cuando queramos volver a iniciar el sistema este ya no arranque.
Sistema de archivos sin espacio libre
Un sistema de archivos pierde su sentido totalmente si no puede aceptar nuevos elementos. Esto puede ocurrir si el sistema se queda sin espacio libre o inodos libres. Los inodos son estruturas que describen los datos que contienen. En el momento de creado del sistema de archivos también se define la cantidad de inodos que este va a aceptar. Si el sistema de archivos llega al máximo de inodos el sistema comienza a funcionar menos eficientemente y pierde su utilidad. Esto se debe a que los usuarios de un sistema siempre guardan archivos, de forma consiente o inconciente. Muchos programas durante su ejecución crean archivos para su uso interno, y obviamente si el sistema de archivos no tiene espacio no pueden hacerlo.
Mantenimiento del sistema de archivos
Para mantener el sistema de archivos en correcto funcionamiento, es importante que tenga encuenta estos datos:
- NO Apagar el sistema incorrectamente
- NO Llenar el sistema de forma irresponsable, a cantidad de archivos inmanejables y de forma desordenada
- Utilize siempre estabilizadores de tensión
- Ejecute programas de mantenimiento periodicamente
Montar y Desmontar sistemas de archivos
Todos los sistemas de archivos de los dispositivos de nuestra pc se unen en la / raiz de la misma manera, pero lo hacen en directorios destinados a contenerlo, llamados Puntos de Montaje.
Para poder utilizar un sistema de archivos o ver su contenido hay que montarlo. Esto de hace diciendole al sistema donde montarlo, como y en que dispositivo se encuentra.
Cuando ya no queremos utilizarlo mas (por ejemplo un cd), solo tenemos que desmontarlo. Los discos duros, los CD's, diskettes, ZIP , etc poseen un sistema de archivos y por lo tanto para ser utilizados deben ser montandos.
Otra forma de entender este concepto es pensar en que linux tiene solo un árbol de carpetas y la acción de montar puede ser traducida en integrar un sistema de archivos al nativo de Linux. Si nuestro linux está instalado con el sistema de archivos EXT3 y queremos usar la partición windows xp, tendremos que montar/integrar a nuestro Linux es sistema de archivos NTFS.
Este concepto de punto de montaje, es común a todos los sistemas operativos, solo que cada uno lo resuelve de distinta manera. En el caso de Linux, podemos montar un sistema de archivos en cualquier parte que lo necesitemos porque eso nos da mucha flexibilidad en la administración del sistema. Más adelante veremos ejemplos donde podremos apreciar esta afirmación.
Cuotas de disco
La utilización de cuotas de disco tiene como principal objetivo limitar la cantidad de espacio en disco o la cantidad de archivos que puede tener bajo su propiedad un usuario o varios en el sistema. De este modo si impide que un solo usuario termine todo es espacio privandole sus derechos de uso a otros usuarios dentro del sistema.
Ventajas en la limitación de espacio
Al limitar el espacio utilizado por cada usuario se tiene un control total en la forma en que estos se administran. Si se limita a una cantidad de espacio determinada, puede hacer que la cuenta no sea utilizada para bajar música, por ejemplo, pero si que el espacio le permita hacer 1000 archivos de open office. Esta medida, no solo que ayudara a la responsabilidad de uso del espacio, sino que si un usuario decide no utilizarlo correctamente las consecuencias estarian en su contra y no contra todos los usuarios del sistema.
Permisos de archivos
Linux es un sistema multiusuario que le permite a sus usuarios ser asignar permisos de sus archivos, ya sea para compartirlos o para hacerlos información secreta. Para poder manejar estos permisos, cada usuario posee:
- User-id o Nombre de usuario
- Number-id o Número que lo identifica
- Group-id o Capacidad de pertencer a un grupo
Los grupos pueden ser utilizados para restringir en acceso a un archivo o grupo de estos a uno o mas usuarios del sistema. Esta característica es muy importante para trabajar en equipo y compartir información. Dentro de un sistema puede haber muchos grupos. Por ejemplo:
- Directivos
- Alumnos
- Administración
- Club de informática
Los archivos en linux pueden tener tres tipos distintos de permisos:
- Escritura
- Lectura
- Ejecución
Y tres tipos de niveles de permisos distintos:
- Propietario
- Grupo
- Otros
Compartir archivos
Veamos un ejemplo para entender mas esto de los permisos.
El usuario admin del grupo de administración creo un archivo con el resumen de gastos del mes y quiere que los otros usuarios de su grupo puedan leerlo, pero debido a que es información confidencial de la escuela no quiere que el resto de los usuarios ni grupos lo puedan ver. Gracias a la facilidad de manejo de Linux, esto está a una línea de distancia y además es muy seguro.
Para lograrlo, solo deberemos darle permisos de lectura a los usuarios que pertenecen al mismo grupo que el propietario del archivo, podemos decirle que solo el propietario puede editarlo también y podemos negarle todo tipo de acceso al resto de los usuarios.
Ningún usuario (exepto el root) podrá manipular nuestros archivos sin nuestro consentimiento.
Enlaces duros y simbólicos
En linux, un enlace simbólico indica un acceso a un directorio o archivo que no es real, sino un portal a otro, que se encuentra en un lugar distinto, dentro de la estructura de directorios.
Una modificación realizada utilizando este enlace se reflejará en el original, pero si se elimina el enlace, no se eliminará el auténtico.
Otra opción menos usual utilizar un enlace duro (hard link), en el que el acceso es indistinguible del real, y el borrado del enlace provoca el borrado del archivo o directorio, en el caso de haber sido el último enlace duro al archivo.
Ubicación correcta de los archivos del sistema
Cada archivo en Linux tiene una ubicación predeterminada. Eso nos permite: primero adminstrar eficientemente los niveles de seguridad del sistema, segundo mantener ordenados los archivos como para saber fácilmente donde están los iconos, las librerías compartidas, las aplicaciones, los archivos de los usuarios, los archivos de configuración, etc.
La forma de definir el lugar donde está un archivo cualquiera es entendiendo su path (ruta). Éste puede determinarse de dos formas: una relativa y una absoluta.
La forma relativa depende del directorio en el que estamos situados. Por ejemplo, si queremos ver los archivos contenidos en un directorio que está dentro del que nos encontramos, podemos escribir:
ls directorio/
En cambio, la forma absoluta hace referencia al directorio raiz (/). Suponiendo que en el ejemplo de antes, el directorio actual era /home/yo/ entonces escribiríamos:
ls /home/yo/directorio/
Y el resultado del comando sería el mismo... listar el contenido de directorio/
En este caso particular en que directorio/ se encuentra en mi directorio home/ personal, podemos usar un atajo de las rutas absolutas que es ~/ que representa al directorio home del usuario actual.
ls ~/directorio/
Este comando también da el mismo resultado.
La pregunta será ¿para qué tantas formas de hacer lo mismo? Y la respuesta es: porque el primer ejemplo es el que usamos si estamos a solo un paso del directorio que queremos listar; el segundo y tercero son para listar el contenido del directorio sin importar el directorio en el que nos encontremos.