Jaka jest różnica między „surowym” a „gotowanym” sterownikiem urządzenia?

27

Czy ta koncepcja ma zastosowanie tylko do sterowników terminali (co obejmuje większość witryn), czy ogólnie do dowolnego sterownika?

soc
źródło

Odpowiedzi:

30

Warunki surowe i gotowane dotyczą tylko kierowców terminalowych. „Gotowane” nazywa się kanonicznym, a „surowe” nazywa się trybem niekanonicznym .

Sterownik terminala jest domyślnie systemem opartym na linii: znaki są buforowane wewnętrznie aż do powrotu karetki ( Enterlub Return) przed przekazaniem do programu - nazywa się to „gotowanym”. Pozwala to na pewne postacie do obróbki (patrz stty(1)), takie jak Cntl-D, Cntl-S, Ctrl-U Backspace); zasadniczo podstawowa edycja linii. Sterownik terminalu „gotuje” postacie przed ich podaniem.

Terminal można ustawić w trybie „surowym”, w którym znaki nie są przetwarzane przez sterownik terminala, ale są przesyłane bezpośrednio (można ustawić, aby znaki INTR i QUIT były nadal przetwarzane). Pozwala to programy jak emacsi viłatwiej użyć całego ekranu.

Możesz przeczytać więcej na ten temat w sekcji „Tryb kanoniczny” na stronie termios(3)podręcznika.

Arcege
źródło
11

Terminy te używane są do opisania terminali i dysków we / wy, ale oznaczają różne rzeczy w każdym kontekście.

Tryby surowe i gotowane na urządzeniu końcowym przetwarzają pokrycie (znak po czasie vs. linia po czasie, istnieje również kilka innych różnic).

„Surowe” urządzenie dyskowe ( /dev/rdsk/*) jest urządzeniem znakowym i /dev/dsk/jest urządzeniem blokowym. IIRC główna różnica polega na tym, że urządzenie blokowe ma buforowanie jądra, a dokładną kontrolę nad trybami We / Wy, takimi jak bezpośrednie / mapowane We / Wy, można określić na surowym defekcie.

Opis surowych i gotowanych trybów tty można znaleźć tutaj. Wpis dotyczący urządzeń dyskowych surowych vs gotowanych można znaleźć tutaj.

ConcernedOfTunbridgeWells
źródło