Czy ta koncepcja ma zastosowanie tylko do sterowników terminali (co obejmuje większość witryn), czy ogólnie do dowolnego sterownika?
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 emacs
i 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.
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.