Virtuální terminál
Virtuální terminál (VT) nebo virtuální konzole (VC) je vlastnost některých unixových operačních systémů, např. Linuxu, BSD, illumosu, UnixWare a MacOSu umožňující na přímo připojeném displeji otevřít ne jednu systémovou konzoli, ale několik sezení (relací) v textovém režimu, které se ovládají klávesnicí, příp. myší přímo připojenou k počítači. Mezi jednotlivými relacemi se lze přepínat a přenášet text jako při použití schránky (clipboardu). Virtuální konzole poskytoval již operační systém XENIX[1] a Concurrent CP/M v 80. letech 20. století.[2]
Linux
[editovat | editovat zdroj]Ve standardní konfiguraci Linuxu je dispozici šest virtuálních konzolí pro přihlášení; je-li spuštěn grafický X Window System, je obvykle dostupný na sedmé virtuální konzoli (tty7); je-li spuštěno současně několik relací X Window System, např. při rychlém přepínání uživatelů (anglicky Fast user switching) nebo při ladění programů pro X na zvláštním X serveru, každá X relace obvykle běží na zvláštní virtuální konzoli.
Mezi virtuálními terminály lze v Linuxu přepínat příkazem chvt
nebo stisknutím funkční nebo kurzorové klávesy s klávesou Alt – například Alt + F1 přepne na virtuální konzoli číslo 1; Alt + Left přepne na předchozí virtuální konzoli a Alt + Right na další virtuální konzoli. V X Window System nebo Wayland compositor je třeba pro přepnutí na virtuální konzoli použít Ctrl + Alt + F1 (tyto implicitní klávesové kombinace lze předefinovat).
Implementační detaily
[editovat | editovat zdroj]Unixové systémy
[editovat | editovat zdroj]Unix a systémy z něj odvozené používaly v minulosti zařízení reprezentující sériové porty, např. RS-232 porty, a poskytovaly pro ně speciální soubory /dev/*
.[3]
Při použití terminálové emulace jsou tato zařízení emulována pomocí dvojice pseudoterminalových zařízení. Tato dvojice se používá pro emulaci fyzického připojení k serveru – přístup k hardwaru počítače poskytuje API operačního systému nebo nějaký jiný software jako např. Rlogin, Telnet nebo SSH.[4] V Linuxu to může být speciální soubor /dev/ptyp0
(pro stranu serveru) a /dev/ttyp0
(pro stranu klienta).
Existuje také speciální soubor pro virtuální konzole jako /dev/console
. V textovém režimu zápis do tohoto speciálního souboru způsobí zobrazení textu na virtuální konzoli a čtení vrátí text, který uživatel zadal z klávesnice. Stejně jako při použití skutečných textových terminálů lze používat speciální escape sekvence, řídicí znaky a funkce, které mohou programy používat, nejsnáze pomocí knihoven jako Ncurses. Pro složitější operace mohou programy používající konzoli a terminál používat speciální ioctl volání systému. Určité odlišnosti jsou mezi zařízeními se jmény vcs (virtuální konzolová obrazovka, anglicky virtual console screen) a vcsa (virtuální konzolová obrazovka s atributy, anglicky virtual console screen with attributes) jako /dev/vcs1
a /dev/vcsa1
.[5]
Některé terminálové emulátory také používají řídicí posloupnosti pro konfigurování chování terminálu, aby usnadnily propojitelnost mezi terminálem a programy, které jej používají, například pro zkonfigurování závorkování obsahu schránky.
Virtuální konzole lze konfigurovat v souboru /etc/inittab
, které čte program Init, který obvykle inicializuje několik virtuálních konzolí pro přihlášení v textovém režimu pomocí procesu getty. X Window System se konfiguruje v /etc/inittab
nebo pomocí X displej manažeru. Několik linuxových distribucí místo init používá systemd, který také umožňuje konfiguraci virtuální konzole.
Nástroje pro příkazový řádek
[editovat | editovat zdroj]Linux používá následující systémové programy pro přístup k virtuální konzoli:
chvt
pro přepnutí aktuální virtuální konzoleopenvt
pro spuštění programu na nové virtuální konzolideallocvt
pro zavření aktuálně nepoužité virtuální konzole
Zavádění systému
[editovat | editovat zdroj]Program startx spustí X Window System na nové virtuální konzoli. Existují i jiné grafické programy, které můohou startovat z konzole (například LinuxTV a MPlayer atd.).
Grafické stanice a servery
[editovat | editovat zdroj]Mnohé grafické unixové pracovní stanice, např. firmy Sun Microsystems nebo Silicon Graphics virtuální konzole nemají. Jediným účelem systémové konzole je opravit systém tak, aby mohlo nastartovat grafické prostředí.
Servery Sun UltraSPARC T1 označované kódovým jménem „Niagara“, které používají hardwarovou virtualizaci s logickými doménami, mají služby virtuální konzole z Control domain.
Odkazy
[editovat | editovat zdroj]Poznámky
[editovat | editovat zdroj]- ↑ Trusted path mechanism for virtual terminal environments [online]. FreePatentsOnline.com [cit. 2008-04-09]. Dostupné online.
Patent Spojených států amerických č. 4945468 uvádí jako první použití v systému Xenix. - ↑ GUZAITIS, Joe. Concurrent CP/M. archive.org. Listopad 1983, s. 257–268. Dostupné online [cit. 2016-03-19].
- ↑ A Brief History of Terminal Emulation|Turbosoft [online]. www.ttwin.com [cit. 2021-10-04]. Dostupné online.
- ↑ Ubuntu Manpage: tty — general terminal interface [online]. manpages.ubuntu.com [cit. 2021-10-04]. Dostupné v archivu pořízeném dne 2021-10-04.
- ↑ Screen dumps [online]. TheLinux dokumentační projekt [cit. 2008-07-31]. K aktuálnímu obsahu obrazovky /dev/ttyN lze přistupovat pomocí zařízení /dev/vcsN (kde „vcs“ znamená „virtuální konzolová obrazovka“). [...] V programu je obvykle lepší používat /dev/vcsaN („virtuální konzolová obrazovka s atributy“) – začíná hlavičkou, která udává počet řádků a sloupců a umístění kurzoru. Viz manuálová stránka vcs(4). Dostupné online.
Reference
[editovat | editovat zdroj]V tomto článku byly použity překlady textů z článků Virtual console na anglické Wikipedii a Terminal emulator na anglické Wikipedii.
- FreeBSD Handbook [online]. Kapitola 3.2 Virtual Consoles and Terminals. Dostupné online.
Související články
[editovat | editovat zdroj]- Virtuální plocha funguje podobně jako virtuální konzole, ale v prostředí grafické plochy místo prostředí příkazového řádku
- Systémová konzole je nevirtuální konzole
- Terminál (informatika) – popisuje, jak se vyvíjel pojetí textového rozhraní v unixových systémech
- Pseudoterminál – zařízení, které používají virtuální konzole
- Emulátor terminálu je aplikace, která má stejnou funkčnost jako textová virtuální konzole
Externí odkazy
[editovat | editovat zdroj]- The Linux keyboard and console HOWTO – Linuxové HOWTO o klávesnici a konzoli
- Linux command chvt to switch vt from cmdline – Linuxový příkaz chvt pro přepínání virtuálních terminálů z příkazového řádku
- XENIX -- Microsoft's Short-lived Love Affair with Unix