Možný duplikát:
Jaký je přesný rozdíl mezi 'terminálem', 'Shell', 'tty' a 'konzolí'?
Když používám příkaz who
, vždy vidím body a tty, ale nikdy nechápu, jak se liší? Může mi to někdo prosím vysvětlit?
A tty je nativní terminálové zařízení, backend je emulován hardwarem nebo jádrem.
A pty (pseudo terminálové zařízení) je terminálové zařízení, které je emulováno jiným programem (příklad: xterm
, screen
nebo ssh
jsou takové programy). A pts je podřízená část pty .
(Více informací naleznete v man pty
.)
Krátké shrnutí:
A pty je vytvořeno procesem pomocí posix_openpt()
(který obvykle otevírá speciální zařízení /dev/ptmx
) A je tvořené dvojicí obousměrných znakových zařízení:
Hlavní část, která je deskriptorem souboru získaným 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í funkce 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 zakotvena v souborovém systému jako /dev/pts/x
(Skutečné jméno lze získat masterem prostřednictvím ptsname()
), se chová jako nativní terminálové zařízení (/dev/ttyx
) . Ve většině případů je spuštěno prostředí, které je používá jako ovládací terminál.
tty
je běžné terminálové zařízení (například konzola na vašem serveru).pts
je slave terminálu psuedo (připojení xterm
nebo ssh
).
man pts
obsahuje podrobný popis pseudo terminálů.