Terminál (informatika)

Terminál je v informatice označení pro jednoduché elektronické nebo elektro-mechanické zařízení sloužící pro komunikaci s počítačem. Terminál vytváří vzdálené uživatelské rozhraní (anglicky Human-Machine Interface, HMI), pomocí kterého uživatel počítač ovládá, spouští programy, pořizuje vstupy pro programy (typicky pomocí klávesnice) a počítač na něm zobrazuje výstupy (typicky na monitoru). Původní terminály byly znakové a sloužily operátorům pro připojení k sálovým počítačům pomocí sériového kabelu či modemu a telefonní linky, později i počítačové sítě. Později vznikly grafické terminály, které umožňovaly využívat grafické uživatelské rozhraní, které jsou dnes označovány jako tenký klient. V současné době se terminály již nepoužívají, místo nich jsou k dispozici emulátory terminálu (PuTTY, xterm, konsole a další).

Textový terminál

Znakový terminál používaný kolem roku 1982.
Terminál zasílá programu vstup z klávesnice a zobrazuje jeho výstup na displeji.

Terminál (někdy též terminál, znakový terminál, textový terminál) bylo specializované jednoduché zařízení (klávesnice a obrazovka), které umožňovalo operátorům počítač využívat. V 60. letech 20. století existovaly pouze extrémně drahé sálové počítače (mainframe), takže firma měla typicky jen jeden počítač (v tzv. výpočetním středisku). Takový počítač měl stejně jako dnes pouze jednu systémovou konzoli, tj. monitor a klávesnici připojenou přímo k počítači. Ostatní uživatelé počítače (programátoři, obsluha programů, též pořizování, resp. vkládání dat) se k počítači připojovali právě pomocí terminálu ze sousedních místností nebo vzdáleně přes telefonní linku (pomocí modemu).

Řádkový terminál

První terminály byly velmi jednoduché. Stisknutí klávesy znamenalo vyslání kódu (např. ASCII, EBCDIC) po sériové lince do počítače (resp. jako vstup do spuštěného programu). Pokud program znak vytiskl, byl odeslán po sériové lince do terminálu, kde byl odpovídající znak zobrazen na monitoru (na pozici kurzoru). Znaky se zobrazovaly na pozicích pevně dané šachovnice (dnes typicky 25 řádků a 80 sloupců), nebylo možné volit barvu ani velikost či font písma (maximálně inverzní zobrazení znaku či podtržení). Terminál měl podobu znaků uloženu ve své pevné paměti ROM v podobě rastrové matice. Označovaly se jako hloupé terminály (anglicky dumb terminal). Pracovaly pouze s řádky (proto též označení řádkové terminály) a pracovaly podobně jako psací stroj nebo počítačová tiskárna, koncepčně vycházely z dálnopisu. Výstup začínal v levém horním rohu, kde byl umístěn kurzor. Nový znak byl vytištěn na jeho místo a kurzor se posunul o jednu pozici vpravo. Speciální znak odřádkování (stisk klávesy Enter) způsobil přechod na začátek následujícího řádku. Když se obrazovka zaplnila až do posledního řádku, došlo k tzv. odrolování tak, že se celý obsah obrazovky posunul o jeden řádek výše. Tím se vrchní řádek ztratil a dole se jeden uvolnil pro další výstup znaků. Celý postup se neustále opakoval. Text se upravoval pomocí speciálních editorů (např. ed).

Celoobrazovkový terminál

Pozdější terminály přidávaly další vlastnosti. Velkým pokrokem byly celoobrazovkové terminály, které umožňovaly pomocí speciálních řídících kódů umístit kurzor na libovolnou pozici, což umožnilo vytvářet pokročilejší programy – například textové editory, kde je neustále vidět celá stránka a obsah textu lze měnit najetím kurzoru na požadovanou pozici, případně textové programy s menu a tlačítky (tzv. textové uživatelské rozhraní). Někdy bylo možné i znaky předefinovávat, což umožňovalo zobrazovat poměrně toporným způsobem i grafické prvky. Přibyly též možnosti změny barev písma nebo pozadí.

