なぜこんなに多くのターミナルエミュレータパッケージが必要なのでしょうか。


8

これは長い間、私を混乱させてきたものです。
私はLinuxを使用していますが、特定の側面についての理解にギャップがあり、1つはターミナルに関するものです。
私がそれを理解するようになったとき、コンソールで私たちが意味しているのは古い端末のエミュレーターです。
しかし、私はこれとの取り決めが何であるか理解できません。
私が読んだ最も古い端末は、VTシリーズとベクトルグラフィックスタイプ(Tektronix)でした。
現在のエミュレータはこれらをエミュレートしていると思います。
Linuxでのディスプレイプレゼンテーションに関する私のニーズは、vimにcolorchemeを使用し、ファイルのdiffを行うときに色を理解するまでに至っています。
しかし、私は、私は通常、セットへのアドバイスを見つけるの問題がある場合xterm-256screen-256など
私はさらに:ls /lib/terminfo/ さまざまな種類のエミュレータ用の(私が想定している)構成のディレクトリが約12個あります。

だから私の質問は、これらxterm-256またはscreen-256その他は過去数十年でトップの端末だけをエミュレートするという考えにどのように適合するのですか?
こんなに多くの端末タイプが必要なのは何ですか?もっと調べなければならないことですか?
そして、なぜ今日のテクノロジーでは、VTのような古い端末をエミュレートし、新しいものを持たない必要があるのでしょうか。

おそらく、私のニーズはあまりにも単純すぎて、この微妙さに感謝していますが、それは私をとても困惑させたものです。たとえば、カラースキームに問題がある場合、私が何をしているのか、何が問題なのかを本当に理解せずに、TERMなどについてGoogleで見つけたものをコピーして貼り付けるだけです。

誰かが私がこれを理解するのを助けてくれるなら、それは本当に感謝されます


2
タンジェンシャル発言:(それはでない限り、あなたの$ TERMの設定は、常に悪いアドバイスですscreentmux)...
jasonwryan

@jasonwryan:どの表示の問題でも、すべての投稿でTERMの切り替えがこれになり、これが私の混乱を悪化させます
Jim

terminfo dbにその仕事を任せます。に項の値を設定するなどの回避策.bashrcは、根本的な問題をマスクするものであり、それ以上の問題を引き起こす可能性があります。
jasonwryan 2014年

このアイデアは、過去数十年のトップ端末だけをサポートするのではなく、存在する可能性のあるほとんどすべての端末をサポートすることです。terminfoは、Linuxシステムで使用するためだけに作成されたものではなく、より長い歴史があります。
Sami Laine 2014年

@SamiLaine:to support pretty much any terminal there might be..しかし、なぜですか?グラフィックスや緑色の画面がない70年代または80年代の端末をエミュレートしたいのはなぜですか?
ジム

回答:


9

Unixの奇妙な側面は通常、正当な理由で存在するので、あなたはそれを探すのは当然です。しかし、この場合、正当な理由は古くなって古くなり、あなたは過ぎ去った時代のアンティークの遺物を見ています。

今日存在する「ターミナル」は、 xtermとバリアントだけです。それらの機能は、ごく一部のプログラムにのみ関係する方法で、非常にわずかに異なります。xtermを使用するだけで、TERM変数を変更したり、terminfoデータベースを覗いたりしない場合は、通常、より良い結果が得られます。

TERM変数は、端末に関する情報をやり取りする参照、環境を介してアプリケーション 男xterm。変更しても端末は変わりません。これは、アプリケーションのさまざまな端末機能を表すだけです。

ハードワイヤード端末の時代には、接続された端末を表すようにTERMを設定する必要がありました。xtermの場合、ソフトウェアは変数自体を設定できます。vim docsのクイックツアーは、(コメントで述べたように)色をサポートするために変更する必要があることを示しています。それはあなたのための進歩です。

なぜ今日...これらの古い端末をVTのようにエミュレートし、新しいものがないのですか?

答えは、技術的なものと同じくらい人類学的です。

GUI以前は、Unixマシンへのアクセスは、VT-100などのダム端末を介して行われていました。topのようなシェルとユーティリティはすでに存在しています。1980年代にGUIが(Xが役割を果たす)技術的に実用的なものになったとき、Unixユーザーはそれらのプログラムを使用する必要があったため、xtermは古いVT-100をエミュレートするために発明されました。

