Emulátor terminálu - Terminal emulator

xterm , emulátor terminálu určený pro X Window System
Windows Terminal , emulátor terminálu s otevřeným zdrojovým kódem pro Windows 10

Emulátor terminálu , terminál aplikace , nebo termín , je počítačový program , který emuluje video terminál uvnitř nějakého jiného zobrazovacího architektury. Ačkoli obvykle synonymem s pláštěm nebo textový terminál , termín koncových krytů všech vzdálených terminálů, včetně grafického rozhraní. Emulátor terminálu v grafickém uživatelském rozhraní se často nazývá terminálové okno .

Okno terminálu umožňuje uživateli přístup k textovému terminálu a všem jeho aplikacím, jako jsou rozhraní příkazového řádku (CLI) a textové uživatelské rozhraní (TUI). Ty mohou být spuštěny buď na stejném počítači, nebo na jiném prostřednictvím telnetu , ssh nebo telefonického připojení . V operačních systémech podobných Unixu je běžné mít k místnímu počítači připojeno jedno nebo více oken terminálu.

Terminály obvykle podporují sadu únikových sekvencí pro ovládání barvy, polohy kurzoru atd. Příklady zahrnují rodinu standardů koncových řídicích sekvencí známých jako ECMA-48 , ANSI X3.64 nebo ISO/IEC 6429 .

Dějiny

Počítačové terminály

„Inteligentní“ terminál provádí vlastní zpracování, což obvykle znamená, že je vestavěn mikroprocesor, ale ne všechny terminály s mikroprocesory provedly skutečné zpracování vstupu: hlavní počítač, ke kterému byl připojen, by musel rychle reagovat na každý stisk klávesy. Termín „inteligentní“ v této souvislosti pochází z roku 1969.

Mezi pozoruhodné příklady patří IBM 2250 , předchůdce IBM 3250 a IBM 5080, a IBM 2260 , předchůdce IBM 3270 , představený s System/360 v roce 1964.

IBM 2250 Model 4, včetně světelného pera a klávesnice s naprogramovanými funkcemi
Většina terminálů byla připojena k minipočítačům nebo sálovým počítačům a často měla zelenou nebo oranžovou obrazovku. Terminály obvykle komunikují s počítačem přes sériový port přes nulový modemový kabel, často pomocí sériového rozhraní EIA RS-232 nebo RS-422 nebo RS-423 nebo proudové smyčky. Systémy IBM obvykle komunikovaly prostřednictvím sběrnicového a tagového kanálu, koaxiálního kabelu pomocí proprietárního protokolu, komunikačního spojení pomocí binární synchronní komunikace nebo protokolu SNA společnosti IBM , ale pro mnoho počítačů DEC, Data General a NCR (a tak dále) existovalo mnoho vizuálních zobrazit dodavatele konkurující výrobci počítačů o terminály pro rozšíření systémů. Ve skutečnosti byl návrh instrukce pro Intel 8008 původně koncipován v Computer Terminal Corporation jako procesor pro Datapoint 2200 .

Od představení IBM 3270 a DEC VT100 (1978) si uživatel a programátor mohli všimnout významných výhod v technologických vylepšeních VDU, ale ne všichni programátoři využili funkcí nových terminálů ( zpětná kompatibilita v terminálech VT100 a novějších Televideo) například s „hloupými terminály“ umožnilo programátorům nadále používat starší software).

Některé němé terminály dokázaly reagovat na několik únikových sekvencí, aniž by potřebovaly mikroprocesory: používaly více desek s plošnými spoji s mnoha integrovanými obvody ; jediným faktorem, který klasifikoval terminál jako „inteligentní“, byla jeho schopnost zpracovávat vstup uživatele v terminálu-nepřerušovat hlavní počítač při každém stisknutí klávesy-a odesílat blok dat najednou (například: když uživatel skončil celé pole nebo formulář). Většina terminálů na začátku 80. let, jako ADM-3A, TVI912, Data General D2, DEC VT52 , i přes zavedení terminálů ANSI v roce 1978, byly v podstatě „hloupé“ terminály, i když některé z nich (například pozdější ADM a TVI modely) měly primitivní schopnost blokového odesílání. Běžné rané využití výkonu místního zpracování zahrnovalo funkce, které neměly mnoho společného se zpracováním dat z hostitelského počítače, ale přidávaly užitečné funkce, jako je tisk na místní tiskárnu, přenos sériového dat do vyrovnávací paměti a sériové handshaking (aby vyhovovaly vyšším rychlostem sériového přenosu) ) a propracovanější charakterové vlastnosti displeje a také schopnost přepínat režimy emulace tak, aby napodobovaly modely konkurentů, které se staly stále důležitějšími prodejními funkcemi zejména v 80. letech minulého století, kdy kupující mohli ve větší míře kombinovat vybavení různých dodavatelů než dříve.

