Se eu fosse instalar um sistema de arquivos físico em uma máquina Linux, por que deveria montar esse sistema de arquivos em um local personalizado? Por que não ter o sistema de arquivos localizado no caminho do dispositivo? "/dev/...."
relate perguntas
-
Qual sistema de arquivos devo usar em um cartão SD em um NAS?
-
Como saber antecipadamente se um .zip tem um diretório pai dentro
-
Disco alocado dinamicamente do Virtualbox *.vdi continua crescendo
-
du/df e ls relatando diferentes usos de disco
-
Como os desenvolvedores do kernel Linux lidam com seu trabalho com milhões de linhas de código? É um método? [fechado]
Eu não acho que seria desejável fazer isso. O resultado seria que todos os softwares precisariam estar de alguma forma cientes dos dispositivos que você conectou.
Se você der uma olhada em como o MS Windows faz isso (com letras de unidade), os layouts são limitados pelas variáveis de ambiente , como
%HOMEPATH%
. Se você tiver muita música em outro disco rígido, não há como informar ao seu software queE:
é a pasta de música de um usuário.Em sistemas *nix este problema não existe. Se você quiser sua música em outro HD, basta adicionar uma entrada
/etc/fstab
para montá-la/home/me/Music
e o software nunca precisará ser informado sobre a mudança.Além disso, os nomes abaixo
/dev
não são realmente estáveis. Por exemplo, você pode conectar um disco rígido USB antes de inicializar e há uma chance de que ele seja atribuído/dev/sda
em vez de sua unidade interna. Isso tornaria muito difícil configurar qualquer coisa, pois você não poderia garantir quais nomes foram atribuídos.Na verdade, faz muito mais sentido organizar seu sistema de arquivos com base no agrupamento de tipos semelhantes de coisas e em vez de se preocupar demais com o local onde elas estão armazenadas.
O padrão de hierarquia do sistema de arquivos agrupa as coisas parcialmente com base nos requisitos. Isso permite alguns truques muito úteis, como colocar o todo
/usr
em um sistema de arquivos de rede somente leitura ( NFS ) enquanto mantém a configuração para cada máquina separada no arquivo gravável/etc
.Ele permite que os administradores de sistema tomem decisões sobre o que deve ser armazenado onde, enquanto os usuários e o software geralmente não precisam saber disso e não desejam rastreá-lo.
Vale a pena notar que, mesmo no Windows (pelo menos no Windows Server), a mesma técnica é possível e as unidades podem ser montadas em qualquer outro lugar do sistema de arquivos.
O Linux mantém todos os dispositivos como arquivos em alguns diretórios especiais como
/dev
ou/sys
. Assim/dev
é um lugar para dispositivos. Eles são vistos no sistema de/
arquivos como arquivos normais, mas na verdade não são. Os drivers do kernel traduzem a operação de arquivos em dispositivos para comandos físicos enviados via barramento.Por exemplo, você pode ver um conteúdo bruto do seu disco usando o seguinte comando:
Mas você verá apenas 32kb de dados brutos que não são interpretados de forma alguma (na verdade, eles contêm metadados do sistema de arquivos, às vezes incluídos nas instruções de inicialização como o sistema de arquivos FAT). Ao montar esse arquivo (dispositivo), você obtém acesso para ver seu dispositivo como uma estrutura de sistema de arquivos que é colocada no ponto de montagem. Assim, a montagem altera o significado dos dados brutos em uma coleção organizada acessível por diretórios e arquivos.
É uma convenção descrita no Filesystem Hierarchy Standard (FHS), uma referência que descreve as convenções, usadas para o layout de um sistema UNIX.
Consulte https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard e https://refspecs.linuxfoundation.org/fhs.shtml
No unix tudo é arquivo, isso significa que em /dev você encontra arquivos de dispositivos, com sinalizador de bloco especial.
No unix, o dispositivo pode ser montado em qualquer lugar na hierarquia do sistema de arquivos.
Por convenção, você montaria os vários dispositivos em /mnt, isso mudou para /media para dispositivos temporários.
Você pode encontrar o ponto de montagem udisks2 em /run/media/$USER enquanto era /media para udisks. Kde e Gnome usam esta convenção.
Ao anexar um dispositivo a um ponto de montagem, você registra no kernel uma relação bidirecional, onde cada ação sob o ponto de montagem será refletida no dispositivo bruto e vice-versa.
Na verdade, o Windows faz isso, mas esconde isso, você tem um \Device\HarddiskVolumeX, mas ele só suporta montá-lo como A:, C:, D:\ ou X:\
Você pode obter a lista de pontos de montagem com os comandos mount ou df.
Você pode olhar para esta pergunta para referências , qual é a distinção entre /media, /mnt e /run/mount?