GNU/Linux >> Znalost Linux >  >> Linux

Jak Linux používá /dev/tty a /dev/tty0

/dev/tty je řídící tty aktuálního procesu , pro jakýkoli proces, který skutečně otevře tento speciální soubor. Nemusí se nutně jednat o virtuální konzolové zařízení (/dev/tty n ), a může to být pty, sériový port atd. Pokud řídící tty není virtuální konzole, pak proces nemusí interagovat s konzolovými zařízeními, i když je jeho pseudotty skutečně implementován na systémové konzoli. Např. pro shell v emulátoru terminálu pod lokálně běžícím Xserverem tvoří uvedené programy takový řetězec interakcí jako:

Unixový shell
/dev/pts/2 (≡ /dev/tty pro jeho procesy)
ovladač kernel pty
/dev/ptmx
emulátor terminálu
⇕ Protokol X Window
X server
/dev/tty7 (≡ /dev/tty pro server)
systémové konzole
z x c ↿⇂[_̈░░]
uživatel

Použití /dev/tty by userland programy zahrnují:

  • Napište něco do řídicího terminálu, ignorujte všechna přesměrování a roury;
  • Vytvořte ioctl() – viz tty_ioctl(4);
  • Například odpojte od terminálu (TIOCNOTTY).

/dev/tty0 je aktuálně aktivní (tj. viditelná na monitoru) virtuální konzole operačního systému . Tento speciální soubor pravděpodobně není významně využíván systémovým softwarem, ale /dev/console je prakticky „alias“ pro tty0 a /dev/console má velké využití démony syslog a někdy i samotné jádro.

Experiment, abyste ukázali rozdíl:spusťte root shell na tty3 (Ctrl +Alt +F3 ) nebo v emulátoru terminálu. Nyní

# sleep 2; echo test >/dev/tty

pak rychle Ctrl +Alt +F2 , počkejte dvě sekundy a stiskněte Ctrl +Alt + cokoli zpět. Kde vidíte výstup?
A nyní stejný test pro /dev/tty0 .


/dev/tty je řídící tty pro jakýkoli proces. Toto může být váš shell.

Pokud váš proces nemá řídicí tty, /dev/tty není k dispozici, např. platí pro démony.

Pokud váš proces má řídicí tty, pak /dev/tty je alias ovladače skutečného ovladače tty, který váš proces používá pro stdin, stdout nebo stderr.

Viz man -s7d tty Pro více informací. Všimněte si, že část, ve které je tato příručka, se může mezi různými OS lišit a neměla by být zaměňována s manuálovou stránkou v části 1. Zkontrolujte tedy např. man -k tty .


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

  2. Jak přenosné jsou /dev/stdin, /dev/stdout a /dev/stderr?

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

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

  2. jádro:deaktivace /dev/kmem a /dev/mem

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

  1. Jak vyměnit vadný pevný disk v softwarovém RAID systému Linux

  2. Proč jsou < nebo > vyžadovány pro použití /dev/tcp

  3. Rozdíly mezi /dev/sda a /dev/sda1