Možný duplikát:
Jaký je přesný rozdíl mezi ‚terminálem‘, ‚shell‘, ‚tty‘ a ‚console‘?
Když použiji who, vždy vidím pts a tty příkaz, ale nikdy nechápu, jak se liší? Může mi to prosím někdo vysvětlit?
Přijatá odpověď:
tty je nativní terminálové zařízení, backend je buď hardwarově nebo emulovaný kernel.
A pty (pseudoterminální zařízení) je koncové zařízení, které je emulováno jiným programem (příklad:xterm , screen , nebo ssh jsou takové programy). A bodů je podřízená část pty .
(Více informací lze nalézt v man pty .)
Krátké shrnutí :
A pty je vytvořen procesem prostřednictvím posix_openpt() (které obvykle otevře speciální zařízení /dev/ptmx ) a je tvořen dvojicí obousměrných znakových zařízení:
-
Hlavní část, což je deskriptor souboru získaný tímto procesem prostřednictvím tohoto volání, se používá k emulaci terminálu. Po určité inicializaci lze druhou část odemknout pomocí
unlockpt()a master se používá k přijímání nebo odesílání znaků do této druhé části (slave). -
Slave část, která je ukotvena v souborovém systému jako
/dev/pts/x(skutečné jméno může master získat pomocíptsname()) se chová jako nativní terminálové zařízení (/dev/ttyx). Ve většině případů se spustí shell, který jej používá jako ovládací terminál.