Un sistema de archivos de Linux es una colección estructurada de archivos en una unidad de disco o una partición. Una partición es un segmento de memoria y contiene algunos datos específicos. En nuestra máquina, puede haber varias particiones de la memoria. Generalmente, cada partición contiene un sistema de archivos.
El sistema informático de propósito general necesita almacenar los datos sistemáticamente para que podamos acceder fácilmente a los archivos en menos tiempo. Almacena los datos en discos duros (HDD) o algún tipo de almacenamiento equivalente. A continuación se detallan las razones para mantener el sistema de archivos:
- Principalmente el ordenador guarda los datos en la memoria RAM; puede perder los datos si se apaga. Sin embargo, hay RAM no volátil (Flash RAM y SSD) que está disponible para mantener los datos después de la interrupción de la energía.
- Se prefiere el almacenamiento de datos en discos duros en comparación con la RAM estándar, ya que la RAM cuesta más que el espacio en disco. Los costes de los discos duros están bajando gradualmente en comparación con la RAM.
El sistema de archivos de Linux contiene las siguientes secciones:
- El directorio raíz (/)
- Un formato específico de almacenamiento de datos (EXT3, EXT4, BTRFS, XFS, etc.)
- Una partición o volumen lógico que tiene un sistema de archivos particular.
- ¿Qué es el sistema de archivos de Linux?
- Estructura del sistema de archivos de Linux
- Características del sistema de archivos de Linux
- Tipos de sistema de archivos de Linux
- Sistema de archivos Ext, Ext2, Ext3 y Ext4
- Sistema de archivos JFS
- Sistema de archivos ReiserFS
- Sistema de archivos XFS
- Sistema de archivos Btrfs
- Sistema de archivos de intercambio
¿Qué es el sistema de archivos de Linux?
El sistema de archivos de Linux es generalmente una capa incorporada de un sistema operativo Linux que se utiliza para manejar la gestión de datos del almacenamiento. Ayuda a organizar el archivo en el almacenamiento del disco. Gestiona el nombre del archivo, el tamaño del archivo, la fecha de creación y mucha más información sobre un archivo.
Si tenemos un formato de archivo no soportado en nuestro sistema de archivos, podemos descargar un software para lidiar con él.
Estructura del sistema de archivos de Linux
El sistema de archivos de Linux tiene una estructura de archivos jerárquica ya que contiene un directorio raíz y sus subdirectorios. Desde el directorio raíz se puede acceder a todos los demás directorios. Una partición suele tener un solo sistema de archivos, pero puede tener más de un sistema de archivos.
Un sistema de archivos está diseñado de forma que pueda gestionar y proporcionar espacio para datos de almacenamiento no volátil. Todos los sistemas de archivos requieren un espacio de nombres que es una metodología de nomenclatura y organización. El espacio de nombres define el proceso de nomenclatura, la longitud del nombre del archivo, o un subconjunto de caracteres que se pueden utilizar para el nombre del archivo. También define la estructura lógica de los archivos en un segmento de memoria, como el uso de directorios para organizar los archivos específicos. Una vez que se describe un espacio de nombres, se debe definir una descripción de metadatos para ese archivo en particular.
La estructura de datos debe soportar una estructura jerárquica de directorios; esta estructura se utiliza para describir el espacio de disco disponible y utilizado para un bloque en particular. También tiene los otros detalles sobre los archivos como el tamaño del archivo, la fecha & hora de creación, actualización y última modificación.
Además, almacena información avanzada sobre la sección del disco, como las particiones y los volúmenes.
Los datos avanzados y las estructuras que representa contienen la información sobre el sistema de archivos almacenado en la unidad; es distinta e independiente de los metadatos del sistema de archivos.
El sistema de archivos Linux contiene una arquitectura de implementación de software del sistema de archivos en dos partes. Considere la siguiente imagen:
El sistema de archivos requiere una API (interfaz de programación de aplicaciones) para acceder a las llamadas de función para interactuar con los componentes del sistema de archivos como archivos y directorios. La API facilita tareas como crear, borrar y copiar los archivos. Facilita un algoritmo que define la disposición de los archivos en un sistema de archivos.
Las dos primeras partes del sistema de archivos dado se denominan conjuntamente sistema de archivos virtual de Linux. Proporciona un único conjunto de comandos para el kernel y los desarrolladores para acceder al sistema de archivos. Este sistema de archivos virtual requiere el controlador de sistema específico para dar una interfaz al sistema de archivos.
Características del sistema de archivos de Linux
En Linux, el sistema de archivos crea una estructura de árbol. Todos los archivos se organizan como un árbol y sus ramas. El directorio superior llamado directorio raíz (/). Todos los demás directorios en Linux se puede acceder desde el directorio raíz.
Algunas características clave del sistema de archivos de Linux son las siguientes:
- Especificación de rutas: Linux no utiliza la barra invertida (\) para separar los componentes; utiliza la barra inclinada (/) como alternativa. Por ejemplo, al igual que en Windows, los datos pueden estar almacenados en C:\ Mis Documentos\ Trabajo, mientras que, en Linux, estarían almacenados en /home/ Mis Documentos/ Trabajo.
- Partición, Directorios y Unidades: Linux no utiliza letras de unidad para organizar la unidad como hace Windows. En Linux, no podemos saber si nos dirigimos a una partición, a un dispositivo de red o a un directorio «ordinario» y a una unidad de disco.
- Sensibilidad a las mayúsculas y minúsculas: El sistema de archivos de Linux distingue entre mayúsculas y minúsculas. Distingue entre nombres de archivo en minúsculas y en mayúsculas. Por ejemplo, hay una diferencia entre test.txt y Test.txt en Linux. Esta regla también se aplica a los directorios y a los comandos de Linux.
- Extensiones de archivos: En Linux, un archivo puede tener la extensión ‘.txt’, pero no es necesario que un archivo tenga una extensión de archivo. Cuando se trabaja con Shell, se crean algunos problemas para los principiantes para diferenciar entre archivos y directorios. Si utilizamos el gestor gráfico de archivos, simboliza los archivos y carpetas.
- Archivos ocultos: Linux distingue entre archivos estándar y archivos ocultos, sobre todo los archivos de configuración están ocultos en el sistema operativo Linux. Normalmente, no necesitamos acceder o leer los archivos ocultos. Los archivos ocultos en Linux se representan con un punto (.) antes del nombre del archivo (por ejemplo, .ignore). Para acceder a los archivos, necesitamos cambiar la vista en el administrador de archivos o necesitamos usar un comando específico en el shell.
Tipos de sistema de archivos de Linux
Cuando instalamos el sistema operativo Linux, Linux ofrece muchos sistemas de archivos como Ext, Ext2, Ext3, Ext4, JFS, ReiserFS, XFS, btrfs y swap.
Entendamos cada uno de estos sistemas de archivos en detalle:
Sistema de archivos Ext, Ext2, Ext3 y Ext4
El sistema de archivos Ext significa Extended File System. Fue desarrollado principalmente para el sistema operativo MINIX. El sistema de archivos Ext es una versión antigua, y ya no se utiliza debido a algunas limitaciones.
Ext2 es el primer sistema de archivos de Linux que permite gestionar dos terabytes de datos. Ext3 se desarrolla a través de Ext2; es una versión mejorada de Ext2 y contiene compatibilidad con versiones anteriores. El mayor inconveniente de Ext3 es que no es compatible con los servidores porque este sistema de archivos no admite la recuperación de archivos ni las instantáneas de disco.
El sistema de archivos Ext4 es el más rápido de todos los sistemas de archivos Ext. Es una opción muy compatible con los discos SSD (unidad de estado sólido), y es el sistema de archivos por defecto en la distribución de Linux.
Sistema de archivos JFS
JFS significa Journaled File System, y está desarrollado por IBM para AIX Unix. Es una alternativa al sistema de archivos Ext. También puede utilizarse en lugar de Ext4, cuando se necesita estabilidad con pocos recursos. Es un sistema de archivos práctico cuando la potencia de la CPU es limitada.
Sistema de archivos ReiserFS
ReiserFS es una alternativa al sistema de archivos Ext3. Tiene un rendimiento mejorado y características avanzadas. En el tiempo anterior, el ReiserFS fue utilizado como el sistema de archivos por defecto en SUSE Linux, pero más tarde ha cambiado algunas políticas, por lo que SUSE volvió a Ext3. Este sistema de archivos soporta dinámicamente la extensión de archivos, pero tiene algunos inconvenientes en el rendimiento.
Sistema de archivos XFS
El sistema de archivos XFS fue considerado como JFS de alta velocidad, que se desarrolla para el procesamiento de E/S en paralelo. La NASA sigue utilizando este sistema de archivos con su servidor de alto almacenamiento (servidor de más de 300 terabytes).
Sistema de archivos Btrfs
Btrfs significa sistema de archivos de árbol B. Se utiliza para la tolerancia a fallos, el sistema de reparación, la administración de la diversión, la configuración de almacenamiento extenso, y más. No es un buen traje para el sistema de producción.
Sistema de archivos de intercambio
El sistema de archivos de intercambio se utiliza para la paginación de memoria en el sistema operativo Linux durante la hibernación del sistema. Un sistema que nunca entra en estado de hibernación está obligado a tener un espacio de intercambio igual a su tamaño de RAM.