web-dev-qa-db-ja.com

ターミナルエミュレータが満たす必要のあるスペシエーションはどこにありますか?

楽しみのためにターミナルエミュレータを書くことに興味があります。この投稿から、シェルとターミナルエミュレーターの間の分業を大まかに理解しています: 「ターミナル」、「シェル」、「tty」、「コンソール」の正確な違いは何ですか? =、しかし、キー押下と制御文字の間のマッピングが何である必要があるか、ptyを取得して対話するためにどのような種類のシステムコールを行う必要があるかなどの完全で詳細な説明を見つけることができませんでした。

見るべきマニュアルページはありますか? Linuxのターミナルエミュレーターの完全な競合仕様はどこにありますか?

1
Patrick Collins

キー押下と制御文字の間のマッピングが何である必要があるかについての完全で詳細な説明を見つけることができませんでした。

何が必要だと思いますか?ヒント:すべてのターミナルエミュレータプログラムが、直接的または間接的に(Xなどを介して)何らかのキーボードマップファイルを持っていると思うのはなぜですか?

行って、既存のターミナルエミュレーターを見てください。フレームバッファとLinux入力イベントデバイスを使用してユーザースペース仮想端末を提供するオープンソースのもののほんの一部を次に示します。

  • zhcon
  • fbterm
  • bogl-btermとそのフォーク( niterm など)。
  • ALi Gholami Rudiの fbpad
  • console-terminal-emulatorおよびconsole-fb-realizerツール nosh
  • kmscon

参考文献

2
JdeBP

おそらく http://invisible-island.net/xterm/ctlseqs/ctlseqs.html および http://www.vt100.net/ から開始する必要があります。望ましい動作(少なくとも入力/出力シーケンス)、およびもちろん、対処した問題の変更ログを含む、そこにあるいくつかのターミナルエミュレーターの調査。

完全なチェックリストはどこにもないと思います。最近の例:^\がターミナル内で機能するためには、エミュレーター自体がSIGQUITハンドラーがデフォルトに設定されていることを確認する必要があります。数日前に発見したものが、10年以上前のものであるにもかかわらず、gnome-terminalから欠落していることがわかりました。気になるそのようなことはおそらく何十もあります。あなたが進んでユーザーからレポートを受け取ると、それらに気付くでしょう。

2
egmont