/ usr /, presumo que seja o usuário do computador.
Fechar.
O Unix começou como um sistema operacional multiusuário, então não é "o usuário", é "os usuários ", no plural.
Antes do lançamento do AT&T Unix System V Versão 4 (SVR4) em 1988, com suas ferramentas de gerenciamento de usuário padronizando a criação de diretórios pessoais /home
, a localização convencional era. /usr
¹ Seu $HOME
diretório pode estar /usr/jfw
em uma caixa do System III .
/usr
também continha, então como agora, /usr/bin
, /usr/lib
, etc. A experiência mostrou que segregar os diretórios home era boa prática de gestão do sistema, assim com a /home
mudança de política em SVR4, deixou para trás tudo o que agora pensar em como pertencendo a /usr
.
/usr
ainda havia um bom motivo para manter o nome: o que foi deixado para trás eram arquivos que não precisavam estar disponíveis até que o sistema fosse inicializado o suficiente para suportar o uso interativo normal. Ou seja, o que foi deixado para trás foram as partes do sistema operacional focadas no usuário . Isso significava que /usr
poderia estar em um volume físico diferente, o que era bom nos dias de 92 MB de unidades de disco rígido do tamanho de máquinas de lavar .
Os primeiros sistemas Unix tiveram o cuidado de manter os arquivos principais do sistema operacional /usr
ausentes, para que você ainda pudesse inicializar no modo de usuário único², mesmo que o /usr
volume fosse desmontável por algum motivo. O volume raiz continha ferramentas suficientes para colocar o /usr
volume novamente online.
Vários tipos de Unix agora desconsideram esse antigo princípio de design, já que até os pequenos sistemas embarcados têm espaço suficiente para os arquivos de volume raiz tradicionais e todos /usr
em um único volume.³ Red Hat Enterprise Linux, Solaris e Cygwin fazem uma ligação simbólica /bin
para /usr/bin
e /lib
para /usr/lib
que não haja mais qualquer diferença entre esses diretórios.
... / local / ... obviamente significa o computador local ...
Sim. Refere-se ao fato de que os arquivos abaixo /usr/local
devem ser específicos para esse sistema único. Arquivos que são genéricos de qualquer maneira devem estar em outro lugar.
Isso também tem raízes na maneira como os sistemas Unix eram comumente usados décadas atrás, quando tudo isso era padronizado. Novamente, os discos rígidos da época eram volumosos, muito caros e pouco armazenados pelos padrões de hoje. Para economizar dinheiro e espaço em discos, um laboratório de computação cheio de caixas Unix costumava compartilhar a maior parte do /usr
NFS ou algum outro protocolo de compartilhamento de arquivos de rede, de modo que cada caixa não precisava ter sua própria cópia redundante. caixa iria para baixo /usr/local
, o que seria um volume separado de /usr
.
Essa herança histórica é o motivo pelo qual ainda é o padrão para a maioria dos softwares Unix de terceiros instalarem /usr/local
quando instalados manualmente. A maioria desses softwares permite que você instale o pacote em outro lugar, mas ao fazer a não escolha, você obtém o padrão seguro, que não interfere em outros locais de instalação comuns com propósitos mais específicos.
Existem boas razões para instalar o software em outro lugar. A equipe do macOS da Apple faz isso quando cria, digamos, a bash
partir do código-fonte GNU Bash . Eles usam /
como prefixo de instalação, substituindo o /usr/local
padrão, para que o Bash termine /bin
.
Outro exemplo é o modo como os sistemas Linux mais antigos segregaram seu software de GUI /usr/X11R6
, para mantê-lo separado da linha de comando tradicional e do curses
software baseado em. Isso foi feito simplesmente substituindo o /usr/local
prefixo padrão por /usr/X11R6
.⁵
E o que é / bin?
É a abreviação de "binário", que neste contexto significa "um arquivo que não é texto simples". Muitos desses arquivos são executáveis em uma caixa Unix, portanto esses dois termos se tornaram sinônimos em alguns círculos. ("Por favor, crie um binário para o RHEL 7, Fred.")
Arquivos de texto em uma caixa de Unix viver em outro lugar: /etc
, /usr/include
, /usr/share
, etc.
Era uma vez, mesmo os scripts de shell - que são arquivos de texto sem formatação - eram mantidos fora dos bin
diretórios, mas essa linha também ficou embaçada. Hoje, os bin
diretórios normalmente contêm qualquer tipo de arquivo executável, estritamente "binário" ou não.⁶
Notas de rodapé e digressões :
A natureza primitiva das ferramentas de gerenciamento de usuários anteriores ao SVR4 significava que o HOME=/usr/$NAME
esquema era meramente documentado como uma convenção, e não imposto por ferramentas de software como padrão.
Você pode ver isso na página 4-8 do " Guia do Administrador do Sistema da AT&T Unix System V Versão 3.2 : aqui você vê a AT&T recomendando o /usr/$NAME
esquema antigo na última versão principal do Unix antes da saída do SVR4.
Nos sistemas Unix mais antigos, era bastante comum os administradores de sistemas escolherem um esquema diferente que fazia mais sentido para eles. Pessoas sendo pessoas, isso significava que muitos esquemas diferentes foram inventados.
Um esquema que me deparei antes /home/$NAME
se tornou o padrão /u/$NAME
.
Outro sistema que eu usei no início de 1990 tinha tantos usuários que eles não poderiam caber todos os diretórios home em um único volume físico, por isso, eles usaram um esquema como /u1/$NAME
, /u2/$NAME
e assim por diante, se bem me lembro. Em qual disco o diretório inicial foi encerrado era simplesmente uma questão de qual deles tinha espaço no momento em que sua conta foi criada.
Você pode inicializar uma caixa do macOS no modo de usuário único mantendo pressionada Cmd-Senquanto é inicializada. Solte quando a tela ficar preta e você vir um texto em cinza claro. É como rodar no Terminal, mas ocupa toda a tela porque a GUI ainda não foi iniciada.
Cuidado, você está correndo como root
.
Digite "exit" no prompt raiz de usuário único para sair do modo de usuário único e continuar a inicialização no modo de GUI para vários usuários.
Os sistemas operacionais Unixy que ainda parecem manter arquivos críticos do modo de usuário único fora de casa /usr
podem não o fazer atualmente. Uma vez tornei uma caixa do FreeBSD 9 impossível de inicializar, movendo-me /usr
para um volume ZFS. Eu esqueci que os recursos do ZFS-on-root não chegaram até o FreeBSD 10, criando um Catch 22 : o sistema operacional precisava de arquivos /usr
para montar /usr
!
Isso já era ruim o suficiente, mas se o FreeBSD 9 ainda mantivesse suas coisas de inicialização de usuário único /usr
, eu poderia ter corrigido isso. Como ele não inicializava nem no modo de usuário único por /usr
ser desmontável, claramente essa tradição havia sido violada de alguma forma. Eu tive que inicializar a partir de um CD de resgate para recuperar o sistema novamente.
Também é aqui que chegamos /usr/share
: ele segrega arquivos que podem ser compartilhados mesmo entre caixas Unix com diferentes tipos de processadores. Normalmente, arquivos de texto: páginas de manual, dicionário, etc.
"X11R6" se refere à versão do X Window System subjacente às GUIs do Linux no momento em que essa convenção era predominante. Os sistemas Linux geralmente paravam de segregar o software da GUI na época em que o X11R6 foi substituído pelo X.Org .
Os sistemas Unix originais mantinham seus scripts de shell principais /etc
para evitar misturá-los com os verdadeiros binários /bin
.