miércoles, 22 de agosto de 2012

El sistema de archivos: Directorios del sistema

Un sistema GNU/Linux típico tiene miles de directorios. Estos directorios contienen archivos del sistema operativo, aplicaciones, documentación, y muchas otras cosas excepto archivos personales, ya que como vimos en un post anterior, estos últimos son almacenados en nuestro directorio home. 

A menos que seas un Sys Admin, rara vez tendrás contacto con estos directorios, pero no está de más conocer acerca de los mismos. Sus nombres están compuestos de tres partes, las cuales son ámbito, categoría, y aplicación. Aunque estos no son términos estándar, nos ayudarán a entender las cosas. Por ejemplo, el directorio /usr/local/share/emacs, el cual contiene datos locales para el editor de texto Emacs, tiene el ámbito /usr/local (archivos del sistema locales), categoría share (datos de programa y documentación), y aplicación emacs (un editor de texto). 


Las categorías 
Una categoría nos indica el tipo de archivos que encontraremos en un directorio. Por ejemplo, si la categoría en bin, podemos asegurar que dicho directorio contiene binarios. Las categorías más comunes son:
Categorías para los programas
bin       (archivos binarios) 
sbin      (archivos binarios) los que ejecutará el super usurario (root) 
lib       Librerías de código utilizadas por los programas 
libexec   Programas invocados por otros programas, no por los usuarios; son como las librerías de los programas
 
Categorías para la documentación 
doc    Documentación 
info   Archivos de documentación para Emacs 
man    Archivos de documentación o páginas man. Estas son las que el comando man muestra
share  Archivos específicos de programas, como ejemplos e instrucciones de instalación

Categorías para configuración 
etc      Archivos de configuración del sistema
init.d   Archivos de configuración para el arranque 
rc.d     Archivos de configuración para el arranque y los diferentes runlevels 

Categorías para programación 
include  Archivos cabeceras para programación
src      Códigos fuente para programas

Categorías para archivos web
cgi-bin      Scripts/programas que se ejecutan en páginas web 
html         Páginas web
public_html  Páginas web que se encuentran en los directorios home
www         Páginas web 

Categorías para la pantalla 
fonts       Fuentes o tipografías 
X11         Archivos del sistema X window

Categorías para hardware 
dev     Archivos de dispositivos
media   Puntos de montaje para dispositivos de almacenamiento
mnt     Puntos de montaje para dispositivos de almacenamiento
misc    Puntos de montaje para dispositivos de almacenamiento

Categorías para archivos de tiempo de ejecución 
var    Archivos específicos para el sistema actual, creados y actualizados a medida que el sistema está en funcionamiento 
lock   Archivos de bloqueo, por medio de los cuales las aplicaciones dicen “Estoy en funcionamiento”. Estos archivos previenen que otro programa o instancia del mismo programa se ejecute o realice alguna acción
log   Archivos de bitácora que registran eventos importantes, informaciones, advertencias y errores del sistema y las aplicaciones
mail   Buzón para correo entrante
run   Archivos PID, los cuales contienen los IDs de los procesos en ejecución; estos también son consultados para encontrar o matar un proceso en particular
spool  Archivos de cola o en tránsito, como correo saliente, trabajos de impresión y tareas programadas
tmp   Almacenamiento temporal para las aplicaciones y los usuarios
proc   Estado del sistema operativo
Los ámbitos 
El ámbito de una ruta a un directorio, en un alto nivel, es el propósito de una jerarquía de directorios completa. Entre los mismos tenemos:
/   Archivos del sistema por defecto en el sistema GNU/Linux (“root”)
/usr        Más archivos del sistema que vienen en GNU/Linux (“user”) 
/usr/games  Juegos
/usr/local  Archivos del sistema locales, tanto para la organización como para la computadora individual 
/usr/X11R6  Archivos pertenecientes al sistema X window
Para categorías como lib (librerías), un sistema GNU/Linux típico tiene los directorios /lib, /usr/lib, /usr/local/lib, /usr/games/lib, y /usr/X11R6/lib. 

No existe en la práctica una distinción entre / y /usr, pero todos tenemos la percepción de que / es de bajo nivel y más cercana al sistema operativo. Entre tanto, /bin contiene programas fundamentales como like ls y cat, /usr/bin contiene una amplia variedad de programas que vienen por defecto en Linux, y /usr/local/bin contiene programas que como Sys Admin elegimos instalar. Esto no son las reglas meras, pero son los casos más típicos. 

En el último año la estructura ha experimentado cambios en algunas distribuciones como Fedora que han cambiado a /bin y /sbin al directorio /usr y en su lugar han colocado enlaces a los mismos para no perder compatibilidad con la mayoría de aplicaciones. 

Las aplicaciones 
Finalmente, la parte de la aplicación en la ruta de un directorio, si está presente, usualmente es el nombre de un programa. Después del ámbito y la categoría (como en /usr/local/doc), un programa debe tener su propio subdirectorio (/usr/local/doc/miprograma) conteniendo los archivos que este necesita.

No hay comentarios:

Publicar un comentario