Por que o / dev é um subdiretório de / (a raiz)? [fechadas]

0

Por que /dev é um subdiretório de / (a raiz)? Eu pergunto porque não é tudo no sistema de arquivos também montado a partir do disco rígido do computador que aparecem em /dev ? Então, por que não é dev o diretório raiz e, em seguida, todos os discos serão exibidos lá.

    
por Kun 01.05.2016 / 17:25

3 respostas

1

Eu acredito que o Unix V1 seria executado a partir de um único disco. Não tinha um VFS real. Você pode encontrar o sistema de arquivos do sistema na raiz do namespace, / . Nenhuma indireção é necessária ; nenhuma variável SYSTEMROOT = c:/windows . Lembre-se que este foi um código de montagem escrito à mão. As ideias Minimalistas foram muito úteis.

As ideias aqui são frequentemente descritas em termos de elegância . Desejo executar /bin/ls do sistema em execução ou ler o conteúdo de /etc/motd . Eu não preciso pensar sobre como o disco é chamado toda vez (DOS ' C: ).

As letras de unidade no DOS / CPM, na verdade, são anteriores à implementação de um sistema de arquivos hierárquico. Mas você também poderia considerá-los como um recurso de interface de usuário que fazia trocas diferentes, para sistemas que faziam uso muito pesado de sistemas de arquivos em disquetes. Na verdade, você pode executar um disco do sistema DOS, removê-lo e continuar usando o shell do DOS para executar programas em um segundo disco. Então, você acaba querendo uma maneira de se referir a unidades que não dependem de arquivos especiais do sistema de arquivos do sistema, porque você não tem exatamente um sistema de arquivos do sistema montado o tempo todo.

As letras de drive não parecem ter muita relevância nos sistemas modernos; O Unix está se sentindo um tanto convencido aqui:).

O Unix V1 já tinha caminhos como /dev e /etc que as pessoas e o código estavam internalizando. Também desde o início, mount foi usado para "sistemas de arquivos destacáveis".

(Um segundo disco /usr foi usado em versões subseqüentes. O caminho de pesquisa - PATH de variável de ambiente - foi adicionado para suportar o segundo diretório bin, /usr/bin .)

Brincar com os caminhos padrão geralmente é uma causa de drama excessivo (mesmo quando há uma boa razão). Eles foram reformados um pouco ao longo do tempo, e você pode ver isso no Linux. Mas ninguém encontrou um motivo convincente para, por exemplo, Cole C: na frente de tudo .

    
por 01.05.2016 / 19:05
0

É uma convenção. Simplesmente chamado de Padrão de Hierarquia do Sistema de Arquivos . Não há mais nada para isso.

link

    
por 01.05.2016 / 19:03
0

Isso ocorre porque os arquivos do dispositivo que você encontra em /dev não são realmente pontos de montagem *. São apenas referências úteis baseadas em sistemas de arquivos para acessar os próprios dispositivos . Você pode ver um tipo semelhante de hierarquia em /sys - particularmente, procure em /sys/block .

Por que algo como /dev/sda é um tipo especial de arquivo em vez de um diretório sob o qual existem subdiretórios para partições diferentes e, em seguida, o conteúdo do sistema de arquivos dessas partições? É principalmente apenas porque . Os criadores do Unix poderiam ter feito algo assim, mas foi o que fizeram em seu lugar.

Por que /dev em vez de apenas colocar os arquivos do dispositivo em / diretamente? Bem, há muitos arquivos lá. Ficaria feio. Você poderia fazê-lo, se quiser, no entanto. Dê uma olhada, por exemplo, em /dev/sda :

$ ls -l /dev/sda
brw-rw----. 1 root disk 8, 0 Apr 27 23:18 /dev/sda

O b no início indica que este é um dispositivo de bloco, e o "8, 0" é o números de dispositivos maiores e menores - basicamente números predefinidos e mágicos que o kernel conhece correspondem a um determinado driver.

Você pode criá-los onde quiser. Por exemplo:

$ sudo mknod /tmp/this-is-my-main-disk-drive b 8 0
$ ls -l /tmp/this-is-my-main-disk-drive 
brw-r--r--. 1 root root 8, 0 May  1 14:31 /tmp/this-is-my-main-disk-drive
$ sudo fdisk -l /tmp/this-is-my-main-disk-drive
Disk /tmp/this-is-my-main-disk-drive: 477 GiB, 512110190592 bytes, 1000215216 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
[...]

Note, no entanto, que criei uma grande falha de segurança, já que esse dispositivo agora pode ser lido por todos no sistema. Não faça isso.

* bem, exceto por algumas coisas que são, mas, para simplificar, vamos ignorá-las agora.

    
por 01.05.2016 / 20:34