Sistema de archivos

La mayoría de los sistema Un*x tienen una distribución estándar de ficheros, de esta forma los recursos que el sistema posee y los archivos, serán fácilmente localizados. Esta distribución forma el árbol de directorios, el cual comienza con /, también conocido como directorio raíz. Directamente por debajo de este hay algunos subdirectorios muy importantes para el sistema: Estos son /bin, /etc, /dev y /usr, entre otros. Estos a su vez contienen otros directorios con archivos de configuración del sistema, programas, etc. Cada usuario posee un directorio en el /home que como vimos anteriormente y usualmente tienen el nombre del usuario que es su dueño. En algunas distribuciones puede ser encontrado en /usr/home.

Veremos los directorios que se muestran en este árbol

/___bin
|___dev
|___etc
|     |___X11
|     |___httpd
|     |___mail
|     |___ppp
|     |___sysconfig
|___sbin
|___home
|         |___shrek
|         |___fiona
|         |___burro
|___lib
|___proc
|___tmp
|___usr
|     |___bin
|     |___local
|     |___X11R6
|     |___etc
|     |___include
|     |___lib
|     |___man
|     |___src
|___var
|     |___admin
|     |___spool
|     |___run
|     |___log

/bin

bin es la abreviación de binaries, o ejecutables. Es donde residen la mayoría de los programas esenciales del sistema. Use la orden ls -F /bin para listar los ficheros. Podrá ver algunas órdenes que reconocerá, como cp, ls y mv. Estos son los programas para estas órdenes. Cuando usa la orden cp está ejecutando el programa /bin/cp. Usando ls -F se verá que la mayoría (si no todos) los ficheros de /bin tienen un asterisco añadido al final de sus nombres. Esto indica que son ficheros ejecutables.

/dev

El siguiente es /dev. Veamos de nuevo con ls -F. Los archivos en /dev son conocidos como controladores de dispositivo (device drivers) son usados para acceder a los dispositivos del sistema y recursos, como discos duros, modems, memoria, etc. Por ejemplo, de la misma forma que puede leer datos de un fichero, puede leerla desde la entrada del ratón leyendo /dev/mouse. Los ficheros que comienzan su nombre con fd son controladores de disqueteras. fd0: es la primera disquetera, fd1 la segunda. Ahora, alguien astuto se dará cuenta de que hay más controladores de dispositivo para disqueteras de los que hemos mencionado. Estos representan tipos específicos de discos. Por ejemplo, fd1H1440 accederá a discos de 3.5" de alta densidad en la disquetera 1. Aquí tenemos una lista de algunos de los controladores de dispositivo más usados. Nótese que incluso aunque puede que no tenga alguno de los dispositivos listados, tendrá entradas en dev de cualquier forma.

  • /dev/console hace referencia a la consola del sistema, es decir, al monitor conectado directamente a su sistema.

  • Los dispositivos /dev/ttyS* y /dev/cua* son usados para acceder a los puertos serie. Por ejemplo, /dev/ttyS0 hace referencia a "COM1" bajo MS-DOS. Los dispositivos /dev/cua son "callout", los cuales son usados en conjunción con un modem.

  • Los nombres de dispositivo que comienzan por hd acceden a discos duros. /dev/hda hace referencia a la totalidad del primer disco duro, mientras que /dev/hda1 hace referencia a la primera partición en /dev/hda.

  • Los nombres de dispositivo que comienzan con sd son dispositivos SCSI. Si tiene un disco duro SCSI, en lugar de acceder a él mediante /dev/hda, deberá acceder a /dev/sda. Las cintas SCSI son accedidas vía dispositivos st y los CD-ROM SCSI vía sr.

  • Los nombres que comienzan por lp acceden a los puertos paralelo. /dev/lp0 hace referencia a "LPT1" en el mundo MS-DOS.

  • /dev/null es usado como "agujero negro", cualquier dato enviado a este dispositivo desaparece. ¿Para qué puede ser útil esto? Bien, si desea suprimir la salida por pantalla de una orden, podría enviar la salida a /dev/null. Hablaremos más sobre esto después.

  • Los nombres que comienzan por /dev/tty[0-9]* hacen referencia a "consolas_virtuales" de su sistema (accesibles mediante las teclas Alt-F1, Alt-F2, etc). /dev/tty1 hace referencia a la primera VC, /dev/tty2 a la segunda, etc.

  • Los nombres de dispositivo que comienzan con /dev/pty* son "pseudo-terminales". Estos son usados para proporcionar un "terminal" a sesiones remotas. Por ejemplo, si su máquina está en una red, telnet de entrada usará uno de los dispositivos /dev/pty.

/etc

contiene una serie de ficheros de configuración del sistema. Estos incluyen /etc/passwd (la base de datos de usuarios), /etc/rc (guiones de inicialización del sistema), etc.

/sbin

se usa para almacenar programas esenciales del sistema, que usará el administrador del sistema.

/home

contiene los directorios "home" de los usuarios. Por ejemplo, /home/shrek es el directorio del usuario shrek. En un sistema recién instalado, no habrá ningún usuario en este directorio.