Pokrok v mikroprocesorech a nižší náklady na paměť umožnily terminálu zvládnout editační operace, jako je vkládání znaků do pole, které dříve vyžadovalo opětovné odeslání celé obrazovky plné znaků z počítače, pravděpodobně pomalým modemová linka. Přibližně v polovině 80. let minulého století by nejinteligentnější terminály, jejichž cena byla nižší než u většiny hloupých terminálů před několika lety, mohly poskytnout dostatek uživatelsky přívětivých místních úprav dat a odeslat vyplněný formulář na hlavní počítač. Pracovní stanice, jako je Televideo TS-800, poskytující ještě více možností zpracování, by mohly provozovat CP/M-86 , čímž by se odstranil rozdíl mezi terminálem a osobním počítačem.

Další z motivací pro vývoj mikroprocesoru bylo zjednodušení a omezení elektroniky potřebné v terminálu. Díky tomu bylo také možné načíst několik „osobností“ do jednoho terminálu, takže Qume QVT-102 mohl napodobovat mnoho populárních terminálů dne, a tak byl prodán organizacím, které nechtěly provádět žádné softwarové změny. Mezi často emulované typy terminálů patří:

ANSI X3.64 standardní escape kód vyrábí jednotnost do jisté míry, ale významné rozdíly zůstaly. Například terminály VT100 , Heathkit H19 v režimu ANSI, Televideo 970, Data General D460 a Qume QVT-108 všechny dodržovaly standard ANSI, přesto mohou existovat rozdíly v kódech funkčních kláves , jaké znaky byly k dispozici, odesílání bloků polí ve formulářích, zařízení „cizích“ znaků a manipulace s tiskárnami připojenými k zadní části obrazovky.

Emulátory

Místní ozvěna

Koncové emulátory mohou implementovat funkci místního echa , která může být chybně pojmenována „ poloduplex “ nebo stále mírně nesprávně „echoplex“ (což je formálně spíše mechanismus detekce chyb než možnost zobrazení vstupu).

Režim po řádku/místní úpravy

Terminálové emulátory mohou implementovat místní úpravy, známé také jako „režim line-at-a-time“. Toto je také mylně označováno jako „poloduplex“. V tomto režimu emulátor terminálu odesílá do hostitelského systému pouze úplné vstupní řádky. Uživatel zadá a upraví řádek, ale při úpravě je držen lokálně v emulátoru terminálu. Není přenášeno, dokud uživatel neoznámí jeho dokončení, obvykle ↵ Enterklávesou na klávesnici nebo nějakým tlačítkem „odeslat“ v uživatelském rozhraní. V tom okamžiku je vyslán celý řádek. Režim line-at-a-time implikuje místní echo, protože jinak uživatel nebude moci vidět řádek, jak je upravován a konstruován. Režim line-at-a-time je však nezávislý na režimu echa a nevyžaduje místní echo. Při zadávání hesla je například možné zadávání po řádcích s lokálními úpravami, ale místní echo je vypnuto (jinak by se zobrazilo heslo).

Složitosti režimu line-at-a-time jsou doloženy možností režimu line-at-a-time v protokolu telnet. Aby byla implementována správně, implementace Network Virtual Terminal poskytovaná programem emulátoru terminálu musí být schopna rozpoznat a správně se vypořádat s událostmi „přerušení“ a „přerušení“, které dorazí uprostřed lokální úpravy řádku.

Synchronní terminály

V asynchronních terminálech mohou data kdykoli proudit jakýmkoli směrem. V synchronních terminálech protokol řídí, kdo může kdy odesílat data. Terminály založené na IBM 3270 používané u sálových počítačů IBM jsou příkladem synchronních terminálů . Pracují v zásadě v režimu „obrazovky v čase“ (také známý jako blokový režim ). Uživatelé mohou na stránce provést řadu změn, než odešlou aktualizovanou obrazovku na vzdálený počítač jako jedinou akci.

Terminálové emulátory, které simulují protokol 3270, jsou k dispozici pro většinu operačních systémů, a to jak pro ty systémy pro správu, jako je z9 , tak pro ty, které používají odpovídající aplikace, jako je CICS .

Mezi další příklady synchronních terminálů patří IBM 5250 , ICL 7561, Honeywell Bull VIP7800 a Hewlett-Packard 700/92.

Virtuální konzole

