Um "dispositivo de caractere" e um "dispositivo de bloco" são abstrações , normalmente usadas em sistemas estilo Unix na classificação de vários dispositivos. Um nó de dispositivo no estilo Unix ( /dev/<something>
) é geralmente classificado como dispositivo de caractere ou dispositivo de bloco.
Basicamente, um dispositivo de caractere pode processar dados de maneira significativa até mesmo um único byte de cada vez, mas um dispositivo de bloco funciona com blocos de tamanho específico (geralmente 512, 1024 ou 4096 bytes). Se você fornecer um bloco incompleto para um dispositivo de bloco, talvez seja necessário preenchê-lo com zeros ou outro preenchimento adequado para concluir o bloqueio, ou então o dispositivo de bloco pode não conseguir concluir sua operação.
Os discos geralmente são representados como dispositivos de bloco em sistemas no estilo Unix. No entanto, em um sistema Unix tradicional, um único disco pode ser representado como dois dispositivos: um dispositivo de bloco para acesso regular ao sistema de arquivos e outro para "acesso bruto" e outras operações especiais: o dispositivo de acesso bruto é geralmente um dispositivo de caractere.
No Linux moderno, o acesso raw pode ser obtido abrindo o dispositivo de bloco regular usando um sinalizador O_DIRECT
, mas se um aplicativo que é portado de outro sistema Unix requer especificamente um dispositivo bruto dedicado, pode-se configurar conforme necessário, usando o comando raw
.
As portas seriais e paralelas, por outro lado, geralmente se referem a tecnologias de conexão física .
No hardware do PC, porta serial ou porta COM normalmente se refere a porta RS232 (geralmente com um chip UART compatível com o National Semiconductor 8250 dirigindo). Como não precisa de um tamanho de bloco fixo, ele é normalmente classificado como um dispositivo de caractere em sistemas Unix. Como o nome porta serial implica, esta porta transfere dados em série, um bit por vez. As especificações mais modernas para esta porta são conhecidas como EIA / TIA-232.
Da mesma forma, em hardware de PC, porta paralela , porta de impressora , porta LPT ou porta Centronics referem-se a um tipo de porta cuja implementação mais moderna é padronizada como IEEE 1284. Ela também é representada como um dispositivo de caractere em sistemas estilo Unix, já que não requer tamanho de bloco fixo. Como o nome indica, ele transfere dados em paralelo: ele tem 8 linhas de dados, uma para cada bit em um byte.
Diferentemente da porta serial, a porta paralela em sua forma mais antiga é basicamente unidirecional: o computador pode enviar dados um byte de cada vez, mas o dispositivo na outra ponta tem apenas algumas linhas de status de significado fixo pode usar para se comunicar de volta ao computador. (Uma combinação de estado inválida dessas linhas de status foi relatada por versões anteriores dos kernels do Linux como uma mensagem de erro lp<n> on fire
semia-humorada.)
Modos de comunicação bidirecionais foram implementados como aprimoramentos posteriores.
Antes da introdução do USB, a porta paralela era provavelmente o conector externo de uso geral mais rápido em um PC comum. Se fossem necessários dispositivos externos com velocidades de transferência de dados mais rápidas, isso geralmente significava adicionar uma placa de interface dedicada ou uma placa adaptadora SCSI com um conector externo ao sistema. Por exemplo, um scanner de imagem de mesa profissional provavelmente exigiria uma conexão SCSI.