Por que o System V simboliza tradicionalmente / bin para / usr / bin?

4

Esta página wiki systemd sobre a mescla / usr , sob o Mito # 6, declara que /bin tem sido tradicionalmente um link simbólico para /usr/bin no System V UNIX.

Qual é a motivação para isso? Para compatibilidade com versões anteriores, faz sentido, mas não entendo por que era assim nos primeiros dias. (Ou, entendi mal? As primeiras versões do UNIX distinguiram entre /bin e /usr/bin e o System V mudou isso mesclando-as?)

    
por strugee 02.11.2013 / 18:26

1 resposta

8

As respostas curtas são, sim, foi feito para compatibilidade (muitos programas referenciados /bin/sh e /bin/ed ), e nos primeiros dias /bin e /usr/bin continham conjuntos totalmente desarticulados de arquivos. /bin estava no sistema de arquivos raiz, um pequeno disco que o firmware de inicialização do computador precisava acessar e mantinha os arquivos mais críticos e mais usados. /usr/bin estava em /usr , geralmente um disco maior e totalmente separado. /usr , a princípio, também continha diretórios iniciais dos usuários. Como /usr cresceu, nós periodicamente substituiríamos sua unidade por algo maior. O sistema pode ser executado sem /usr montado, mesmo que não seja tão útil.

O disco (ou partição de disco) de

/usr foi montado depois que o kernel Unix foi inicializado e o sistema estava no meio do processo de inicialização no modo de usuário ( /etc/rc ), portanto programas como sh e mount e fsck tinham que estar no sistema de arquivos raiz, geralmente em /bin e /etc . A Sun havia reorganizado / e /usr para que uma cópia compartilhada de /usr pudesse ser montada como somente leitura em uma rede. /usr/tmp se tornou um link simbólico para /var/tmp . /var estava no sistema de arquivos raiz ou, de preferência, em outra partição.

Eu acredito que foi Sun que decidiu, em um ponto, que não valia heroicamente tentar que um sistema pudesse aparecer se seu /usr fosse descartado. A maioria dos usuários tinha / e /usr no mesmo disco físico - portanto, se ele morresse, os dois sistemas de arquivos eram torrados - ou tinha /usr montado somente leitura de um servidor. Assim, alguns programas críticos usados para inicialização e manutenção do sistema foram compilados estaticamente e colocados em /sbin , mas a maioria dos programas em /bin foi movida para /usr/bin e /bin se tornou um link simbólico para /usr/bin .

O System V anterior ao R4 não tinha sequer links simbólicos. A Sun e a AT & T trabalharam para combinar o SunOS e o SVR3, e isso se tornou o SVR4 (e o Solaris 2). Ele tinha /bin como um link simbólico para /usr/bin .

Então, quando o site diz "No SysV Unix /bin tradicionalmente tem sido um link simbólico para /usr/bin ", eles deveriam ter dito "On System V Release 4 e followons, ...".

    
por 04.11.2013 / 07:03