Capítulo 8: Realización de tareas básicas sobre sistemas operativos libres y propietarios

Publicado por P. Ruiz en

8.4. Estructura del árbol de directorios.

Ya comentábamos en un capítulo anterior que prácticamente todos los sistemas de archivos que podemos encontrar hoy en día, organizan los archivos de forma jerárquica, permitiendo la creación de un árbol de directorios que facilitan la organización y clasificación de su contenido.

Además, para evitar ambigüedades, los sistemas operativos no permiten que, dentro del mismo directorio, existan dos archivos con el mismo nombre.

También hemos comentado que en los sistemas Windows, normalmente, cada unidad de almacenamiento se identifica con una letra del alfabeto, manteniendo un árbol de directorios independientes. Por su parte, los sistemas derivados de Unix suelen tener un solo árbol de directorios donde se pueden integrar las diferentes unidades de almacenamiento.

Además de esta información general, puede ser útil conocer la estructura que utiliza cada sistema operativo para mantener organizada su información.

Directorios del sistema en Windows

En Windows, lo primero que debemos tener claro es la unidad en la que se encuentra instalado el sistema operativo. Suele ser la que se encuentra identificada con la letra C, pero esto no es una condición imprescindible.

En cualquier caso, si necesitas estar seguro de la ruta donde se encuentra instalado Windows, basta con utilizar una orden como esta:

echo %windir%

1

Comprobamos que se encuentra instalado en la carpeta Windows de la unidad C.

Básicamente, lo que hemos hecho con la orden anterior es utilizar el comando echo para mostrar el valor de la variable de sistema %windir%, que contiene la ruta de instalación del sistema. Como puedes suponer, el valor de esta variable puede cambiar de un ordenador a otro.

En Windows disponemos de diferentes variables del sistema que podemos consultar en cualquier momento o, incluso, utilizar dentro de nuestros scripts. En la siguiente tabla se incluyen las más frecuentes:

Variables del sistema en Windows árbol de directorios de WindowsSi comprobamos el contenido de la Unidad C, veremos que contiene diferentes carpetas:

  • Archivos de programa: es donde están instalados los programas. Si el sistema operativo es de 32 bits, aquí se almacenan todas las aplicaciones. En los sistemas de 64 bits, solo contiene las aplicaciones nativas para esta arquitectura.

  • Archivos de programa (x86): en los sistemas de 64 bits, es donde se guardan todas las aplicaciones instaladas que no sean nativas de esta arquitectura (normalmente, las de 32 bits).

  • PerfLogs (del inglés, Performance Logs): es la carpeta donde almacena Windows los registros de seguimiento (logs) relacionados con la confiabilidad y el rendimiento del sistema.

  • Usuarios: En su interior tenemos una carpeta llamada Acceso público, que será accesible para todos los usuarios del sistema, y que podrán utilizarla para intercambiar información entre ellos. Además, encontraremos una carpeta para cada usuario del sistema. En su interior se encuentra toda la información individual del usuario en cuestión. Esta carpeta suele contener diferentes subcarpetas:

    • Búsquedas
    • Contactos
    • Descargas
    • Documentos
    • Escritorio
    • Favoritos
    • Imágenes
    • Juegos guardados
    • Música
    • OneDrive
    • Vídeos
    • Vínculos
  • Cuando un nuevo usuario inicia sesión en el sistema por primera vez, se crea para él una nueva carpeta con su nombre de cuenta y, en su interior, se incluye un nuevo conjunto de subcarpetas como las anteriores.

  • Windows: contiene todos los archivos relacionados con el sistema operativo y los drivers.

Directorios del sistema en Linux

A diferencia de lo que ocurre en Windows, en GNU/Linux, todos los dispositivos de almacenamiento conectados al ordenador se organizan en un mismo árbol de directorios. En él, cada volumen (cada partición) se integra en un punto concreto del árbol. Este lugar lo definirá el administrador del sistema en el momento de la instalación o en cualquier otro momento del futuro.

