Eles são indicados no parágrafo. Processos, dispositivos e soquetes de rede (e outros). Estes são objetos gerenciados pelo kernel, mas aparecem como itens no sistema de arquivos e você pode acessá-los através de caminhos específicos. Seu comportamento também se assemelha a arquivos regulares em muitos aspectos. Por exemplo, você pode ler e gravar em um arquivo de dispositivo (veja abaixo) exatamente como faz com arquivos regulares.
Processos :
Cada processo tem sua pasta /proc/$PPID/
, onde $PPID
é o id do processo. Você pode encontrar a linha de comando para o processo em /proc/$PPID/cmdline
, por exemplo.
Dispositivos :
Os dispositivos aparecem como arquivos do dispositivo . Por exemplo, se o disco rígido estiver conectado a um controlador SCSI, é provável que você o encontre em /dev/sda
e a primeira partição como /dev/sda1
. Portanto, se você ler /dev/sda
, estará lendo os dados brutos no disco. Isso pode ser útil ao criar uma imagem.
Soquetes de rede :
bash
usa /dev/tcp/$host/$port
para identificar portas TCP e similares para o UDP. Em geral, é possível encontrar informações sobre soquetes em /proc/net/{tcp,udp}
Outros :
A entrada padrão também é um arquivo e você pode encontrá-lo em /dev/stdin
, semelhante à saída padrão. Você pode ler o arquivo /dev/zero
para obter zeros e de /dev/random
para obter números aleatórios realmente de alta qualidade (embora muito lentamente). O pipe é usado com frequência no shell e você também pode criar um canal nomeado . Existem muitos mais.
A resposta acima é baseada no Ubuntu LTS 16.04, outras versões do Linux / Unix podem ter maneiras diferentes de indexar esses objetos.