Linuxターミナル(TTY)

TTYは徐々に略語またはテレタイプテレックス、元のテレタイプの手段、そのような置換基の表示装置及びキーボードです。そうTTYはまた、コンピュータ端末(端末)デバイスを指すテレタイプのキーボードやモニターするかどうか、コンピュータ端末装置が存在します。これらのTTYデバイスをサポートするために、LinuxはTTYサブシステムと呼ばれる実装されています。だから、TTYは、ターミナルの両方を指すことも当然、より豊かなTTY(混沌)の意味があり、LinuxのTTYサブシステムを指し、この記事では、それらを説明しようとします。この記事では、Ubuntuの18.04である環境の一部の使用方法を示します。

ハードウェア端末の端末(TTY)

初期の端末(端末)は、マシンのコンピュータ・自立スタンド(テレタイプすなわち、TTY)で、おそらく次のようになります。

これは、ケーブル端子を介してコンピュータに接続され、コンピュータの入出力機能を実行します。

今、私たちが見るすべては、ターミナルの外にあるTTYアナログビデオ端末エミュレーションソフトウェアを事実上絶滅物理端末です。あなたはつま先-aコマンド端子タイプによってサポートされているシステムを表示することができ、驚くことではないが、これは非常に長いリストがあります。

コンソールコンソール

彼は、コンソールのコンソールに言及せず、端末を述べました。非常によく似た意味コンソールと端末のコンセプトは、実際には、私たちはしばしば、彼らと同じことを指しますが、コンピュータの黎明期に、彼らは本当に異なるものです。
多くの場合、定義によって、コンソールと呼ばれるいくつかの数値制御装置(例えばCNC工作機械など)コントロールボックスには、マシンの直接的なコンソールのコントロールパネルで、多くのコントロールボタンは上があります。コンピュータでは、キーボードとが直接コンソールと呼ばれるコンピュータにセットに接続されたモニタ。端末は、コンソールは、コンピュータ自体の装置でありながら、コンピュータが唯一のコンソールがあり、シリアルポートではなく、コンピュータ自身の機器を介して接続されています。コンピュータが起動すると、すべての情報がコンソールに表示されますが、端末に表示されません。同じ説明は、基本的なデバイスは、コンピュータコンソールであり、端末装置が取り付けられています。そのようなカーネルメッセージ、バックグラウンドサービスメッセージなどの端末情報に関連していないコンピュータのオペレーティングシステムは、コンソールに表示することができますが、端末に表示されません。たとえば、あなたが起動し、Linuxシステムをシャットダウンするとき、我々はコア情報コンソール上(図では、vSphere Clientの「仮想マシンコンソール」から来ている)の多くを見ることができます。

今、端末とコンソール・ハードウェアのコンセプトによって、徐々にソフトウェアの概念へと進化。簡単に言えば、あなたは直接エンド・システム・コンソールと呼ばれるメッセージを表示することができ、他の人が(コンソールがターミナルである)の端末と呼ばれます。それとも、単に端末と、通常の使用では、Linuxコンソールを区別しません。

次の例では、は/ dev /コンソールファイルを経由してコンソールに、我々は、コンソール端末から少し異なって見ることができます。この例のメッセージを送信することです。
vSphere Clientの「仮想マシンコンソール」(つまり、コンソール)を開き、デフォルトの表示はTTY1です。

/ dev /コンソールに他の端末文字列"Hello World"の書き込みは、次のとおりです。
ルートeSearch @:〜#エコーの"Hello World">は/ dev /コンソール

文字列がコンソールに表示されます。その後、tty2に、再びDEV /コンソール/ターミナルにコンソールにはCtrl + Alt + F2によってスイッチングされた文字列を書き込みます:
ルートeSearch @:〜#エコーの"Hello World">は/ dev /コンソール

文字列tty2は、Linuxは常に現在の仮想端末(TTY1-tty6)年のコンソールに表示されるの/ dev / consoleの内容に書かれたことを示す、書きました。

TTY機器

歴史的には、初めは、印刷されたホスト端末に加工し、プリンタ、キーボード、シリアルポートと、シリアルポートを介してホストへのデータ送信、及び装備エンド端末です。テレックス(テレタイプ)は集合的に、そのような装置と見なすことができ、端末はTTY単に(テレタイプの略語)と呼ばれます。
(インターネットからの図)を以下に示すとおり