/lib

contiene las imágenes de las librerías compartidas. Estos ficheros contienen código que compartirán muchos programas. En lugar de que cada programa contenga una copia propia de las rutinas compartidas, estas son guardadas en un lugar común, en /lib. Esto hace que los programas ejecutables sean menores y reduce el espacio usado en disco.

/proc

es un "sistema de ficheros virtual". Los ficheros que contiene realmente residen en memoria, no en un disco. Hacen referencia a varios procesos que corren en el sistema, y le permiten obtener información acerca de que programas y procesos están corriendo en un momento dado.

/tmp

Muchos programas tienen la necesidad de generar cierta información temporal y guardarla en un fichero temporal. El lugar habitual para esos ficheros es en /tmp.

/usr

es un directorio muy importante. Contienen una serie de subdirectorios que contienen a su vez algunos de los más importantes y útiles programas y ficheros de configuración usados en el sistema.

Los directorios descritos arriba son esenciales para que el sistema esté operativo, pero la mayoría de las cosas que se encuentran en /usr son opcionales para el sistema. De cualquier forma, son estas cosas opcionales las que hacen que el sistema sea útil e interesante. Sin /usr, tendría un sistema aburrido, solo con programas como cp y ls. /usr contiene la mayoría de los paquetes grandes de programas y sus ficheros de configuración.

/usr/X11R6

contiene el sistema XWindow si se ha instalado. El sistema X Window es un entorno gráfico grande y potente el cual proporciona un gran número de utilidades y programas gráficos, mostrados en "ventanas" en su pantalla. Si está familiarizado con los entornos Microsoft Windows o Macintosh, XWindow le será muy familiar. Este directorio contiene todos los ejecutables de XWindow, ficheros de configuración y de soporte. Esto será cubierto con más detalle en la Sección 9.

/usr/bin

es el almacén real de programas del sistema Un*x. Contiene la mayoría de los programas que no se encuentran en otras partes como /bin.

/usr/etc

Como /etc contiene diferentes ficheros de configuración y programas del sistema, /usr/etc contiene incluso más que el anterior. En general, los ficheros que se encuentran aquí no son esenciales para el sistema, a diferencia de los que se encuentran en /etc, que si lo son.

/usr/include

contiene los ficheros de cabacera para el compilador de C. Estos ficheros (la mayoría de los cuales terminan en .h, de "header") declaran estructuras de datos, subrutinas y constantes usados en la escritura de programas en C. Los ficheros que se encuentran en /usr/include/sys son generalmente usados en la programación de en Un*x a nivel de sistema. Si se está familiarizado con el lenguaje de programación C, aquí encontrarán los ficheros de cabecera , como por ejemplo stdio.h, el cual declara funciones como printf().

/usr/lib

contiene las librerías equivalentes "stub" y "static" a los ficheros encontrados en /lib. Al compilar un programa, este es "enlazado" con las librerías que se encuentran en aquí, las cuales dirigen al programa a buscar en /lib cuando necesita el código de la librería. Además, varios programas guardan ficheros de configuración en /usr/lib.

/usr/local

es muy parecido a /usr contiene programas y ficheros no esenciales para el sistema, pero que hacen el sistema más divertido y excitante. En general, los programas que se encuentran en /usr/local son específicos de su sistema esto es, el directorio /usr/local difiere bastante entre sistemas Un*x. Aquí encontrará programas grandes como TeX (sistema de formateo de documentos) y Emacs (gran y potente editor), si se los instala.

/usr/man

Este directorio contiene las páginas de manual. Hay dos subdirectorios para cada página "sección" de las páginas (use la orden man man para más detalles). Por ejemplo, /usr/man/man1 contiene los fuentes (es decir, los originales por formatear) de las páginas de manual de la sección 1, y /usr/man/cat1 las páginas ya formateadas de la sección 1.

/usr/src

contiene el código fuente (programas por compilar) de varios programas de su sistema. El más importante es /usr/src/linux, el cual contiene el código fuente del Núcleo de Linux.

/var

contiene directorios que a menudo cambian su tamaño o tienden a crecer. Muchos de estos directorios solían residir en /usr, pero desde que estamos tratando de dejarlo relativamente inalterable, los directorios que cambian a menudo han sido llevados a /var. Algunos de estos directorios son:

/var/log

contiene varios ficheros de interés para el administrador del sistema, específicamente históricos del sistema, los cuales recogen errores o problemas con el sistema. Otros ficheros guardan las sesiones de presentación en el sistema, así como los intentos fallidos.

/var/spool

contiene ficheros van a ser pasados a otro programa. Por ejemplo, si su máquina está conectada a una red, el correo de llegada será almacenado en /var/spool/mail hasta que lo lea o lo borre. Artículos nuevos de las "news" tanto salientes como entrantes pueden encontrarse en /var/spool/news, etc.

/var/mail

En algunas distribuciones como la RedHat, es donde se guardaran los emails que nos lleguen y mandemos.