A maioria dos arquivos em /dev
são arquivos de dispositivos . Essas são entradas de diretório especiais, que não correspondem a nenhum armazenamento em disco, mas invocam funções no kernel, normalmente para interagir com o hardware.
Sistemas Unix suportam vários tipos de arquivos (estou omitindo alguns tipos "exóticos"), que são indicados pelo primeiro caractere na linha na saída de ls -l
:
-
-
Arquivos regulares. Para sistemas de arquivos com suporte a disco, esses arquivos são gravados no disco. Quando você lê um arquivo desse tipo, recebe de volta os dados que foram gravados nele. -
d
Diretórios. Estes são arquivos cujo único propósito é conter outros arquivos. -
l
Links simbólicos. Estes são arquivos cujo único propósito é redirecionar para outro arquivo. -
p
Canais nomeados (também conhecidos como FIFOs): quando um processo grava em um canal nomeado, outro processo lê a saída em tempo real, e o escritor bloqueia até que o leitor faça sua leitura. -
s
Nomeado soquetes - como pipes nomeados, mas oferecendo uma comunicação bidirecional baseada em sessão, como soquetes de rede. -
b
,c
Bloquear e caracterizar dispositivos .
Um dispositivo de bloco é um dispositivo que funciona como um arquivo normal de tamanho fixo: quando você lê de volta de um determinado local, recebe de volta os dados que foram gravados por último naquele local. Dispositivos de bloco são normalmente discos ou partições de disco ou outro hardware que age como um disco.
Um dispositivo de caractere é um dispositivo que não age dessa maneira. Estes são altamente variados. Alguns dispositivos são somente de saída ou somente de entrada; mesmo quando um dispositivo de caracteres suporta entrada e saída, não existe necessariamente qualquer relação entre o que está escrito e o que é lido. Por exemplo, os dados gravados em um dispositivo que corresponde a uma porta serial são enviados ao periférico conectado a essa porta serial; dados lidos daquele dispositivo é o que é recebido daquele periférico.
/dev/console
designa o console do sistema , ou seja, o teclado e a tela conectados ao computador. Se um computador não tiver teclado e tela, /dev/console
existe, mas a gravação pode falhar ou ser ignorada. Se um computador tiver vários teclados e telas, alguma configuração do sistema determinará qual (is) /dev/console
está conectado. Alguns sabores Unix oferecem consoles virtuais; por exemplo, no Linux, você pode alternar entre os consoles pressionando Ctrl + Alt + F1 , Ctrl + < kbd> Alt + F2 , etc .; cada console tem seu próprio conjunto de programas conectados a ele e a seu próprio buffer de vídeo, e alternando os switches que o console recebe na entrada do teclado e é exibido na tela.
Você pode ler /dev/console
(supondo que você tenha permissão). Nano está sendo um pouco inútil: ele se recusa a ler qualquer arquivo de dispositivo (o que é altamente sensato, já que não faz sentido “editar” um dispositivo de caractere, e os dispositivos de bloco normalmente contêm sistemas de arquivos que não devem ser editados com texto) editor), mas não exibe uma mensagem de erro.
Dado o nome do diretório, esta é uma árvore initramfs : uma árvore de arquivos que deve se tornar o árvore de arquivos inicial de um sistema Linux. Se você montar o initramfs (normalmente feito como parte de uma compilação do kernel) e inicializar a partir desse initramfs, esse arquivo console
será finalizado como /dev/console
no sistema que você inicializou.