Por que o diretório unix bin é nomeado dessa maneira?

6

Eu achei que o diretório bin é o lugar para arquivos binários . Se sim, e os arquivos de script? Eles devem ser colocados em outro lugar?

Qual é o histórico do diretório bin e onde devo colocar arquivos de script se o bin significar binário ?

    
por Eonil 11.01.2012 / 16:33

4 respostas

1

Com relação ao significado do diretório /bin , para citar a intro (0) origem da página de manual do snapshot do Unix Research V3 agora disponível no github e em outros lugares:

Commands generally reside in directory /bin____ (for
bin___ary programs).

Este mesmo texto aparece no Manual do programador do Unix (implicitamente a primeira edição), na Introdução , de 1971.

Tanto quanto eu posso dizer que não havia comandos de usuário fornecidos como scripts no início do Unix e não foi até V6 que dois scripts aparecem pela primeira vez em /usr/bin , tempo em que a convenção de pesquisa /bin e /usr/bin para os comandos estavam muito bem estabelecidos e então esse seria o lugar natural para colocá-los - nunca houve necessidade de separá-los dos "binários", e ainda não há.

    
por 14.06.2017 / 00:34
8

Na minha opinião, bin significa algo mais ao longo das linhas de "executável" do que estritamente "binário". (No final, todos os arquivos são binários.) Existem alguns arquivos de script, mesmo em /bin ; no meu sistema Debian, file /bin/* | grep -c 'shell script' diz que existem 19 scripts de shell aqui. Sentado em / usr / bin eu tenho outros scripts de shell 325.

Se o seu script for utilizável como se fosse um aplicativo compilado, basta soltá-lo em um diretório bin apropriado, pois é nesse ponto que as pessoas esperariam encontrá-lo. Se for um script auxiliar simples, talvez seja melhor colocá-lo em um diretório separado, apenas para enfatizar que ele não é realmente um aplicativo próprio.

    
por 11.01.2012 / 16:50
5

Nos tempos anteriores do Unix, o diretório /bin continha apenas arquivos binários compilados. Os scripts chegaram lá mais tarde. Pelo menos da versão 7 que introduziu a convenção #! interpreter , mas provavelmente mais tarde.

    
por 11.01.2012 / 17:31
1

Com relação à razão, por que é assim chamado, e porque não, /exec ou algum outro nome, tudo remonta aos velhos e antigos dias do Unix, onde as pessoas tinham a escolha de escolher nomes muito coxos, como foi usado apenas em estágios de desenvolvimento e não pensou muito que, no futuro próximo, o Unix será uma escolha onipresente para a computação. O Linux, que assumiu o controle e carregava o legado do estilo Unix como OSs (leia implementações no estilo POSIX), também sofreu influência nas áreas de especificações e padrões do sistema de arquivos. No entanto, logo nos tempos de evolução do Linux, à medida que ele recebia ampla aceitação, os padrões específicos do Linux começaram a surgir na imagem. Entre os padrões, o LFHS (Filesystem Hieararchy Standards) do Linux descreve a necessidade de organizar a hierarquia do sistema de arquivos do sistema e os locais de nomes na hierarquia da árvore do sistema de arquivos.

No que diz respeito à hierarquia do sistema de arquivos Linux, a documentação das especificações do projeto FHS está no link

O diretório

/ bin contém vários comandos úteis que são úteis tanto para o administrador do sistema quanto para usuários sem privilégios. Ele geralmente contém shells como bash, csh, etc .... e comandos comumente usados como cp, mv, rm, cat, ls. Por esse motivo e em contraste com / usr / bin, os binários nesse diretório são considerados essenciais. A razão para isso é que ela contém programas essenciais do sistema que devem estar disponíveis mesmo que apenas a partição que contém / esteja montada. Essa situação pode surgir se você precisar reparar outras partições, mas não tiver acesso a diretórios compartilhados (ou seja, você está no modo de usuário único e, portanto, não tem acesso à rede). Também contém programas nos quais os scripts de inicialização podem depender.

Portanto, não é necessário que sejam arquivos binários executáveis (arquivos ELF), mas também scripts executáveis e essenciais para o funcionamento do sistema, que podem entrar no diretório / bin.

Além disso, quero observar aqui que esses padrões estão em vigor, eu acho, há quase 30 anos. Em tempos de rápidas mudanças, as pessoas podem vir com novos padrões que podem remover completamente as notações atuais usadas na hierarquia. Um dos recentes animais on-line desse tipo é objectRoot , que é uma proposta publicada recentemente para reprojetar e remover os inconvenientes da hierarquia. Para mais detalhes: link

    
por 11.01.2012 / 16:53