Normalmente, usamos la palabra montar para referirnos a la acción de vincular el sistema de archivos de un dispositivo (HDD, USB, SSD, …) a un punto concreto del árbol de directorios del sistema de archivos principal.

Como en el caso de Windows, en GNU/Linux, tenemos una serie de variables de entorno que podemos utilizar para obtener información relativa a la instalación del sistema. Por ejemplo, para saber la ruta, o rutas, en las que el sistema busca los archivos ejecutables de forma predeterminada, podemos usar una orden como esta:

echo $PATH

2

Salida del comando anterior

Como en Windows, el comando echo sirve para mostrar el valor de las variables de sistema. En este caso, la variable $PATH, es la que contiene el valor que andamos buscando. Como es lógico, también aquí el valor de esta variable puede cambiar de un ordenador a otro.

Recuerda que, en el los sistemas de la familia Unix, se diferencia entre minúsculas y mayúsculas.

En la siguiente tabla se incluyen algunas de las variables de entorno más frecuentes en sistemas GNU/Linux:

Variables del sistema en Linux Árbol de directorios en LinuxEn cuanto al modo en el que el sistema operativo organiza los datos dentro en el almacenamiento secundario, podemos encontrar una estructura de directorios como la siguiente:

  • bin: Guarda los ejecutables fundamentales para el sistema.

  • boot: Contiene los archivos necesarios para arrancar el sistema (incluye la imagen del núcleo).

  • dev: Incluye los controladores de dispositivos.

  • etc: Guarda los archivos de configuración del sistema.

  • home: Contiene un directorio por cada usuario del sistema. En su interior se encuentra toda la información individual del usuario correspondiente, organizada en las siguientes subcarpetas:

    • Descargas
    • Documentos
    • Escritorio
    • Imágenes
    • Música
    • Plantillas
    • Público
    • snap
    • Vídeos
  • lib: Contiene librerías de uso común para distintos programas (evitan la redundancia de código). Lo mismo ocurre con lib32, lib64 y libx32, pero en este caso las librerías son dependientes de arquitecturas concretas.

  • media: Contiene una subcarpeta por cada dispositivo externo que se haya montado en el sistema. Dentro de esa subcarpeta encontraremos el árbol de directorios del dispositivo correspondiente.

  • sbin: Incluye comandos específicos para la administración.

  • tmp: Lo utilizan los programas para guardar datos que luego serán desechados.

  • root: Es el directorio del usuario administrador, que se mantiene fuera de la carpeta /home para separarlo del resto de usuarios.

  • usr: Guarda programas y recursos organizados en subcarpetas. Estos programas están disponibles para cualquier usuario del sistema. Entre sus carpetas encontramos:

    • /usr/bin: Incluye la mayor parte de los programas disponibles para los usuarios.

    • /usr/share: Incluye información no ejecutable, como imágenes o documentación relativa a los programas

  • var: Almacena información del sistema o de los usuarios que cambia a lo largo del tiempo. Por ejemplo:

    • /var/log: Guarda los archivos de registro (logs) del sistema.

    • /var/spool: Contiene información que espera para ser enviada por e-mail, a una impresora, etc.

Como puedes observar en la imagen de la derecha, aún existen algunos directorios más, que no hemos incluido en la lista anterior, pero creemos que estos son los más importantes.

Actividad 3: Variables de entorno

Realiza las siguientes tareas:

Usando tu máquina virtual con Windows, comprueba el contenido de cada variable de entorno que hemos incluido en el capítulo.

Después, crea una tabla donde aparezcan dos columnas:

  • En la primera se encontrarán las variables.

  • En la segunda deberás incluir una captura de pantalla que muestre el valor arrojado por tu sistema para cada una de ellas.

Repite el ejercicio anterior con las variables de entorno explicadas para Ubuntu.