GNU/Linux >> Znalost Linux >  >> Linux

Proč je v Linuxu tolik /dev/tty?

Ttys nejsou jen vstupní/výstupní zařízení. Dělají také speciální práci jako řídící terminál pro relaci, jako je odesílání signálů (Ctrl+C). /dev/ttyNN jsou virtuální konzole, což jsou celoobrazovkové zobrazení na monitoru.

Terminály začínají na /dev/tty1. Na tyto konzole se můžete obvykle přepnout stisknutím kláves Ctrl+Alt+Fn.

např. Ctrl+Alt+F1 vás přenese na první virtuální terminál. V současné době většina linuxových distribucí provozuje X server z tty1. Takže stisknutí Ctrl+Alt+F1 nemusí mít žádný účinek.

$ ps ax | grep Xorg | grep -v grep
 1504 tty1     Ss+   44:57 /usr/bin/Xorg :0 -background none -verbose -auth /var/run/gdm/auth-for-gdm-rfsWyA/database -nolisten tcp vt1

Ctrl+Alt+F2 vás přenese na druhý terminál. Obvykle distribuce spouští přihlašovací program (agetty) na virtuálním terminálu.

$ ps ax | grep tty2 | grep -v grep
31865 tty2     Ss+    0:00 /sbin/agetty tty2 38400

Přihlašovací programy vám poskytují výzvu k přihlášení a umožňují vám přihlásit se pomocí uživatelského jména/hesla. O tom, kde bude spuštěn veškerý přihlašovací program, rozhodují init skripty. Takže v závislosti na tom můžete nebo nemusíte vidět výzvu k přihlášení, řekněme tty9. Chcete-li se vrátit do rozhraní GUI, stiskněte Ctrl+Alt+F1 (jako ve výše uvedeném příkladu).

/dev/tty0 je speciální zařízení, které ukazuje na aktuální terminál. Takže bez ohledu na to, odkud jej spouštíte (jakákoli virtuální konzole), vše, co se čte/zapisuje do tty0, jde do vašeho aktuálního terminálu.

Druhý sloupec v 'ps ax' také uvádí ovládací terminál programu. U některých programů, jako jsou démoni, můžete vidět, že sloupec je '?', což znamená, že nejsou vázány na terminál.

/dev/pts/0 atd. jsou pseudoterminální zařízení, která nejsou připojena k systémovému displeji. například terminál, který získáte, když otevřete terminál gnome nebo jakýkoli jiný terminál GUI. Jedná se o přístup založený na klient-server, kde bude klientská strana exportována do programů, jako je bash. Data odeslaná programem do pseudoterminálu jsou odeslána na stranu „serveru“ (která je obvykle monitorována jiným programem, jako je gnome-terminál). Řídicí proces (strana serveru) určuje, co je třeba odeslat na terminál, což nakonec vidí klient. Tato zařízení vám pomohou otevřít více 'GUI terminálů' bez jakéhokoli omezení ve vašem systému a stále poskytují stejný starý terminál, jako jsou ovládací prvky (ioctl(), nastavení barev, odesílání signálů [Ctrl+C] atd.).


Linux
  1. Linux:Rozdíl mezi /dev/console, /dev/tty a /dev/tty0?

  2. Kdy použít /dev/random vs /dev/urandom?

  3. Kdy mám použít /dev/shm/ a kdy /tmp/?

  1. Proč Linux uvádí jednotky NVMe jako /dev/nvme0 namísto /dev/sda?

  2. Linux:Rozdíl mezi /dev/console , /dev/tty a /dev/tty0

  3. Je špatné propojit /dev/random s /dev/urandom v Linuxu?

  1. Jak vygenerovat náhodné heslo v linuxu pomocí /dev/random

  2. Proč se na některých systémech Linux kořenový souborový systém zobrazuje jako /dev/root místo /dev/<uzel skutečného zařízení>v mtab?

  3. Vytvořte virtuální blokové zařízení, které zapisuje do /dev/null