GNU/Linux >> Linux の 問題 >  >> Linux

ターミナルエミュレータを実装する場合、どのタイプのターミナルをサポートするのですか?

閉鎖 。この質問は意見に基づいています。現在、回答を受け付けていません。

この質問を改善したいですか? この投稿を編集して、事実と引用で回答できるように質問を更新してください。

4年前に閉鎖されました。


この質問を改善する

VT100がデファクトスタンダードだと聞いています。 VT100をサポートできれば、端末が既存のコマンドラインアプリケーションで大きな問題なく動作できるということですか?そうでない場合、その端末が実用的であることを確認する方法は?この目標を達成するのに役立つ参考資料はありますか?

承認された回答:

トーマス・ディッキーが過熱しそうです。

VT10x端末について何年にもわたって流通しているsamizdatは無視してください。それの多くは間違っています。 DEC VT100、VT101、およびVT102は、非常に特殊な機能のセットを実装しました。これらの機能は、ドキュメントを読むことで学ぶことができます。

それはではありません vt100という用語を誤って使用している人 およびvt102 しかし、実際には意味します。多くの場合、彼らが話しているのは、はるかに多くのことを行うターミナルエミュレーションです 実際のVT10xが行ったものよりも、はるかに少ない 。実際のDECVT102には、シリアルプリンタが接続されており、たとえば、それにアクセスするための制御シーケンスがあります。さらに、しませんでした 後の端末エミュレーターや実際の端末からの制御シーケンスの多くがあり、人々は誤って「vt102」と見なしています。たとえば、SGRの色の変更の概念はありませんでした。

2つの基本的な選択肢があります:

  • termcap/terminfoデータベースで定義されている既存の端末タイプと互換性のあるものを実装します。これを行う場合は、既存の端末タイプで説明されているすべての動作を正確にコピーして、正しく行う必要があります。 (noshツールセットのターミナルエミュレータはこれを行い、Linuxでlinuxをエミュレートします。 端子タイプ。 linuxをコピーする必要があります 端末タイプの風変わりで制限された拡張キーとファンクションキーのエンコーディング。)
  • 独自の端末タイプを実装します。その動作はユーザーが設計したものであり、termcap/terminfoデータベースに含める必要があります。厳密に言えば、PuTTYターミナルエミュレータはこれを行います。正しいterminfoの説明はputtyです。 、putty-256color 、またはputty-sco

前者の場合、標準であるかどうかは関係ありません。標準ではない場合でも、説明されている動作をコピーする必要があるためです。後者の場合、事実上の標準を探しないでください。 実際を見てください 標準。そのうちのいくつかは1976年以来存在しています。

  • ECMA-48(1976年に最初に発行され、後にISO / IEC規格、ISO / IEC 6429として採用された)は次のように説明しています。
    • C0制御コード
    • C1制御コード(ほとんど知られていませんが、タブストップの設定/クリアや順方向/逆方向のインデックスなど、いくつかの便利な処理を行います)
    • すべてのC1制御コードの7ビットエイリアス(たとえば、ESC [ actualの7ビットエイリアスです。 8ビット制御文字U+009B)、
    • CSIによって導入された制御シーケンス(多くのsamizdatで記述された制御シーケンスパーサーが間違っているという一般的な構文が標準にあります)、
    • その他たくさんのこと。
  • ISO / IEC 2022は、7ビット文字セット間の切り替えについて説明しています。最初からUTF-8機能を実装する場合は、MarkusKuhnとmoshの発明者として、ISO /IEC2022を完全に無視するのが最善です。 教えてくれます。
  • ISO / IEC 8613-6(1989年に公開され、1994年に改訂)では、パレットからの「インデックスカラー」選択と「ダイレクトカラー」RGBの両方のカラーSGR制御シーケンスのECMA-48の拡張について説明しています。 (両方のダイレクトカラー およびインデックスカラー ISO /IEC8613-2で定義されています。後者は「256色」というサミズダートの名前でおそらくご存知でしょう。)

    重要な注意: ほとんどすべての実装は、実際の標準からではなくsamizdatから機能した(または単に相互にコピーした)ため、この標準を誤って実装しています。規格では、§13.1.8でコロンを使用するように規定されています(: 、「3/10」)サブパラメータセパレータとして。ほとんどすべての実装で誤ってセミコロン(;)が使用されています )、構文解析のあいまいさを導入します。多くのソフトウェアがこのエラーに対応しています。

関連:このプロセスSTATは何を示していますか?

さらに読む

  • コード化された文字セットの制御機能 。 ECMA-48。第5版。 1991年。ECMAインターナショナル。
  • 情報技術—オープンドキュメントアーキテクチャ(ODA)と交換形式:ドキュメント構造 。 T.412。国際電気通信連合。
  • 情報技術—オープンドキュメントアーキテクチャ(ODA)と交換フォーマット:文字コンテンツアーキテクチャ 。 T.416。国際電気通信連合。
  • 情報技術—オープンドキュメントアーキテクチャ(ODA)と交換フォーマット:文字コンテンツアーキテクチャ 。 ISO / IEC 8613-6:1994。国際標準化機構。
  • マーカス・クーン(2009)。 「UTF-8ターミナルエミュレータに関連する問題は何ですか?」 Unix/Linux用のUTF-8およびUnicodeFAQ
  • キース・ウィンシュタイン、アンダース・カセオルグ他(2012)。 「ISO2022ロックエスケープ」。 モッシュ技術情報
  • VT420プログラマーリファレンスマニュアル 。 EK-VT420-RM-002。 1992年2月。デジタル。
  • VT520/VT525ビデオ端末プログラマー情報 。 EK-VT520-RM。 1994年7月。デジタル。
  • トーマスE.ディッキー(1997)。 「VT220とは何ですか?」 xtermのよくある質問 。見えない島。

Linux
  1. ホスティングコントロールパネルとは何ですか?

  2. time_t は最終的に typedef とは何ですか?

  3. ls と l はどう違いますか?

  1. あなたの好きなLinuxターミナルのトリックは何ですか?

  2. お気に入りのターミナルエミュレータは何ですか?

  3. あなたの好きなLinuxターミナルのトリックは何ですか?

  1. お気に入りのLinuxターミナルエミュレータは何ですか?

  2. どのターミナルエミュレータがTmux制御モードをサポートしていますか?

  3. 端末で使用されているプロトコル/標準は何ですか?