Komunikaci pomocí textového rozhraní, které vycházelo ze schopností textového terminálu, využívaly i starší systémy. Příkazový řádek zobrazený na terminálu používal například systém CP/M, DOS (interpret příkazů COMMAND.COM), Unix (všechny unixové shelly). V Microsoft Windows je v grafickém prostředí stále k dispozici emulátor terminálu v podobě programu cmd.exe, který příkazový řádek a celoobrazovkový textový terminál poskytuje.

Systémová konzole

Podrobnější informace naleznete v článku Systémová konzole.

Systémová konzola (někdy i jen konzole) je terminál, který je napevno spojen s počítačem. Počítač má typicky jen jedinou systémovou konzoli. U sálových počítačů se systémová konzola používala jen pro správu počítače. Pro běžnou práci s počítačem se používaly terminály. Dnes se naopak pro práci s počítačem používá konzola. Schopnosti konzoly jsou vždy o něco lepší, než terminálu (rychlost, schopnosti akcelerace GPU atp.).

Grafický terminál

Online terminál v Egyptě

Grafické uživatelské rozhraní vyžaduje zobrazování libovolných grafických prvků, a proto grafický terminál umožňuje ovládat výstup na úrovni jednotlivých bodů. Grafické terminály rozdělujeme na vektorové a rastrové. Pro zobrazování písma se používají fonty, které definují vzhled jednotlivých písmen.

V unixovém grafickém prostředí X Window System ovládá grafický terminál X server, ke kterému se připojují aplikace jako klienti. Pro komunikaci se používá X protokol, což umožňuje úplnou nezávislost programů a zobrazovacích zařízení. Programy tak mohou běžet na jednom počítači a na jiné zobrazovat svůj (grafický) výstup.

V Microsoft Windows je grafické prostředí pevně svázáno se systémem. Pro připojení ke grafickému terminálu se používá protokol RDP, který umožňuje přenášet i výstup jednotlivých programů.

Pro vzdálený přístup ke grafickému terminálu je možné využít program VNC a další.

Tenký klient

Podrobnější informace naleznete v článku Bezdisková stanice.

Grafický terminál, který umožňuje pracovat se vzdáleným počítačem, se nazývá tenký klient (též bezdisková stanice).

Emulátor terminálu

Podrobnější informace naleznete v článku Emulátor terminálu.

Emulátor terminálu je speciální aplikace, která v grafickém uživatelském prostředí vytváří prostředí (okno), uvnitř kterého je emulován textový terminál. Mezi nejznámější patří PuTTY (pro Windows i unixové systémy), xterm (vzorová emulace pro X Window System), gnome-terminal, konsole, termux (pro Android) a další.

Spolupráce aplikace s terminálem

Pokud chce program změnit pozici kurzoru (tj. vytisknout následující znak na předem danou pozici šachovnice se znaky na textovém terminálu), změnit barvu písma, podkladu, zapnout podtržení, smazat obrazovku nebo jinou akci, musí terminálu vyslat určitou řídící sekvenci znaků, která se nezobrazí, ale způsobí změnu v následujícím chování terminálu. Tyto řídící sekvence se liší podle typu terminálu, protože terminály vyráběly různé firmy. Aby aplikace věděla, jaké řídící sekvence použít (např. escape sekvence pro xterm, řídící kódy pro terminál VT100 atd.), sděluje terminál při přihlášení uživatele svůj typ v podobě řetězce (například xterm, vt100, linux atd.). Tato identifikace je uložena do proměnné prostředí TERM, odkud si ji mohou aplikace přečíst. Protože různých typů terminálů, jejich schopností a příslušných řídících kódů je velmi mnoho, vznikly specializované knihovny, které poskytují programátorům API nezávislé na použitém terminálu. Knihovna pak podle obsahu proměnné TERM vybere ze své databáze příslušné řídící kódy a odešle je terminálu. Mezi nejznámější knihovny patří termcap, terminfo či curses.