Virtuální konzoly , nazývané také virtuální terminály, jsou emulované textové terminály pomocí klávesnice a monitoru osobního počítače nebo pracovní stanice. Slovo „text“ je klíčové, protože virtuální konzoly nejsou terminály GUI a neběží v grafickém rozhraní. Virtuální konzole se nacházejí na většině unixových systémů. Používají se především k přístupu a interakci se servery bez použití grafického desktopového prostředí.

Příklady emulovaných terminálů

Mnoho terminálové emulátory byly vyvinuty pro terminály, jako VT52 , VT100 , VT220 , VT320 , IBM 3270/8/9 / E , IBM 5250 , IBM 3179G , data Všeobecné D211, Hewlett Packard HP700 / 92, Sperry / Unisys 2000 series UTS60 , Burroughs/Unisys řady A T27/TD830/ET1100, ADDS ViewPoint, Sun console, QNX , AT386, SCO-ANSI, SNI 97801, Televideo a Wyse 50/60. Kromě toho byly vyvinuty programy pro emulaci jiných emulátorů terminálů, jako jsou xterm a různé konzolové terminály (např. Pro Linux ). Nakonec některé emulátory jednoduše odkazují na standard, například ANSI . Tyto programy jsou k dispozici na mnoha platformách od DOS a Unix přes Windows a macOS až po vestavěné operační systémy, které se nacházejí v mobilních telefonech a průmyslovém hardwaru.

Podrobnosti o implementaci

Unixové systémy

V minulosti Unix a systémy podobné Unixu používaly zařízení se sériovým portem, jako jsou porty RS-232 , a poskytovaly pro ně /dev/* soubory zařízení .

S terminálovými emulátory jsou tyto soubory zařízení emulovány pomocí dvojice pseudoterminálních zařízení. Tento pár se používá k emulaci fyzických portů/připojení k koncovému koncovému bodu hostitele - hardwaru počítače poskytovanému rozhraními API operačního systému, některým dalším softwarem, jako je rlogin , telnet nebo SSH nebo jiným. Například v systémech Linux by to byla /dev/ptyp0(pro stranu master) a /dev/ttyp0(pro stranu slave) pseudoterminální zařízení.

Existují také speciální soubory virtuální konzoly jako /dev/console. V textovém režimu zápis do souboru zobrazuje text na virtuální konzole a čtení ze souboru vrací text, který uživatel zapíše do virtuální konzoly. Stejně jako u jiných textových terminálů existují i ​​speciální únikové sekvence , řídicí znaky a funkce, které může program používat, nejsnadněji prostřednictvím knihovny, jako jsou ncurses . U složitějších operací, programy mohou používat konzolu a terminálových speciální ioctl systémová volání. Zařízení lze porovnávat pomocí vzorů vcs („obrazovka virtuální konzoly“) a vcsa („obrazovka virtuální konzoly s atributy“) jako /dev/vcs1a /dev/vcsa1.

Virtuální konzole lze konfigurovat v souboru /etc/inittabčtené init - obvykle začíná v textovém režimu přihlašovací proces getty na několik virtuálních konzolí. Systém X Window lze konfigurovat ve správci zobrazení X/etc/inittab nebo pomocí něj . Řada linuxových distribucí používá místo init systemd , což také umožňuje konfiguraci virtuální konzoly.

Nástroje CLI

Mezi typické systémové programy Linux používané pro přístup k virtuálním konzolám patří:

  • chvt pro přepnutí aktuální virtuální konzoly
  • openvt ke spuštění programu na nové virtuální konzole
  • deallocvt zavřete aktuálně nepoužívanou virtuální konzolu

Načítání systému

Program startx spustí X Window System na nové virtuální konzole. Existují i ​​další grafické programy, které lze spustit z konzoly (např. LinuxTV a MPlayer atd.)

Viz také

Poznámky

Reference

  • Bangia, Ramesh (2010). „terminál linkového režimu“. Slovník informačních technologií . Laxmi Publications, Ltd. ISBN 978-93-8029-815-3.
  • Daintith, John (2004). "echo". Oxfordský slovník výpočetní techniky (5. vydání). Oxford University Press. ISBN 978-0-19-860877-6.
  • Miller, Philip M. (2009). TCP/IP - Průvodce konečným protokolem . 2 – Aplikace, přístup a zabezpečení dat. Universal-Publishers. ISBN 978-1-59942-493-4.
  • Stevens, W. Richard ; Wright, Gary R. (1994). Ilustrovaný TCP/IP . Profesionální výpočetní řada Addison-Wesley. 1: Protokoly. Addison-Wesley. ISBN 978-0-201-63346-7.
  • Weik, Martin H. (2000). Počítačový věda a komunikační slovník . 1 . Springer. ISBN 978-0-7923-8425-0. Chybí nebo je prázdný |title=( nápověda )

externí odkazy