relacionamento entre o nome do dispositivo e o ponto de montagem

5

Mesmo que tenhamos um dispositivo chamado, por exemplo /dev/sdb1 o ponto de montagem para o dispositivo é diferente para, e. %código%. Agora estou confuso e curioso para saber qual é a relação entre o nome do dispositivo real e o ponto de montagem, porque ambos os tipos de /media/user/sth e dev são duas pastas diferentes no sistema.

Então, por que o nome do dispositivo está associado a uma pasta?

    
por mathmaniage 14.12.2017 / 04:50

1 resposta

5

TL; DR : porque o sistema de arquivos /dev/ e o ponto de montagem de um dispositivo têm uma relação mínima e diferem em sua finalidade.

Qual é o propósito do sistema de arquivos / dev?

Para citar a resposta de Gilles :

  

Quase todos os arquivos em / dev são arquivos de dispositivos. Considerando que ler e gravar em um arquivo regular armazena dados em um disco ou outro sistema de arquivos, acessar um arquivo de dispositivo se comunica com um driver no kernel, que geralmente se comunica com um pedaço de hardware (um dispositivo de hardware, daí o nome). / p>

Você já ouviu o ditado "tudo é um arquivo no * nix"? Bem, isso é um pouco como o /dev filesystem funciona - ele permite que você tenha um "arquivo" representando uma parte específica do hardware conectada ao seu computador. Se você tiver um mouse conectado, ele será mostrado como /dev/input/mouse0 , por exemplo; se você tiver um disco rígido conectado, provavelmente ele será exibido como /dev/sd<LETTER><NUMBER> (e deve ser observado, normalmente é usado para representar dispositivos de bloco que permitem a leitura de dados em blocos de alguns bytes e geralmente fazem uso do protocolo SCSI, embora para novas unidades NVM possam aparecer como /dev/nvme0n1 ).

E é possível interagir com dispositivos assim. É comum as pessoas fazerem backups com dd if=/dev/sda1 of=/dev/sdc1 ou algo das linhas. Quando você tiver o Arduino ou o Raspberry Pi conectados via porta serial, eles aparecerão como consoles seriais /dev/ttyUSB0 ou /dev/ttyACM0 , e você pode escrever bytes para se comunicar com o dispositivo, embora seja mais prático usar algo como screen ou byobu ou PuTTY software. Mas é sobre isso - você não pode realmente visualizar arquivos no dispositivo de uma forma simples.

O que é um sistema de arquivos?

Um sistema de arquivos é como os dados são organizados em um dispositivo de armazenamento de alguma forma. E há muitos sistemas de arquivos . Se você tem disco rígido do Mac, os dados foram organizados nessa unidade com tipos de sistema de arquivos HPFS ou APFS ; se vier do Windows - que pode usar o sistema de arquivos NTFS; se vem do Linux - normalmente seria uma forma de ext filesystem; O BSD ou o Solaris podem usar zfs e assim por diante. Você poderia até mesmo montar o arquivo iso de um backup e vinculá-lo a uma pasta. Todos eles têm suas próprias vantagens, mas a idéia-chave é que os dados são organizados de maneira lógica e permitem que um usuário lide com arquivos individuais, em vez de lidar com bytes ou blocos de dados. E a característica comum é que todos os sistemas de arquivos devem ter um ponto de montagem, a raiz lógica da árvore do sistema de arquivos de pastas e arquivos.

E é aí que entra /dev . O /dev é, na verdade, um sistema de arquivos virtual montado na pasta /dev , no sentido de que existe apenas quando a máquina está em execução; uma vez que você desligou, tudo nesse diretório se foi. Mesmo com os diretórios /proc e /sys - as representações de processos e dispositivos físicos existem apenas para o tempo de atividade do sistema. É por isso que você não pode tornar /dev um ponto de montagem para sua unidade USB ou disco rígido - já é um ponto de montagem para outra coisa, e além disso, violar Hierarquia do sistema de arquivos Unix padrão.

Embora seja possível criar um diretório em /dev/my_mountpoint e montar um disco rígido lá (com privilégios de root), mas ele é redundante e contra o já mencionado padrão de hierarquia do sistema de arquivos Unix.

Como os dispositivos e pontos de montagem são relacionados?

Poderíamos fazer comparações entre sites e discos. Com um site, você definiu links para páginas específicas. Mas o site é tecnicamente uma coleção de dados armazenados em algum lugar em um servidor. Mesma ideia aqui - /dev/sda1 pode conter dados e arquivos, mas o ponto de montagem permite que você interaja com essas coisas de uma maneira lógica, e conhecendo o caminho de um arquivo, você pode navegar facilmente para ele da mesma forma que com links no site páginas que você precisa.

No lado técnico, o ponto de montagem e o dispositivo são gerenciados por arquivos pares. /etc/fstab permitirá que você especifique o dispositivo (por /dev reference ou via UUID number) e onde montá-lo no momento da inicialização. /etc/mtab , /proc/mounts , /proc/self/mountinfo e /proc/self/mountstats informarão onde os dispositivos estão atualmente montados. Agora, no Ubuntu, a GUI permite a montagem automática (no passado era Unity, agora GNOME, mas em qualquer um dos casos que ainda deveria ser gerenciado pelo mesmo esquema GSettings ). Isso, por sua vez, faz interface com o sistema UDisks2 , que monta seu USB ou disco rígido na pasta /media ; Em outras palavras, existe um software que relaciona seu drive USB com o ponto de montagem automaticamente.

Deve-se notar também que certos programas como df podem operar somente em sistemas de arquivos montados, i.e. df mostrará o uso apenas para as unidades e partições montadas. Por outro lado, em muitos casos, é desejável ter o sistema de arquivos desmontado para fsck utilitário de verificação do sistema de arquivos ou parted / Gparted utilitários (desde que eles sejam usados para redimensionar e redimensionar uma partição montada pode levar à perda De dados). Utilitários como findmnt permitirão que você encontre onde um dispositivo específico é montado (que eu pessoalmente uso em meu prompt do shell para saber em qual disco eu estou atualmente).

Conclusão

Provavelmente isso ainda não faz muito sentido, e é compreensível. Vamos apenas dizer que isso é uma convenção. Não necessariamente uma coisa do Unix, porque o Windows faz isso de maneira semelhante , com terminologia semelhante. É exatamente como os computadores são construídos e o que fazia sentido para os engenheiros quando eles estavam projetando os sistemas anos e anos atrás. Mas ei - funciona, né?

    
por Sergiy Kolodyazhnyy 16.12.2017 / 10:43

Tags