V unixových systémech uživatel může v textovém terminálu vypsat proměnnou prostředí TERM například takto:

echo $TERM

V prostředí počítačů IBM PC kompatibilních je ovládání terminálu dáno použitou grafickou kartou. Dříve se používal standard MDA, CGA nebo EGA. Od 90. let 20. století je používán standard VGA, pro terminál pak jeho klasický textový režim s rozlišením 25×80 (řádky×sloupce). V systému DOS nebyl typ terminálu nijak aplikacím předáván, takže tomu nebylo zvykem ani v pozdější době v systémech Microsoft Windows.

Režimy terminálu

Terminály mohou operovat v mnoha různých režimech, vztahující se k tomu, kdy pošlou vstup zadaný uživatelem na klávesnici do přijímacího systému (bez ohledu na to může být):

  • Znakový režim (tzv. okamžitý znakový režim): V tomto případě je psaný vstup okamžitě odesílán do přijímacího systému
  • Řádkový režim (tzv. okamžitý řádkový režim): V tomto případě, terminál poskytuje místní řádkovou editační funkci a odesílá celou vstupní řádku poté, co byla lokálně editována, když uživatel stiskl klávesu „návrat“ (return). Takzvaný „řádkový režim terminálu“ pracuje výhradně v tomto režimu.
  • Blokový režim (tzv. okamžitý obrazovkový režim). V tomto režimu terminál poskytuje lokální celoobrazovkovou datovou funkci. Uživatel může vstup vložit do několika polí ve formuláři na monitoru (ten je terminálu definován přijímacím systémem), posunování kurzoru po obrazovce za použití tlačítek Tabulátor, směrových šipek klávesnice a provádění editačních funkcí za použití kláves Insert, Delete, Backspace a tak dále. Terminál odesílá, pouze dokončené formuláře skládajících se ze všech vložených dat vložených do bloků, do přijímacího systému, za předpokladu, že uživatel stiskne klávesové tlačítko Enter.

Existuje rozdíl mezi klávesami Enter a klávesou return. V nějakých vícerežimových terminálech mohou tato tlačítka měnit režimy. Stisknutí tlačítka Enter, když uživatel není v blokovém režimu, neprovádí stejný příkaz jako tlačítko return. Zatímco klávesa return způsobí, že vstupní řádek bude odeslán do střediskového počítače v okamžitém řádkovém režimu, tlačítko enter spíše způsobí, že terminál bude vysílat obsah řádku znaků, tam kde je zrovna umístěn kurzor.

Odlišné operační systémy vyžadují různé stupně režimové podpory, když jsou terminály využívány jako počítačové terminály. Terminálové rozhraní definované unixovým standardem POSIX vůbec nepřizpůsobuje blokové režimy terminálů a jen zřídkakdy vyžaduje po terminálu samotném, aby byl v tzv. okamžitém řádkovém režimu od té doby, kdy je po operační systémech vyžadována podpora POSIXu, kde terminálový ovladač zařízení v operačním systému emuluje místní odezvu v terminálu a provede řádku editační funkce. Nejčastěji a zejména tak, že systém počítačového terminálu podporuje režim nekanonického vstupu, jsou terminály POSIX systému v tzv. okamžitém znakovém režimu. Oproti tomu, terminály IBM 3270 propojené do MVS systémů vždy vyžadují blokový režim.

Externí odkazy

Média použitá na této stránce

Egyptian-online-terminal-front.jpg
Autor: No machine-readable author provided. Ebief assumed (based on copyright claims)., Licence: CC BY-SA 2.5

An Egyptian online terminal in a shopping street in the city of Hurghada. It didn't work by the way...

Photographer is Espen Birkelund. Shot with Sony DSC-V1
Stdstreams-notitle.svg
Schema of POSIX and C standard streams (stdio). Illustrates a text terminal, the program in execution (process), the streams standard input stdin, standard output stdout, standard error stderr.