В чем разница между «сырым» и «приготовленным» драйвером устройства?

27

Относится ли эта концепция только к драйверам терминалов (что охватывает большинство сайтов) или к любому драйверу в целом?

Soc
источник

Ответы:

30

Термины « сырой» и « приготовленный» относятся только к терминальным водителям. «Приготовленный» называется каноническим, а «сырой» - неканоническим .

Драйвер терминала по умолчанию является линейной системой: символы буферизуются внутри до возврата каретки ( Enterили Return) до его передачи в программу - это называется «приготовлено». Это позволяет некоторые символы должны быть обработаны (см stty(1)), такие как Cntl-D, Cntl-S, Ctrl-U Backspace); по сути, элементарное редактирование строк. Драйвер терминала «готовит» персонажей перед тем, как подавать их.

Терминал может быть переведен в «сырой» режим, в котором символы не обрабатываются драйвером терминала, а отправляются напрямую (можно установить, что символы INTR и QUIT по-прежнему обрабатываются). Это позволяет программам, таким как emacsи viиспользовать весь экран более легко.

Подробнее об этом вы можете прочитать в разделе «Канонический режим» на termios(3)странице руководства .

Arcege
источник
11

Термины используются для описания терминального и дискового ввода-вывода, но означают разные вещи в каждом контексте.

Необработанные и готовые режимы обработки терминального устройства покрывают (символьный или линейный характер, есть также несколько других отличий).

«Необработанное» дисковое устройство ( /dev/rdsk/*) - это символьное устройство, а /dev/dsk/блочное устройство. Основным отличием IIRC является то, что блочное устройство имеет буферизацию ядра, и точный контроль над режимами ввода-вывода, такими как прямой / сопоставленный ввод-вывод, может быть задан в исходном виде.

Описание сырых и приготовленных tty режимов можно найти здесь. Сообщение о сырых и готовых дисковых устройствах можно найти здесь.

ConcernedOfTunbridgeWells
источник