GNU/Linux >> Znalost Linux >  >> Linux

Jaký typ terminálu podporovat při implementaci emulátoru terminálu?

Zavřeno . Tato otázka je založena na názoru. Momentálně nepřijímá odpovědi.

Chcete zlepšit tuto otázku? Aktualizujte otázku, aby na ni bylo možné odpovědět pomocí faktů a citací úpravou tohoto příspěvku.

Zavřeno před 4 lety.


Vylepšete tuto otázku

Slyšel jsem, že VT100 je de facto standard. Znamená to, že mohu podporovat pouze VT100 a můj terminál pak může bez velkých problémů fungovat pro existující aplikace příkazového řádku? Pokud ne, jak zajistit, aby byl terminál praktický? Existuje nějaká reference, která může pomoci dosáhnout tohoto cíle?

Přijatá odpověď:

Chystáte se přehřát Thomase Dickeyho.

Ignorujte samizdat, který už léta koluje o terminálech VT10x. Hodně z toho je špatně. DEC VT100, VT101 a VT102 implementovaly velmi specifickou sadu funkcí, které se lze naučit čtením jejich dokumentu.

To není co lidé, kteří nesprávně obcházejí termíny vt100 a vt102 ve skutečnosti však znamenat. Často se mluví o emulaci terminálu, která dokáže mnohem více než to, co dokázal skutečný VT10x, a také mnohem méně . Skutečný DEC VT102 měl připojenou sériovou tiskárnu a například řídicí sekvence pro přístup k ní. Navíc není mají mnoho řídicích sekvencí z pozdějších terminálových emulátorů a skutečných terminálů, které lidé mylně připisují „vt102“. Neměla například žádnou koncepci změn barev SGR.

Máte dvě základní možnosti:

  • Implementujte něco, co je kompatibilní s existujícím typem terminálu, který je definován v databázích termcap/terminfo. Pokud to uděláte, musíte to udělat správně a přesně zkopírovat veškeré popsané chování stávajícího typu terminálu. (To dělá emulátor terminálu sady nástrojů nosh, který v Linuxu emuluje linux typ terminálu. Musí zkopírovat linux svérázné a omezené rozšířené kódování kláves a funkčních kláves.)
  • Implementujte svůj vlastní typ terminálu, jehož chování si navrhnete vy, který pak musíte zařadit do databáze termcap/terminfo. Přesně řečeno, emulátor terminálu PuTTY to dělá. Správný popis terminfo je putty , putty-256color nebo putty-sco .

U prvního je to, co je standardní, irelevantní, protože popsané chování musíte zkopírovat bez ohledu na to, jak nestandardní může být. U těch druhých de facto standardy nehledejte. Podívejte se na skutečné standardy, z nichž některé existují již od roku 1976.

  • ECMA-48 (poprvé zveřejněný v roce 1976 a později přijatý jako norma ISO/IEC, ISO/IEC 6429) popisuje:
    • řídicí kódy C0,
    • Řídicí kódy C1 (které jsou málo známé, ale nabízejí několik užitečných věcí, jako je nastavení/vymazání zarážek tabulátoru a index vpřed/vzad)
    • 7bitové aliasy pro všechny řídicí kódy C1 (například ESC [ je 7bitový alias pro skutečné 8bitový řídicí znak U+009B),
    • řídicí sekvence zavedené CSI (pro které existuje ve standardu obecná syntaxe, kterou mnoho samizdatových analyzátorů řídicích sekvencí chybuje),
    • a spoustu dalších věcí.
  • ISO/IEC 2022 popisuje přepínání mezi 7bitovými znakovými sadami. Pokud se chystáte implementovat schopnost UTF-8 od začátku, ISO/IEC 2022 je nejlepší úplně ignorovat, protože Markus Kuhn a vynálezci mosh vám to řekne.
  • ISO/IEC 8613-6 (publikováno v roce 1989 a revidováno v roce 1994) popisuje rozšíření ECMA-48 pro barevné kontrolní sekvence SGR, a to jak výběr „indexovaných barev“ z palety, tak „přímé barvy“ RGB. (Oba přímé barvy a indexovaná barva jsou definovány v ISO/IEC 8613-2. To druhé pravděpodobně budete znát pod samizdatovým názvem „256 barev“.)

    Důležitá poznámka: Téměř všechny implementace implementují tento standard nesprávně, protože pracovaly ze samizdatu (nebo se jednoduše navzájem zkopírovaly) než ze skutečného standardu. Norma v §13.1.8 říká, že se má použít dvojtečka (: , „3/10“) jako oddělovač dílčích parametrů; téměř všechny implementace chybně používají středník (; ), což představuje nejednoznačnost analýzy. Mnoho softwarů se s touto chybou vyrovnalo.

Související:Co tento proces STAT indikuje?

Další čtení

  • Ovládací funkce pro kódované znakové sady . ECMA-48. 5. vydání. 1991. ECMA International.
  • Informační technologie — Open Document Architecture (ODA) a formát výměny:Dokumentové struktury . T.412. Mezinárodní telekomunikační unie.
  • Informační technologie — Open Document Architecture (ODA) a formát výměny:Architektury znakového obsahu . T.416. Mezinárodní telekomunikační unie.
  • Informační technologie – Open Document Architecture (ODA) a Interchange Format:Architektury znakového obsahu . ISO/IEC 8613-6:1994. Mezinárodní organizace pro standardizaci.
  • Markus Kuhn (2009). "Jaké jsou problémy související s emulátory terminálu UTF-8?". Časté dotazy ohledně UTF-8 a Unicode pro Unix/Linux .
  • Keith Winstein, Anders Kaseorg a kol. (2012). „Unikání uzamčení podle ISO 2022“. technické informace mosh .
  • Referenční příručka k programátoru VT420 . EK-VT420-RM-002. února 1992. Digitální.
  • Informace o programátoru video terminálu VT520/VT525 . EK-VT520-RM. Červenec 1994. Digitální.
  • Thomas E. Dickey (1997). "Co je VT220?". Často kladené otázky xterm . neviditelný ostrov.

Linux
  1. Jaký je váš oblíbený emulátor terminálu?

  2. Jaký je váš oblíbený emulátor terminálu Linux?

  3. Jaký je váš oblíbený linuxový terminálový trik?

  1. Jak otestovat, jaký Shell používám v terminálu?

  2. Je terminál Gnome typem prostředí bez přihlášení?

  3. Které terminálové emulátory podporují režim ovládání Tmux?

  1. Jaký je váš oblíbený trik s linuxovým terminálem?

  2. Jaký protokol/standard používají terminály?

  3. Vztah mezi řídicími znaky, signály a terminálem?