UARTドライバ
上記のように、物理的な端末は、ケーブルによってコンピュータにUART(汎用非同期受信機と送信機)に接続されています。オペレーティング・システムは、UART送信管理バイトのための物理的なドライバを有しています。

ライン仕様
上図のカーネル行の規律(列仕様)は、バッファエディタといくつかの基本的な編集コマンド(バックスペース一つの単語、明確なライン、転載を除去する)を提供するために使用され、主にユーザーの入力をサポートするために使用行動(例えば、間違ったとして、バックスペースする必要があります)。

運転TTY
TTYセッション管理用のドライバ、および様々な端末装置の処理。

UARTドライバ、ラインドライバは、TTYの仕様であり、デバイスの終端であるカーネルに、他端がユーザプロセスです。すべてのデバイスは、Linuxのファイルなので、一緒に三人が「TTYデバイス」であると呼ばれているので、私たちはしばしばTTYを言います。

ターミナルエミュレーションソフトウェアから擬似端末へ

そして、ゆっくりと端末キーボード+モニターへと進化。私たちはモニターに出力したい場合は、限りコンテンツはTTY層によって、それに対応するTTYデバイスを表示し、ために書かれているよう作動原理Linuxコンソールで出力を完了するために、右のドライブをマッチングする責任がある(図では、インターネットから来ています):

動作上図は、TTYドライバと行前の例仕様は同様であるが、いかなるUART又は物理的な端末が存在しません。これとは対照的に、ビデオ端末のソフトウェアシミュレーションは、最終的にはVGAモニタにレンダリング。なお、ここで、カーネルモードで実行され、端末エミュレーションソフトウェアの出現をディスプレイおよびvSphere ClientのTTY1-tty6「仮想マシンコンソールの」 すべてにおけるソフトウェア端末エミュレーション

プログラム読み、ターミナルエミュレーションにこれらのファイルを読み書き書き込みのファイルシステム表現では/ dev / tty1-は/ dev / tty6これらの端末のシミュレーション。

我々はまた、ユーザ空間での端末エミュレーションは、状況はより柔軟になります場合は、以下のxtermやクローニングの仕事は(数字はインターネットから来ている)です。

依然としてTTYサブシステム(サブシステムはTTY TTYドライバと行仕様を意味する)無傷を維持しながら、端末エミュレータにユーザ空間を容易にするために、ダミー端子は、本発明(疑似端末またはPTY)の外にあります。カーネルの仮想端末部が2分割され、すなわちTTYに実装側とスレーブ側駆動を習得。上記の図にようにUbuntuのデスクトップGNOME端末としてユーザモードで実行されている端末エミュレーションプログラムでのxtermを、注意してください。

疑似端末を作成する場合、/ devにデバイスファイルを作成/ディレクトリをPTS。

如果是通过 PuTTY 等终端仿真程序通过 SSH 的方式远程连接 Linux,那么终端仿真程序通过 SSH 与 PTY master side 交换数据。

终端与伪终端的区别

至此我们可以得出这样的结论:现在所说的终端已经不是硬件终端了,而是软件仿真终端(终端模拟软件)。
关于终端和伪终端,可以简单的理解如下:

  • 真正的硬件终端基本上已经看不到了,现在所说的终端、伪终端都是软件仿真终端(即终端模拟软件)
  • 一些连接了键盘和显示器的系统中,我们可以接触到运行在内核态的软件仿真终端(tty1-tty6)
  • 通过 SSH 等方式建立的连接中使用的都是伪终端
  • 伪终端是运行在用户态的软件仿真终端

总结

通过本文我们可以了解到,真正的硬件终端基本上已经看不到了。在一些连接了键盘和显示器的系统中(当然也包括一些 vsphere 等虚拟环境),我们可以接触到运行在内核态的软件仿真终端。而我们使用最多的则是伪终端。

参考:
解密TTY
Linux TTY/PTS概述
The TTY demystified
What is stored in /dev/pts files and can we open them?
终端、虚拟终端、shell、控制台、tty的区别

おすすめ

転載: www.cnblogs.com/sparkdev/p/11460821.html
おすすめ