A grande diferença entre Linux e Windows, pelo menos no que diz respeito aos sistemas de arquivos e às árvores de diretórios, é que no Linux "tudo é um arquivo" e tudo desce de uma única raiz. Isso também se aplica a quase todos os sistemas operacionais derivados do Unix, como BSD, OS X, Solaris, etc., mas vou dizer apenas "Linux" para ser genérico (se não for totalmente preciso).
Mas o que isso significa na prática?
O Windows permite várias raízes nomeadas para seus sistemas de arquivos. Você as entende como letras de unidade: C: D: E:
e assim por diante. Cada um tem uma raiz ( \
) e uma árvore que desce dela. As versões recentes do Windows permitem coisas como pontos de montagem de volume, onde um volume (o que você consideraria uma partição) pode ser montado em uma pasta vazia existente. Portanto, em vez de D:
\ representar a raiz da sua unidade óptica (CD / DVD / BR), você pode montá-la C:\Optical
. Isso é mais parecido com o que o Linux faz. Há também um espaço para nome de objeto subjacente, com uma única raiz, para tudo no Windows, semelhante ao que o Linux usa e é gerenciado pelo Gerenciador de Objetos , mas a maioria dos usuários raramente o vê referenciado, pois é principalmente para uso do kernel.
Linux tem uma única raiz: /
. Tudo desce e não necessariamente representa o seu disco rígido. Discos rígidos, ópticos, cartões de memória, compartilhamentos de rede, impressoras, scanners, CPUs, RAM, processos, ... tudo está representado em algum lugar dentro desse espaço de nome único e pode ser acessado por qualquer processo com APIs de gerenciamento de arquivos padrão, presumindo que você tenha um nível de acesso alto o suficiente. Só porque você pode ler ou escrever a partir dele, não significa que seja um arquivo no seu disco rígido no Linux. Por exemplo, os dispositivos geralmente são montados /dev
, portanto, acessar itens lá dentro geralmente significa que você está conversando com um dispositivo - talvez seja a placa de som, ou um scanner ou uma câmera etc. Eles são conhecidos como arquivos de dispositivo . Procfsé um "sistema de arquivos" especial que normalmente é montado /proc
e possui um "diretório" para cada processo em execução, com arquivos em cada diretório relacionados a coisas como a linha de comando usada para invocar esse processo, mapas de memória, arquivos abertos etc. O Sysfs é outro O sistema de arquivos especial (montado em /sys
) usado para expor uma grande quantidade de informações sobre os objetos do kernel em execução e também pode ser usado para ajustar o kernel em execução simplesmente gravando em um arquivo específico.