それは一時的なものとして意図されていました。端末は過去であり、GUIは未来であることを「誰もが知っていました」。そして誰もが「すべて」がGUI経由でアクセスされることを期待していました。たとえば、元のMacintoshには矢印キーがありませんでした。なぜそれが必要なのですか?紛らわしい母音と無力なヘルプを備えた、不可解なUnixコマンドライン

$ help
help: not found

すぐにドラムメモリーとパンチカードの道を行くでしょう。そして、それはある意味で実現しました。WindowsまたはOS Xを実行している10人の9人のユーザーは、テクニカルサポートが何かを修正するために立ち寄る場合を除いて、コマンドラインを表示しません。

それから、それがそうであったように、2つのことがUnix GUIに起こりました。特にWindowsは市場からお金を使い果たしました。それを標準化する大きな動きがあり(Sun NewsとOSF Motifを参照)、それから1990年頃に停止しました。ちょうどその頃、インターネットが普及し、UnixのグラフィカルなものがWebブラウザーに移行しました。Unix用の完全なGUIを設計し、廃止されたマニュアルのセクション8にあるすべてのものをレンダリングする動機とお金(ほとんど同じこと)はなくなりました。

また、予測が非常に少ないことには別の理由もあります。コマンドラインにはGUIよりも優れた点があります。パイプラインと正規表現は非常に強力であり、シェルの履歴とスクリプトで繰り返し可能です。GUIのコンテキストでさえ、コマンドラインは有用でした。それでも、今日でも強化され続けています。

あなたの質問が示唆するように、必要なのは、GUIが勝利するだろうという仮定の再検討と、その不可欠な部分としての端末の再発明です。プロポーショナルフォントとビットアドレス指定可能なグラフィックスターミナルに備えた新しいターミナルが必要です。

残念ながら、誰もそれを行う準備ができていないようです。法人はそれを引き受けません。市場は巨大ですが、それでもコンピュータユーザーのごく一部にすぎません。論理的な資金提供者はDARPAのような政府機関ですが、ヒューマンインターフェイスの研究は最近「完了」と見なされています(GUIをすでに発明していないのですか?)。より多くの人々-より多くの人々-が必要性を認識するまで、xtermはあなたの友達であり、孫の友達にもなりそうです。


「「誰もが知っていた」のは、端末は過去であり、GUIは未来であり、誰もが「すべて」がGUI経由でアクセスされることを期待していたからです。」引用が必要です。
Faheem Mitha、2014

+1。いい答えIf you just use xterm, and never touch the TERM...です。あなたは注意します:1)これはどのようにして可能ですか?vimのカラースキームには、そのような構成が必要です。それで、各問題に必要な構成変更を理解するために、どのように十分な教育を受けることができるかわかりませんか?2)... today is xterm & variantsどうscreen-*ですか?亜種の一部ですか?ユーザーが知っておくべき正確なセットは何ですか?3)私が正しく理解していれば、エミュレーターを介してサポートする方が、既存のすべての端末をゼロから構築するよりも簡単であることがわかりましたか?->
Jim

それは(何か新しいものを作成したり既存のすべての端末をサポートしたりするわけではありません)とても奇妙です
Jim

更新していただきありがとうございます。最後の質問です。あなたはThe TERM variable communicates information about the terminal...Changing it doesn't change the terminal;言っています。私はこの点をよく理解していません。TERM端末が変更されない場合、端末を構成する要素は何ですか?Linuxはどのように使用するterminfo dbを知るのですか?
ジム

TERM実際、変数の内容は、terminfoデータベースへのインデックスとして使用されます。これを変更すると、xtermがホストしているシェルプロセスの環境変数の値が変更されます。そのシェルは別のマシンにある可能性があります:xterm -e 'ssh _machine_name_'。これはxtermが参照する値ではないため、xtermの動作に影響を与えることはありません。xtermはので、それは混乱しています設定 TERM変数を(あなたに好意として)、その構成(TRYの反射をxterm -t同時にVimはそれを自分で設定する必要がありながら、)。
James K. Lowden、
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.