5.1 Requerimientos
/bin no puede contener subdirectorios, los siguientes comandos binarios o links a los mismos DEBEN encontrarse en /bin:
- cat
- chgrp
- chmod
- chown
- cp
- date
- dd
- df
- dmesg
- echo
- false
- hostname
- kill
- ln
- login
- l s
- mkdir
- mknod
- more
- mount
- mv
- ps
- pwd
- rm
- rmdir
- sed
- sh (no la real, un link)
- stty
- su
- sync< item>true
- umount
- uname
5.2 Opciones específicas
Pueden existir y en tal caso deben estar en bin (pueden ser links)
- csh
- ed
- tar
- cpio
- gzip
- gunzip
- zcat
- netstat
- ping
6. /boot
Contiene datos asociados a la tarea de arrancar el sistema, tienen el caracter de `estaticos` y son operados por el gestor de arranque (lilo, grub, etc) cabe hacer notar que el `map installer` y los archivos de configuración del arranque NO pueden estar en /boot 6.1 Opciones específicas
El kernel del sistema operativo DEBE estar en / o en /boot
7. /dev
Archivos de dispositivo, como bien haz de saber unix fue diseñado con una serie de ideas explícitas en mente, una de las cuales imponia : “todo es un archivo”, es en /dev donde reside un gran numero de archivos que representan dispositivos de hardware. 7.1 Opciones específicas
Es posible que los descriptores de dispositivo de /dev deban ser creados manualmente, en ese caso, debe existir un comando llamado MAKEDEV en este mismo directorio, que sea capaz de crearlos en caso de ser requeridos. (puede existir tb un MAKEDEV.local, para cualquier dispositivo local)
8. /etc
Aqui residen los archivos de configuración del sistema, son usados por el administrador y/o otros programas para almacenar y leer datos que alteran de una u otra forma su funcionamiento.
8.1 Requerimientos
No pueden existir binarios en /etc
Se requiere la existencia de el directorio /etc/opt para los datos de configuracion de /opt
8.2 Opciones especificas
En caso de estar instalados los subsistemas asociados, los siguientes directorios DEBEN residir en /etc
Los siguientes archivos deben resisdir en /etc en caso de estar instalados los subsistemas asociados, todos opcionales.
- csh.login
- exports
- fstab
- ftpusers
- gateways
- gettydefs
- group
- host.conf
- hosts
- hosts.allow
- hosts.deny
- hosts.equiv
- hosts.lpd
- inetd.conf
- inittab
- issue
- ld.so.conf
- motd
- mtab
- mtools.conf
- networks
- passwd
- printcap
- profile
- protocols
- resolv.conf
- rpc
- securetty
- services
- shells
- syslog.conf
9. /lib
Contiene librerias esenciales para ejecutar los binarios de /bin y /sbin , contiene también, en caso de existir, los modulos del kernel
9.1 Requerimientos
Por lo menos uno de cada uno de los siguientes archivos o link a los mismos debe existir.
10. /mnt
Puntos de montaje temporal para otros sistemas de archivos
11. /opt
Contiene paquetes de software opcional
12. /sbin
Contiene binarios de sistema esenciales para el funcionamiento del mismo, un ejemplo son los comandos insmod y rmmod que sirven para instalar y remover modulos en el kernel respectivamente.
12.1 Requerimientos
shutdown DEBE existir y residir en /sbin
12.2 Opciones específicas
Los siguientes archivos deben residir en sbin en caso de que sus respectivos subsistemas se encuentren instalados.
- fastboot
- fasthalt
- fdisk
- fsck
- fsck.*
- getty
- halt
- ifconfig
- init
- mkfs
- mkfs.*
- mkswap
- reboot
- route
- swapon
- swapoff
- update
13. /tmp
Contiene archivos temporales, creados por programas o usuarios mientras realizan otras funciones.
14. /usr
Esta jerarquia es la segunda en importancia y en nivel de complejidad, contiene datos `compartibles` y de solo lectura, los paquetes de software muy grandes no deben usar un subdirectorio directamente sobre /usr (como parecen creer algunos malos programadores/empaquetadores)
14.1 Requerimientos
Los siguientes directorios o links a los mismos deben existir y residir en /usr.
- bin
- include
- lib
- local
- sbin
- share
14.2 Opciones Especificas
Los siguientes directorios pueden existir y DEBEN residir en /usr en caso de estar instalados sus subsistemas asociados:
- X11R6 (contiene su propia jerarquia, no discutida en este documento)
- games
- lib
- src
14.3 Opciones para compatibilidad
Los siguientes enlaces simbólicos pueden existir para guardar la compatibilidad con sistemas mas antiguos, hasta que todos aprendan a usar /var
- /usr/spool ? /var/spool
- /usr/tmp ? /var/tmp
- /usr/spool/locks ? /var/lock
14.4 Opciones específicas para /usr/bin
/usr/bin contiene binarios que no son necesarios cuando el sitema esta operando en modo `monousario` (single user mode), los siguientes directorios o links a los mismos pueden existir y DEBEN residir en /usr/bin si sus subsistemas correspondientes se encuentran instalados.
- mh (comandos para el sistema manejador de mails)
- /usr/bin/X11
Debe ser un link a /usr/X11R6/bin en caso de que este ultimo este instalado
Los siguientes archivos o links a los mismos pueden existir y en ese caso DEBEN residir en /usr/bin si sus correspondientes subsistemas se encuentran instalados
- perl
- python
- tclsh
- wish
- expect
14.5 La jeraquía /usr/local
La jerarquia /usr/local debe ser usada por el administrador de sistemas cuando instala software localmente, debe estar protegida de manera que no sea afectada por upgrades al software de sistema, puede ser usada para compartir programas y/o datos con otros host. Requerimientos
Los siguientes directorios o links a los mismos deben encontrarse en /usr/local.
- bin
- games
- include
- lib
- man
- sbin
- share
- src
Opciones específicas
en caso de existir /usr/lib y/o /lib sus equivalentes deben existir también en /usr/local
14.6 /usr/sbin
Aqui deben estar los binarios no esenciales que solo usará el administrador de sistemas /usr/share
Destinado a almacenar datos que son independientes de la arquitectura del host (ojo, solo lectura), diseñado de manera de ser compartido con otros
host de la red en caso de existir esta necesidad y/o posibilidad.
Se recomienda que cualquier programa que necesite guardar datos que no son modificables, lo haga bajo subdirectorios de /usr/share (o en /usr/local/share si esta instalado localmente).
Los datos de juegos y/o programas educacionales en /usr/share/games deben ser datos estáticos, para cualquier otro tipo (puntuaciones, etapas, etc ) se debe usar /var/games Requerimientos
Los siguientes directorios o links a los mismos deben encontrarse en /usr/sh are
Opciones específicas
Los siguientes directorios pueden existir y DEBEN residir en /usr/share en c aso que sus subsistemas especificos se encuentren instalados
- dict
- docs
- games
- info
- locale
- nls
- sgml
- terminfo
- tmac
- zoneinfo
15. /var
Contiene solo datos de caracter variable, en esta categoría estan especialmente incluidos los archivos y directorios de `spooling` (mail, impresi on) y los archivos y directorios de `logging` (mensajes del kernel, mensajes de los
servidores, etc)
La naturaleza de algunos archivos y directorios de var los hacen `no compartibles`, por ejemplo.
- /var/lock
- /var/log
- /var/run
Otros pueden ser perfectamente compartidos; por nombrar algunos:
- /var/mail
- /var/cache/man
- /var/cache/fonts
- /var/spool/news
Se recomienda a las aplicaciones no crear directorios directamente sobre /var, una posible excepción a esta regla podrian constituirla los archivos que tienen implicaciones para todo el sistema (seguiría siendo en todo caso, una violación a los estandares de no existir previa consulta y acuerdo con las listas de correo del FHS)
15.1 Requerimientos
Los siguientes directorios o links a los mismos deben existir en /var
- cache
- lib
- local
- lock
- log
- opt
- run
- spool
- tmp
Se debe hacer notar que en /var existen directorios `reservados` que no deben ser usados por ninguna nueva aplicación pues generaría prob lemas con programas `historicos` o de practica local, estos son:
- backups
- cron
- msgs
- preserve
A la fecha de publicación de esta version del standard (Mayo del 2001) los `system crash dumps`) no estaban soportados en Linux /var/lib contiene datos que son modificados directamente p or los programas mientras estos se ejecutan
15.2 Opciones específicas
Los siguientes directorios o links a los mismos pueden existir y DEBEN residir en /var siempre que sus subsistemas correspondientes se encuentren instalados:
- account
- crash
- games
- mail
- yp
16. Opcionales
Los siguientes deben estar presentes en un sistema solo si la orientació n del mismo lo requiere provisto que cada uno contenga o apunte a una dirección que contenga los datos asociados a los mismos
16.1 /root
Directorio `home` para el administrador del sistema.
16.2 /home
Debe contener los directorios home de los usuarios normales del sistema
16.3 /lib
Formato alternativo para librerias compartidas esenciales, en sistemas que soporten mas de un formato de binarios, requiriendo por ende, librerias separadas.
17. Recomendaciones especificas para GNU/Linux
El estandar discutido en este breve documento es aplicable a toda la gama de sistemas basados en unix actualmente en desarrollo, pues bien a pesar de ser GNU/Linux uno de los más populares, no es el único y el estandar necesita adaptar algunas de sus reglas para satisfacer a cada una de las variantes significativas, he aqui entonces las excepciones aplicables a GNU/Linux.
17.1 directorio raiz (/)
El estandar recomienda a los usarios y desarrolladores que, de existir un kernel en el directorio raiz, este tome alguno de estos dos nombres:
Estos nombres estan siendo actualmente utilizados en los paquetes fuentes del kernels mas recientes.
17.2 /bin binarios de los comandos de uso esencial
Los sistemas GNU/Linux que lo requieran, deben poner el programa (comando, bina rio) `setserial` en este directorio.
17.3 /dev Archivos de dispositivo
todos los archivos de dispositivo y archivos especiales de /dev deben, en un sistema GNU/Linux, complir con lo establecido en el documento, “Linux Allocated Devices” (Linux, dispositivos reservados), mantenido por H. Peter Anvin esta simple regla también es aplicable a los enlac es simbólicos que puedan residir en este directorio.
17.4 /etc Archivos de configuracion del host
Se permite a los sistemas GNU/Linux que lo requieran, ubicar en esta carpeta al archivo de configuración del gestor de arranque `lilo.conf` (lilo)
17.5 /proc Sistema de archivos virtual de información de procesos y el kernel
El sistema de archivos /proc es la ubicación estandar de la información del sistema y los procesos en ejecución en GNU/Linux, se recomienda su uso a desarrolladores y usarios por sobre /proc/kmem y otros métodos.
17.6 /sbin Binarios `esenciales` de sistema
Los sistemas GNU/Linux que lo requieran pueden ubicar los siguientes binarios extras en este directorio.