Diferencia entre bin, sbin, usr/bin, usr/sbin

El 30 de noviembre de 2010, David Collier escribió:

Me di cuenta de que en busybox los enlaces se dividen en estos cuatro directorios.
¿Existe alguna regla simple para determinar en qué directorio cuál de los enlaces debe estar ...
Por ejemplo, kill está en /bin y killall está en /usr/bin... No veo ninguna lógica en esta división.

Probablemente sepa que Ken Thompson y Dennis Ritchie crearon Unix en el PDP-7 en 1969. Entonces, alrededor de 1971, actualizaron a un PDP-11 con un par de discos RK05 (1,5 megabytes cada uno).

Cuando el sistema operativo creció y ya no cabía en el primer disco (en el que se encontraba el FS raíz), trasladaron una parte al segundo, donde se ubicaron los directorios de inicio (por lo tanto, el punto de montaje se llamó /usr, de la palabra usuario). Duplicaron allí todos los directorios necesarios del sistema operativo (/bin, /sbin, /lib, /tmp...) y colocaron los archivos en un disco nuevo, porque el anterior se quedó sin espacio. Luego tenían un tercer disco, lo montaron en el directorio /home y movieron los directorios de inicio de los usuarios allí para que el sistema operativo pudiera tomar todo el espacio restante en dos discos, y estos fueron hasta tres megabytes (¡Guau!).

Por supuesto, tenían que establecer la regla de que "cuando el sistema operativo arranca, debe poder montar un segundo disco en /usr, así que no coloque programas como mount en el segundo disco en /usr o tendrá un problema del huevo y la gallina". Es así de simple. Y eso fue en Unix V6 hace 35 años.

La división de /bin y /usr/bin (y todos esos directorios) es un legado de esos eventos, un detalle de implementación de los años 70 que los burócratas han copiado durante décadas. nunca hicieron la pregunta por quéSimplemente lo hicieron. Esta división dejó de tener sentido incluso antes. Linux Fue creado por varias razones:

  1. Al arrancar, se usa un initrd o initramfs, que soluciona problemas como "necesitamos este archivo antes que ese". Así, tenemos ya tengo sistema de archivos temporal que se utiliza para cargar todo lo demás.
  2. Las bibliotecas compartidas (que fueron añadidas a Unix por los chicos de Berkley) no le permiten cambiar el contenido de /lib y /usr/lib de forma independiente. Estas dos partes deben coincidir o no funcionarán. Esto no sucedió en 1974 porque tenían cierta independencia en ese entonces debido a la vinculación estática.
  3. Los discos duros baratos rompieron la barrera de los 100 megabytes alrededor de 1990 y, casi al mismo tiempo, apareció el software de cambio de tamaño de partición (partition magic 3.0 salió en 1997).

Por supuesto, dado que hay una división, algunas personas han ideado reglas que la justifican. Por ejemplo, la partición raíz es necesaria para todo tipo de funciones generales del sistema operativo, y debe colocar sus archivos locales en /usr. O ingrese / qué distribuye AT&T, y en /usr qué agregó su distribución, IBM AIX, Dec Ultrix o SGI Irix, y /usr/local contiene archivos específicos para su sistema. Y luego alguien decidió que /usr/local no era el lugar adecuado para instalar un nuevo software, ¡así que agreguemos /opt! No me sorprendería si /opt/local también aparece...

Por supuesto, en los últimos 30 años, esta división ha llevado a la aparición y desaparición de todo tipo de reglas interesantes y específicas de cada distribución. Por ejemplo, "/tmp se borra al reiniciar, pero /usr/tmp no". (Y en Ubuntu En principio, /usr/tmp no existe, y en Gentoo, /usr/tmp es un enlace simbólico a /var/tmp, que ahora está sujeto a la misma regla y no se borra al reiniciar. Sí, todo esto era antes de tmpfs. También sucede que el sistema de archivos raíz es de solo lectura, en cuyo caso tampoco se debe escribir nada en /usr, sino en /var. O en /. básicamente no se puede escribir excepto en /etc, que a veces se intentó mover a /var ...)

Burócratas como Linux La Fundación (que absorbió al Grupo de Estándares Libres durante su expansión hace años) documenta y complica estas reglas sin siquiera intentar comprender su origen. No tienen ni idea de que Ken y Dennis simplemente trasladaron parte del sistema operativo a su directorio personal porque el disco RK05 del PDP-11 era demasiado pequeño.

Estoy bastante seguro de que busybox simplemente coloca los archivos de la misma manera que lo ha hecho históricamente. No hay ninguna razón real para hacerlo hasta ahora. Personalmente, solo hago que /bin, /sbin y /lib se vinculen a directorios similares en /usr. Después de todo, las personas que trabajan con software integrado intentan comprender y simplificar...

Fuente: habr.com

Compre alojamiento confiable para sitios con protección DDoS, servidores VPS VDS 🔥 Compra alojamiento web fiable con protección DDoS, servidores VPS VDS | ProHoster