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

21

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

    
por soc 30.09.2011 / 12:10

2 respostas

22

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

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

O terminal pode ser colocado no modo "raw", onde os caracteres não são processados pelo driver do terminal, mas são enviados diretamente (pode-se definir que os caracteres INTR e QUIT ainda sejam processados). Isso permite que programas como emacs e vi usem a tela inteira com mais facilidade.

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

    
por 30.09.2011 / 14:17
9

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

Modos crus e cozidos em um processamento de cobertura de dispositivo de terminal (caractere por vez versus linha por vez, há também algumas outras diferenças).

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

Uma descrição dos modos raw e cooked tty pode ser encontrada aqui. Uma postagem sobre dispositivos de disco crus e cozidos pode ser encontrada aqui.

    
por 30.09.2011 / 14:08