De http://haifux.org/lectures/86-sil/kernel-modules-drivers/node10.html
Um Dispositivo de Caractere ('c') é aquele com o qual o Driver se comunica enviando e recebendo caracteres simples (bytes, octetos).
Um Dispositivo de Bloco ('b') é aquele com o qual o Driver se comunica enviando blocos inteiros de dados.
Exemplos de dispositivos de caracteres: portas seriais, portas paralelas, placas de som.
Exemplos de dispositivos de bloco: discos rígidos, câmeras USB, Disk-On-Key.
As "portas seriais, portas paralelas" significam comunicação serial e comunicação paralela por fios ?
As "portas seriais" ou "portas paralelas" aplicam-se apenas a dispositivos de caracteres, mas não a dispositivos de bloco?
Obrigado.
Embora muitas vezes existam vários tipos de interconexões em computadores modernos, como USB, SATA e PCI/e que são tecnicamente seriais (mesmo ao controlar dispositivos de estilo de bloco), o texto que você cita está mais no contexto de paralelo e serial, pois foi usado pela primeira vez na computação do século 20.
Referem-se a métodos usados para interligar computadores a periféricos ou, às vezes, outros computadores.
Embora existam muitas variações, a 'porta serial' mais comum era um dispositivo de E/S que enviava e/ou recebia um caractere por vez, geralmente usando protocolo assíncrono a uma taxa de transmissão fixa. Geralmente através de um cabo RS232. Os termos porta serial e porta RS232 às vezes eram usados de forma intercambiável, embora um nome impróprio porque RS-232 é realmente um padrão elétrico. Uma aplicação comum era conectar terminais de usuário a um computador ou modems que os usuários pudessem discar e conectar terminais remotos. Pode remontar aos dias eletromecânicos, como o teletipo ASR-33 de 110 bauds, a fonte da string 'tty' frequentemente vista em comandos unix e nomes de arquivos de dispositivos.
As portas seriais eram bastante lentas, portanto, para usos que precisavam de uma taxa de caracteres mais alta, era possível usar uma porta paralela que não fosse serializada. Isso às vezes era referido a um fabricante de impressora que o tornou popular como uma porta "Centronix".
Para não dizer que não havia impressoras que usavam uma conexão serial.
Mas, conforme usado em sua cotação, porta serial e porta paralela se referem a esses dois esquemas de conexão periférica.
Portanto, embora os dispositivos de estilo de bloco possam ser tecnicamente conectados em algum nível baixo com um método de dados seriais, não é a isso que esse gravador está se referindo,
Um "dispositivo de caractere" e "dispositivo de bloco" são abstrações , geralmente usadas em sistemas do estilo Unix na classificação de vários dispositivos. Um nó de dispositivo no estilo Unix (
/dev/<something>
) geralmente é classificado como um dispositivo de caractere ou um dispositivo de bloco.Basicamente, um dispositivo de caractere pode processar dados de forma significativa, 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 a um dispositivo de bloco, pode ser necessário preenchê-lo com zeros ou outro preenchimento adequado para completar o bloco, 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 dispositivo para "acesso bruto" e outras operações especiais: o dispositivo de acesso bruto geralmente é um dispositivo de caractere.
No Linux moderno, o acesso bruto pode ser obtido abrindo o dispositivo de bloco regular usando um
O_DIRECT
sinalizador, mas se um aplicativo que é portado de outro sistema no estilo Unix requer especificamente um dispositivo bruto dedicado, um pode ser configurado conforme necessário usando oraw
comando.As portas seriais e paralelas, por outro lado, geralmente se referem a tecnologias de conexão física .
Em hardware de PC, porta serial ou porta COM normalmente se refere a uma porta RS232 (geralmente com um chip UART compatível com National Semiconductor 8250 conduzindo-o). Como não precisa de um tamanho de bloco fixo, normalmente é classificado como um dispositivo de caracteres em sistemas Unix. Como o nome porta serial indica, esta porta transfere dados serialmente, um bit de cada 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. Também é representada como um dispositivo de caractere em sistemas do estilo Unix, pois requer nenhum tamanho de bloco fixo. Como o nome indica, ele transfere dados em paralelo: possui 8 linhas de dados, uma para cada bit em um byte.
Ao contrário da porta serial, a porta paralela em sua forma mais antiga é basicamente unidirecional: o computador pode enviar dados um byte por vez, mas o dispositivo na outra extremidade tem apenas algumas linhas de status de significado fixo que podem ser usadas para comunicar de volta ao computador. (Uma combinação de estado inválido dessas linhas de status foi relatada pelas primeiras versões dos kernels do Linux como uma
lp<n> on fire
mensagem de erro semi-humorística.) Os modos de comunicação bidirecional 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 típico. 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.