Arquivo de dispositivo

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa

Em sistemas operacionais, um arquivo de dispositivo, ou arquivo especial, é uma interface para um driver de dispositivo que aparece em um sistema de arquivos como se fosse um arquivo comum. Eles são comumente utilizados em sistemas operacionais do tipo Unix e também são encontrados no MS-DOS, OS/2 e Microsoft Windows. Os arquivos de dispositivo permitem que o software interaja com um driver de dispositivo utilizando as chamadas de sistema (system calls) padronizadas de entrada/saída, o que simplifica muitas tarefas e unifica mecanismos de E/S de espaço do usuário.

Frequentemente, os arquivos de dispositivo são utilizados como simples interfaces para dispositivos periféricos, como impressoras. Mas eles também podem ser usados para o acesso de recursos específicos nestes dispositivos, como partições em um disco. Finalmente, os arquivos de dispositivo são uteís para o acesso a recursos do sistema que não tem conexão com um dispositivo físico, como o /dev/null e geradores de números aleatórios.

Sistemas Unix e do tipo Unix[editar | editar código-fonte]

Uma estrutura simplificada do núcleo do Linux. Sistemas de arquivo são implementados como parte do subsistema de E/S.

Nós de dispositivo correspondem aos recursos que um núcleo de sistema operacional já alocou. O Unix identifica estes recursos por um número maior e um número menor,[1] ambos armazenados como parte da estrutura de um . A designação destes números ocorrem de forma única em diferentes sistemas operacionais e sobre diferentes plataformas de computador. Geralmente, o número maior identifica o controlador (driver) do dispositivo e o menor identifica um dispositivo particular (possivelmente fora de muitos) que o driver controla:[2] neste caso, o sistema pode passar o número menor ao driver. Entretanto, na presença da alocação de números dinâmica, este pode não ser o caso (e.g. no FreeBSD 5 em diante).

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

Arquivos especiais de bloco ou dispositivos de bloco fornecem acesso armazenado em memória temporária (buffer) para dispositivos de hardware e fornecem alguma abstração de suas especificidades. Diferente de dispositivos de caractere, dispositivos de bloco sempre permitirão ao programador ler e escrever um bloco de qualquer tamanho (incluindo simples caracteres/bytes) e qualquer alinhamento. A desvantagem é que devido aos dispositivos de bloco serem armazenados em memória temporária, o programador não sabe quanto tempo levará antes que os dados escritos sejam passados das memórias temporárias do núcleo para o dispositivo real, ou mesmo em que ordem duas escritas separadas chegarão ao dispositivo físico. Além disso, se o mesmo hardware expõe tanto dispositivos de caractere quanto em bloco, há um risco de corrupção de dados devido aos clientes que utilizam o dispositivo de caractere não terem o conhecimento das alterações feitas na memória temporária (buffer) do dispositivo de bloco.

A maioria dos sistemas criam tanto dispositivos de bloco quanto de caractere para representar o hardware, como discos rígidos. O FreeBSD e o Linux notavelmente não fazem isso. O FreeBSD removeu o suporte para dispositivos de bloco, enquanto o Linux cria apenas dispositivos de bloco. No Linux, para obter um dispositivo de caractere para um disco deve-se usar o controlador (driver) "nativo" (raw), assim pode-se obter o mesmo efeito que abrir um dispositivo de caractere abrindo-se o dispositivo de bloco com a flag específica do Linux 0_DIRECT.

Arquivos de dispositivo do MS-DOS[editar | editar código-fonte]

O MS-DOS emprestou o conceito de arquivos especiais do Unix, mas os renomeou para arquivos de dispositivo. Devido ao fato de versões antigas do MS-DOS não suportarem hierarquia de diretórios, os arquivos de dispositivo eram diferenciados dos arquivos regulares pelo uso de palavras reservadas para nomeá-los. Isto implica que certos nomes de arquivo são reservados para arquivos de dispositivo, e não podem ser utilizados para nomear arquivos e diretórios. Os nomes reservados, por sua vez, foram criados para serem compatíveis com a manipulação de "arquivos especiais" por parte do comando PIP no CP/M.

Alguns dos arquivos de dispositivo são listados abaixo:

Nome do arquivo propósito
CON dispositivo de console
PRN impressora
AUX Dispositivo auxiliar
COM0 COM1 COM2 COM3 COM4 COM5 COM6 COM7 COM8 COM9 portas seriais
LPT1 LPT2 PRN portas paralelas
NUL Bit bucket

Uma palavra reservada não pode sequer ser utilizada como extensão de arquivo, os nomes de arquivo "nul.doc" e "con.html" são inválidos. Isto acaba confundindo usuários leigos e aborrecendo usuários técnicos.

A documentação da Microsoft se refere aos "arquivos de dispositivo MS-DOS" mesmo no sistema Windows NT, que não é baseado no MS-DOS.

Referências

  1. Brian W. Kernighan; Rob Pike (1984). The UNIX Programming Environment Prentice-Hall [S.l.] p. 66. ISBN 0-13-937681-X. 
  2. Neil Brown (October 27, 2010). «Ghosts of Unix Past: a historical search for design patterns». LWN.net. Consultado em 30 March 2014. 


Ícone de esboço Este artigo sobre sistema operacional é um esboço. Você pode ajudar a Wikipédia expandindo-o.