Por qué Linux NO usa Disco C:\ ni D:\ (La Verdad)

Tabla de Contenidos

¡Muy buenas tardes a todos y bienvenidos a otro vídeo y artículo para el canal! Hoy arrancamos una serie que para mí es absolutamente obligatoria si queréis entender cómo funciona Linux de verdad: el Filesystem Hierarchy Standard (FHS), o la jerarquía estándar del sistema de archivos.

Por qué Linux no usa Disco C:\ ni D:\ - Filesystem Hierarchy Standard

En este primer episodio nos vamos a centrar en el origen de todo: el directorio raíz (/), por qué en Linux no existen las letras de unidad que arrastramos desde DOS y Windows, el fascinante misterio técnico del UsrMerge en /bin y /sbin, y esa joya de la transparencia arquitectónica que es /etc frente a la opacidad del Registro de Windows.


1. El Choque Cultural: ¿Por qué no hay disco C:\ ni D:\?

La primera pregunta que se hace cualquier usuario cuando aterriza en Linux desde Windows es casi instintiva: "¿Dónde narices está mi disco duro?".

En Windows estamos acostumbrados al concepto de unidades físicas y volúmenes aislados: tienes C:\ para el sistema operativo, conectas un segundo SSD NVMe o SATA y el sistema le asigna D:\, y si pinchas un pendrive USB te crea E:\. Cada dispositivo vive en su propio silo independiente con su propia letra asignada por el sistema.

Choque cultural: Silos de letras en Windows frente a la raíz de Linux

Sin embargo, cuando llegas a Linux por primera vez, abres la terminal o el gestor de archivos (sea Thunar, Dolphin o Nautilus) y te encuentras con una única barra inclinada (/) y una serie de directorios con nombres aparentemente crípticos: bin, etc, dev, var, proc, usr... y a primera vista parece un caos indescifrable.

La realidad técnica es exactamente la contraria: el modelo de Linux no es caótico, es infinitamente más limpio, robusto y consistente que el de Windows. Todo parte de un único punto de origen universal: la raíz (/).


2. El Directorio Raíz (/) y el Concepto Universal de Montaje

En Linux, la arquitectura sigue la metáfora de un árbol invertido. En la cúspide se encuentra el directorio raíz, representado por un solo carácter: /. Nada puede existir fuera de este árbol.

Da igual cuántos discos duros físicos tengas instalados en tu placa base, cuántas particiones lógicas configures, cuántos pendrives conectes o cuántos recursos de red (NFS o SMB) estén enlazados: todo se "monta" como una rama o subcarpeta dentro de este árbol único.

El árbol invertido de la raíz en Linux y el concepto de montaje

¿Qué ventaja ofrece esto en el día a día?

Imagina que tienes un disco secundario de 4 Terabytes para almacenar máquinas virtuales, proyectos pesados o bibliotecas de vídeo:

  • En Windows: Tendrías una nueva unidad D:\ o E:\. Si en tus scripts o programas habías configurado rutas a C:\Users\tu_usuario\Videos, tendrías que reconfigurar manualmente las rutas absolutas en todas las aplicaciones afectadas para que apunten a la nueva unidad.
  • En Linux: Simplemente montas ese disco secundario en cualquier carpeta existente del árbol, como por ejemplo /home/rengtech/videos o /mnt/almacenamiento.

Para el núcleo (Kernel) de Linux, para tus aplicaciones de escritorio y para tus scripts de automatización, ese disco gigante es simplemente un directorio transparente dentro de la jerarquía. Si dentro de dos años reemplazas ese disco por un array NAS en red de 50 Terabytes, lo montas en la misma ruta y absolutamente nada de tu flujo de trabajo se romperá.


3. Los Ejecutables del Sistema: /bin, /sbin y el Gran UsrMerge

Al explorar la raíz, la primera carpeta clave con la que nos topamos es /bin (abreviatura de Binaries), donde residen los ejecutables fundamentales para que el sistema arranque y funcione en modo rescate: comandos esenciales como ls, cp, mv, cat o la propia shell bash.

Tradicionalmente, a su lado existía /sbin (System Binaries), reservada a comandos de administración del sistema destinados al superusuario root (como fdisk, iptables o reboot).

El misterio del UsrMerge y la PDP-11

La sorpresa moderna: /bin apunta a /usr/bin

Si abrís una terminal en distribuciones modernas como Debian 12, Ubuntu 24.04, Fedora 41 o Arch Linux y ejecutáis:

ls -l /

Observaréis un detalle muy revelador:

lrwxrwxrwx 1 root root 7 bin -> usr/bin
lrwxrwxrwx 1 root root 8 sbin -> usr/sbin
lrwxrwxrwx 1 root root 7 lib -> usr/lib
lrwxrwxrwx 1 root root 9 lib64 -> usr/lib64

