Categories: Tecnologia

O que “Everything Is a File” significa no Linux?

Um dos recursos definidores do Linux e de outros sistemas operacionais semelhantes ao UNIX é que “tudo é um arquivo”. Esta é uma simplificação exagerada, mas entender o que isso significa ajudará você a entender como o Linux funciona.

Muitas coisas no Linux aparecem em seu sistema de arquivos, mas na verdade não são arquivos. Eles são arquivos especiais que representam dispositivos de hardware, informações do sistema e outras coisas – incluindo um gerador de números aleatórios.

Esses arquivos especiais podem estar localizados em sistemas de arquivos pseudo ou virtuais, como / dev, que contém arquivos especiais que representam dispositivos, e / proc, que contém arquivos especiais que representam informações do sistema e do processo.

/ proc

Por exemplo, digamos que você deseja encontrar informações sobre sua CPU. O diretório / proc contém um arquivo especial – / proc / cpuinfo – que contém essas informações.

Você não precisa de um comando especial que informe as informações da sua CPU – você pode apenas ler o conteúdo deste arquivo usando qualquer comando padrão que funcione com arquivos de texto simples. Por exemplo, você pode usar o comando cat / proc / cpuinfo para imprimir o conteúdo deste arquivo no terminal – imprimindo as informações da CPU no terminal. Você pode até abrir / proc / cpuinfo em um editor de texto para visualizar seu conteúdo.

Lembre-se de que / proc / cpuinfo não é realmente um arquivo de texto contendo essas informações – o kernel do Linux e o sistema de arquivos proc estão expondo essas informações para nós como um arquivo. Isso nos permite usar ferramentas familiares para visualizar e trabalhar com as informações.

O diretório / proc também contém outros arquivos semelhantes, por exemplo:

  • / proc / uptime – Expõe o tempo de atividade do seu kernel Linux – em outras palavras, há quanto tempo seu sistema está ligado sem desligar.
  • / proc / version – Expõe a versão do seu kernel Linux.

/ dev

No diretório / dev, você encontrará arquivos que representam dispositivos – bem como arquivos que representam outras coisas especiais. Por exemplo, / dev / cdrom é a sua unidade de CD-ROM. / dev / sda representa seu primeiro disco rígido, enquanto / dev / sda1 representa a primeira partição em seu primeiro disco rígido.

Quer montar seu CD-ROM? Execute o comando de montagem e especifique / dev / cdrom como o dispositivo que você deseja montar. Quer particionar seu primeiro disco rígido? Execute um utilitário de particionamento de disco e especifique / dev / sda como o disco rígido que você deseja editar. Quer formatar a primeira partição em seu primeiro disco rígido? Execute um comando de formatação e diga a ele para formatar / dev / sda1.

Como você pode ver, expor esses dispositivos como parte do sistema de arquivos tem suas vantagens. O sistema de arquivos fornece um “espaço de nomes” consistente que todos os aplicativos podem usar para endereçar e acessar os dispositivos.

/ dev / null, / dev / random e / dev / zero

O sistema de arquivos / dev não contém apenas arquivos que representam dispositivos físicos. Aqui estão três dos dispositivos especiais mais notáveis ​​que ele contém:

  • / dev / null – descarta todos os dados gravados nele – pense nisso como uma lata de lixo ou um buraco negro. Se você vir um comentário dizendo para enviar reclamações para / dev / null – essa é uma maneira geek de dizer “jogue-os no lixo”.
  • / dev / random – Produz aleatoriedade usando ruído ambiental. É um gerador de números aleatórios que você pode acessar.
  • / dev / zero – Produz zeros – um fluxo constante de zeros.

Se você pensar nesses três como arquivos, não verá uma utilidade para eles. Em vez disso, pense neles como ferramentas.

Por exemplo, por padrão, os comandos do Linux produzem mensagens de erro e outras saídas que são impressas na saída padrão, normalmente o terminal. Se você deseja executar um comando e não se importa com sua saída, você pode redirecionar essa saída para / dev / null. Redirecionar a saída de um comando para / dev / null o descarta imediatamente. Em vez de fazer com que cada comando implemente seu próprio “modo silencioso”, você pode usar esse método com qualquer comando.

comando> / dev / null

Se você quisesse uma fonte de aleatoriedade – digamos, para gerar uma chave de criptografia, você não precisaria escrever seu próprio gerador de número aleatório – você poderia usar / dev / random.

Para apagar o conteúdo de um disco rígido escrevendo zeros nele, você não precisa de um utilitário especial dedicado a zerar um disco – você pode usar utilitários padrão e / dev / zero. Por exemplo, o comando dd lê em um local e grava em outro. O comando a seguir iria ler zeros de / dev / zero e gravá-los diretamente na primeira partição do disco rígido em seu sistema, apagando completamente seu conteúdo.

( Aviso : este comando apagará todos os dados em sua primeira partição se você executá-lo. Execute este comando apenas se quiser destruir os dados.)

dd se = / dev / zero de = / dev / sda1

Aqui, estamos usando dd com arquivos especiais (/ dev / zero e / dev / sda1), mas também podemos usar dd para ler e gravar em arquivos reais. O mesmo comando funciona tanto para manipular dispositivos diretamente quanto para trabalhar com arquivos.

Esclarecimento

Na prática, é mais correto dizer que “tudo é um fluxo de bytes” do que “tudo é um arquivo”. / dev / random não é um arquivo, mas certamente é um fluxo de bytes. E, embora essas coisas tecnicamente não sejam arquivos, elas estão acessíveis no sistema de arquivos – o sistema de arquivos é um “espaço de nomes” universal onde tudo é acessível. Quer acessar um gerador de números aleatórios ou ler diretamente de um dispositivo? Você encontrará ambos no sistema de arquivos; nenhuma outra forma de endereçamento necessária.

Claro, algumas coisas não são realmente arquivos – os processos em execução no seu sistema não fazem parte do sistema de arquivos. “Tudo é um arquivo” é impreciso, mas muitas coisas se comportam como arquivos.

maisroot

Recent Posts

O novo aplicativo “PC Manager” da Microsoft se parece muito com o CCleaner

Muitos aplicativos de limpeza estão disponíveis para Windows ao longo dos anos, mas hoje em…

7 meses ago

Como reiniciar um PS4

Seu PlayStation 4 está congelado? Seus jogos favoritos continuam travando? Reiniciar seu PS4 pode resolver…

7 meses ago

Veja por que as reticências são tão assustadoras ao enviar mensagens de texto…

A popularidade das mensagens de texto significou aprender uma forma totalmente nova de comunicação. Você…

7 meses ago

O telescópio James Webb acaba de capturar os “Pilares da Criação”

A foto dos "Pilares da Criação" tirada pelo Telescópio Espacial Hubble é uma das fotos…

7 meses ago

Você poderá baixar o Proton Drive mais cedo do que pensa

O Proton Drive saiu de seu estágio beta há algumas semanas, mas o aplicativo real…

7 meses ago

Como aumentar o zoom no Photoshop

Para ver suas fotos mais de perto ou para uma edição precisa , você pode…

7 meses ago