Nó de dispositivo

Origem: Wikipédia, a enciclopédia livre.

Um nó de dispositivo é um tipo de arquivo especial utilizado em muitos sistemas operacionais do tipo Unix. Os nós de dispositivo facilitam e tornam transparente a comunicação entre as aplicações no espaço do usuário e o hardware do computador.

Implementação[editar | editar código-fonte]

Por definição, os nós de dispositivo correspondem aos recursos que foram previamente alocados pelo núcleo do sistema operacional. Estes recursos são identificados por um "número maior" e um "número menor", que são armazenados como parte da estrutura do nó. A atribuição destes números é específica dos diferentes sistemas operacionais e plataformas.

Como outros tipos de arquivos especiais, os nós de dispositivo são acessados através de chamadas de sistema padronizadas e tratados como qualquer arquivo comum. Existem dois tipos padronizados de arquivo de dispositivo, diferenciados pelo tipo de hardware pelo qual eles servem de interface e pela maneira com que o sistema operacional processa as operações de entrada/saída.

Dispositivos de caractere[editar | editar código-fonte]

Os "dispositivos de caractere" ou "arquivos especiais de caractere" são usados como correspondentes de dispositivos cujos dados são transmitidos na forma de um caractere por vez. Estes nós de dispositivo são frequentemente utilizados na comunicação serial para máquinas de teletipo, terminais virtuais e modems seriais.

Na maioria das implementações, os dispositivos de caractere utilizam rotinas de entrada/saída não "bufferizadas". Cada caractere é lido, e escrito, no dispositivo imediatamente.

Dispositivos de bloco[editar | editar código-fonte]

"Dispositivos de bloco" ou "arquivos especiais de bloco" são utilizados como correspondentes de dispositivos nos quais os dados são transmitidos na forma de blocos. Estes nós de dispositivo são frequentemente utilizados em dispositivos de comunicações paralelas como discos rígidos e drives de CD-ROM.

A maior diferença entre os dispositivos de bloco e de caractere está no fato dos dispositivos de bloco utilizarem rotinas de I/O "bufferizadas". O sistema operacional aloca um buffer para manipular um único bloco para cada entrada/saída. Quando um programa envia uma requisição de leitura, ou escrita, para um dispositivo, cada caractere de dado é armazenado no buffer apropriado. Quando o buffer fica cheio e um bloco completo é obtido, a operação de I/O é realizada e o buffer é esvaziado.

Pseudo-dispositivos[editar | editar código-fonte]

Os nós de dispositivo nos sistemas operacionais do tipo Unix, não necessariamente tem um dispositivo físico correspondente. Os nós que não têm esta correspondência são chamados de "pseudo-dispositivos". Eles são utilizados em várias funções, que são gerenciadas pelo sistema operacional. Os pseudo-dispositivos mais comuns são:

/dev/null
Aceita e descarta toda entrada; não produz saída.
/dev/random
Produz um fluxo de tamanho variável contendo caracteres pseudo-aleatórios.
/dev/zero
Produz um fluxo contínuo de nulls (zeros).

Ver também[editar | editar código-fonte]