/bin y /sbin ya no son directorios físicos independientes, sino enlaces simbólicos (symlinks) que apuntan directamente a /usr/bin y /usr/sbin. A esta unificación técnica se la conoce como UsrMerge.

La historia detrás de la división (1971)

¿Por qué estuvieron separados durante cinco décadas? Todo se remonta a los años 70 en los laboratorios Bell. Ken Thompson y Dennis Ritchie estaban desarrollando Unix sobre una computadora PDP-11.

El disco duro original (un RK05) tenía una capacidad total de tan solo 1.5 Megabytes. Cuando el disco del sistema empezó a llenarse y no cabía ni un comando más, añadieron un segundo disco duro idéntico, lo montaron bajo la ruta /usr (de User) y movieron allí los programas adicionales y el código fuente.

Esa limitación de almacenamiento físico de 1971 se convirtió en un estándar histórico heredado durante 50 años. Hoy en día, tener ejecutables repartidos arbitrariamente entre cuatro carpetas distintas (/bin, /sbin, /usr/bin, /usr/sbin) en la variable $PATH no aportaba ningún beneficio real y complicaba la gestión de paquetes, instantáneas (snapshots Btrfs/ZFS) y sistemas inmutables. El ecosistema moderno de Linux ha resuelto esto de raíz centralizándolo todo en /usr/bin.


4. El Corazón de la Configuración: /etc frente al Registro de Windows

La siguiente parada crítica es /etc (Editable Text Configuration o históricamente et cetera). Aquí reside la configuración global de todo el sistema operativo y de los demonios o servicios instalados.

Configuración transparente en texto plano en /etc

La gran diferencia de diseño con Windows

En el entorno de Microsoft Windows, la mayor parte de las configuraciones del sistema y de los programas se almacena en el Registro de Windows (Windows Registry): una base de datos binaria jerárquica y monolítica. Si una clave del registro se corrompe por un fallo eléctrico o un instalador defectuoso, el sistema operativo puede quedar completamente inarrancable. Además, no es trivial auditar qué cambios ha realizado una aplicación en segundo plano.

En Linux rige uno de los principios fundacionales de la filosofía Unix: la configuración debe ser texto plano legible y editable por humanos.

Dentro de /etc encontramos archivos y carpetas autoexplicativos:

  • /etc/fstab: La tabla donde se definen los discos, UUIDs y puntos de montaje automáticos al inicio.
  • /etc/ssh/sshd_config: Los parámetros de seguridad y puertos del servidor OpenSSH.
  • /etc/passwd y /etc/shadow: Los usuarios registrados en el sistema y los hashes de sus contraseñas.
  • /etc/apt/ o /etc/dnf/: Las fuentes y repositorios oficiales de software.
  • /etc/hostname: El nombre de red asignado a tu máquina.

Versionar tu sistema con Git (etckeeper)

Gracias a que todo /etc está compuesto por archivos de texto plano, hacer una copia de seguridad integral de la configuración de un servidor en producción es tan simple como empaquetar o sincronizar esa carpeta.

Incluso es una práctica profesional estándar inicializar un repositorio Git dentro de /etc mediante utilidades como etckeeper. Con esto, cada vez que instalas un paquete o modificas un archivo de configuración con nano o vim, el cambio queda registrado en un commit con su fecha, usuario y diff exacto. Si algo falla tras una actualización, puedes hacer un git revert y restaurar la configuración anterior en segundos.


Vídeo Completo del Episodio 1

A continuación puedes ver el vídeo completo con todas las animaciones técnicas detalladas y ejemplos en terminal:


Conclusiones y Próximo Episodio

Para resumir los conceptos clave de este primer episodio:

  1. Un solo árbol: En Linux no existen letras de disco independientes; todo se integra dentro del árbol invertido que nace en la raíz (/).
  2. Montaje transparente: Cualquier disco, partición o recurso de red se anexa a una carpeta existente sin alterar las rutas de tus programas.
  3. UsrMerge: Las carpetas /bin y /sbin ahora son enlaces simbólicos hacia /usr/bin, unificando una división histórica de 1971.
  4. Transparencia en /etc: Configuración 100% en texto plano, auditable, fácil de respaldar y versionable con Git.

En el próximo episodio de la serie Filesystem Hierarchy Standard nos adentraremos en el resto del árbol: dónde residen los datos personales del usuario en /home, los archivos variables y logs en /var, los dispositivos virtuales en /dev, y el eterno dilema de si conviene instalar aplicaciones en /opt o en /usr/local.

¿Conocías la historia del disco de 1.5 Megabytes de Unix que originó la separación de /bin y /usr, o pensabas que siempre habían tenido propósitos distintos? ¡Déjamelo en los comentarios y nos vemos en el próximo vídeo!

¿Te gusta este contenido?

Si este artículo te fue útil, considera invitarme un café. ¡Tu apoyo ayuda a mantener este sitio!

Artículos Relacionados