Qual é a diferença entre um driver de dispositivo "cru" e um "cozido"?

27

Esse conceito se aplica apenas aos drivers de terminal (que é o que a maioria dos sites cobrem) ou a qualquer driver em geral?

soc
fonte

Respostas:

30

Os termos cru e cozido apenas se aplicam aos drivers do terminal. "Cozido" é chamado de canônico e "cru" é chamado de modo não canônico .

O driver do terminal é, por padrão, um sistema baseado em linha: os caracteres são armazenados em buffer internamente até um retorno de carro ( Enterou Return) antes de ser passado para o programa - isso é chamado de "cozido". Isto permite que certos caracteres a serem processados (ver stty(1)), tais como Cntl-D, Cntl-S, Ctrl-U Backspace); edição de linhas essencialmente rudimentar. O motorista do terminal "cozinha" os caracteres antes de servi-los.

O terminal pode ser colocado no modo "bruto", onde os caracteres não são processados ​​pelo driver do terminal, mas são enviados diretamente (pode ser definido que os caracteres INTR e QUIT ainda sejam processados). Isso permite que programas como emacse viusem a tela inteira com mais facilidade.

Você pode ler mais sobre isso na seção "Modo canônico" da página de termios(3)manual.

Arcege
fonte
11

Os termos são usados ​​para descrever E / S de terminal e disco, mas significam coisas diferentes em cada contexto.

Os modos cru e cozido em um dispositivo terminal cobrem o processamento (caractere por vez vs. linha por vez, também existem algumas outras diferenças).

Um dispositivo de disco 'bruto' ( /dev/rdsk/*) é um dispositivo de caractere e /dev/dsk/é um dispositivo de bloco. IIRC, a principal diferença é que o dispositivo de bloco possui buffer do kernel e o controle refinado sobre os modos de E / S, como E / S direta / mapeada, pode ser especificado em um defeito bruto.

Uma descrição dos modos tty cru e cozido pode ser encontrada aqui. Pode encontrar aqui uma publicação sobre dispositivos de disco bruto vs dispositivos de disco cozidos .

ConcernedOfTunbridgeWells
fonte