Forum Linux.débutant à quoi sert le répertoire /usr

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
6
29
sept.
2018

bonjour à tous,

dans le répertoire root, on voit plusieurs répertoire dont boot, lib, usr …

dans le répertoire lib on peut voir des programmes mais aucune library (.so ou .a) alors que dans /usr on a un répertoire lib qui contient plusieurs library (.so) et des programmes.

je me demande donc quelle est la différence entre les deux ? a premiere vu toutes les library sont dans /usr/lib et non dans /lib ce qui peut paraître bizarre.

Je precise que je suis sous Ubuntu.

Merci d'avance pour votre aide

  • # hiérarchie

    Posté par  . Évalué à 10.

    Bonjour

    Il y a la page man de hierarchy :

    man hier

    ou, si besoin, la même mais traduite en français
    qui est accessible par le lien linux-france.org man -> hier-7.html

  • # un peu d'histoire

    Posté par  . Évalué à 10. Dernière modification le 29 septembre 2018 à 17:24.

    je me demande donc quelle est la différence entre les deux ?

    c'est historique.

    Après quelques recherches sur le web, j'ai retrouvé un article qui m'avait marqué sur le sujet: http://mobile.osnews.com/story.php/25556/Understanding_the_bin_sbin_usr_bin_usr_sbin_Split

    https://blog.w1r3.net/2018/01/06/rob-landley-about-usr-split.html propose une version amendée par l'auteur original, selon les dires de l'auteur de la note. Dans l'absolu, je ne sais pas évaluer la crédibilité, mais je ne vois pas bien quel serait l'intérêt de falsifier une telle mise à jour.

    Pour les non-anglophones, voici un premier jet de traduction de la version amendée présentée dans le second lien:

    --8<--
    Vous savez que Ken Thompson et Dennis Ritchie ont créé Unix sur un PDP-7 en 1969 ? Et bien, vers 1971, ils sont passé à un PDP-11 et une paire de disques durs.

    Quand leur système de fichier racine (root) est devenu trop gros pour tenir sur leur petit (un demi Mo) disque système, ils l'ont laissé déborder dans le pack disque RK-05, plus gros, mais plus lent. Le point de montage s'appelait /usr. parce que c'est dans ce disque que résidaient tous les répertoires home et utilisateurs. Ils ont répliqués tous les répertoires système dans le second disque (/bin, /sbin, /lib, /tmp, …) et enregistrés des fichiers dans ces nouveaux répertoires parce que leur premier disque était plein. Quand ils ont eu un second pack disque RK-05, ils l'ont monté sur /home et ont déplacé tous les répertoires utilisateurs sur ce troisième disque afin que leur OS utilise tout l'espace sur leurs deux premiers disques et croisse jusqu'à 3 Mo.

    Bien sûr, ils ont établi des règles tel que "quand le système démarre, il doit pouvoir s'initialiser suffisamment pour pouvoir monter le second disque sur /usr, donc ne mettez pas des choses telles que la commande mount dans /usr/bin ou nous aurons un problème de l'oeuf et de la poule au démarrage du système". Le fait que leur petit disque système soit beaucoup plus rapide que le RK-05 a joué aussi: déplacer des fichiers de /bin vers /usr/bin avait un impact significatif sur les performances sur ce PDP-11 spécifique. Assez logique et aussi assez spécifique au matériel sur lequel Unix v6 a été développé il y a 40 ans. (NdT: à propos de la séparation /bin /usr/bin je pense)

    La séparation entre /bin et /usr/bin (et toutes les autres) est un artefact de ce détail d'implémentation en 1970, qui a été reproduit pendant des décennies par des bureaucrates qui ne se sont jamais interrogé sur sa légitimité. Cette séparation a cessé d'avoir du sens bien avant la création de Linux, pour de multiples raisons:

    1. les phases initiales du démarrage sont maintenant sous l'égide de initrd et initramfs, qui traitent des problèmes tels que "ce fichier est nécessaire avant celui ci". Nous avons aussi un système temporaire qui démarre le système principal.

    2. les librairies partagées (introduites par les gens de Berkeley) interdisent la mise à jour indépendante de certains portions de /lib et /usr/bin. Ces deux partitions doivent être en concordance ou ça ne fonctionnera pas. Ce n'était pas le cas en 1974. À l'époque, il y avait une certain indépendance parce que tout était lié statiquement.

    3. les disques durs pas chers du commerce ont dépassé les 100 Mo autour de 1990, et les logiciels de repartitionnement sont apparus à peu près à la même époque (partition magic 3.0 distribué en 1997). Bien sûr, cette séparation existante, certains ont inventé des nouvelles règles pour la justifier.

    La racine (root) était pour les trucs système récupérés upstream et /usr pour les fichiers locaux. Ensuite, / était pour les trucs d'AT&T et /usr pour les trucs que ta distro, comme IBM AIX, Dec Ultrix ou SGI Irix, ajoutait, et /usr/local pour les fichiers spécifiques à ton installation. Plus tard, quelqu'un a décidé que /usr/local n'était pas un bon endroit pour installer des nouveaux paquets, donc ajoutons /opt ! Je m'attends encore à ce que /opt/local pointe son nez …

    Bien sûr, depuis 30 ans, suite à cette séparation, d'intéressantes règles spécifiques à des distributions sont venues puis parties, telles que '/tmp est purgé à chaque redémarrage, mais pas /usr/tmp'. Sur Ubuntu, /usr/tmp n'existe pas, et sur Gentoo, /usr/tmp est un lien symbolique vers /var/tmp, que la règle est maintenant de ne pas purger au redémarrage.

    Oui, tout ceci est antérieur à tmpfs. C'est lié à un système de fichier racine en lecture seule. /usr va toujours être en lecture seule dans ce cas, et l'espace en écriture se trouve dans /var. De plus, / est majoritairement en lecture seule, à l'exception de quelque parties de /etc, qu'ils ont essayé de déplacer vers /var, mais lier symboliquement /etc vers /var/etc arrive plus souvent qu'à son tour.

    Les bureaucraties établissant des standards, telles que la Linux Foundation (qui a cannibalisé le Free Standard Group il y a des années dans son disque d'accrétion sans fin) a joyeusement documenté et ajouté ce type de complexité sans jamais essayé de comprendre d'ou ça venait au départ. "Ken et Dennis ont fait fuir leur OS sur l'équivalent de home parce que le disque racine de leur PDP-11 était trop petit" leur a filé au dessus de la tête.

    --

    • [^] # Re: un peu d'histoire

      Posté par  . Évalué à 1.

      Très intéressant, merci.
      Si je puis me permettre : sans jamais essayé -> sans jamais essayer

      • [^] # Re: un peu d'histoire

        Posté par  . Évalué à 2.

        Très intéressant, merci.

        ouaip. J'ai pris un peu de temps pour la trad, ce que je fais rarement, mais je me disais que ça serait bien qu'il y a une version française dispo quelque part. Du coup, j'ai regardé, et il s'avère qu'il y en a déjà une :D

        Si je puis me permettre : sans jamais essayé -> sans jamais essayer

        j'en ai attrapée une poignée avant publication, mais celle là, je l'ai vu trop. Dans la même phrase, il y a aussi un "ou" qui traîne à la place d'un "où".

    • [^] # Re: un peu d'histoire

      Posté par  (site web personnel) . Évalué à 1.

      Et l'histoire ne s'arrête pas là !
      J'ai découverts le projet Fedora Silverblue et sur leur doc on peut lire :

      Filesystem Layout

      The root filesystem has the immutable attribute set on OSTree installations, so /, /usr and everything below it is readonly. /var is where all the runtime state is kept. There are some symlinks that put the state-carrying directories in their traditional, expected place:

      • /home → /var/home

      • /opt → /var/opt

      • /srv → /var/srv

      • /root → /var/roothome

      • /usr/local → /var/usrlocal

      • /mnt→ /var/mnt

      • /tmp → /sysroot/tmp

      and so on. If you have a separate home partition on your system, it should be mounted on /var/home.

      À part le roothome je trouve ça assez logique comme schéma.

      « Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes. »

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.