ここでは、端末の理解を明確にしようとしています。
端末は実際にはデバイス(キーボード+モニタ)です。 CLIモードでは、キーボード入力がシェルに直接移動してモニターに表示されます。
同時にGUIモードを使用するときにシェルと対話するには、ターミナルエミュレータプログラムを開く必要があります。キーボード入力はターミナルエミュレータプログラムに入り、モニタのターミナルエミュレータウィンドウに表示されます。入力はシェルに直接移動しません。端末エミュレータプログラムはキーボードの入力をシェルに渡します。端末エミュレータプログラムは擬似端末を使用してシェルと通信します。
起動時に直接 CLI を入力した場合、端末エミュレータプログラムは含まれません。
私が理解した内容に間違った部分がある場合は、コメントを付けて訂正してください。
修正する:もう一度読んだTTY公開。私が尋ねる必要があるのは、テキスト端末(テキストモードで直接起動)とGUI端末の違いのようです。これは、端末=テキスト端末、端末エミュレータ=Gnome端末などのGUI端末であると考えたためです。これは間違っています。今回のアップデート前の回答で見ると、ユーザーは実際にはターミナルエミュレータプログラム(ユーザースペース)をGUIモードのように使用しているようです。 「ps aux」コマンドを実行したときにTTYプロセスを見つけたので、TTYプログラムと言えますか?私は端末エミュレータプログラムがテキストモードにも含まれていることを全く知りませんでした(カーネル空間の端末エミュレータを参照していません)。
アップデート2:読んだLinuxコンソール。これによると、テキストモードはコンソールで、GUIモードのターミナルソフトウェアはターミナルエミュレータです。まあ、それは意味があり、以前に理解したのと同じです。しかし、それによるとTTYのイラスト公開、端末エミュレータはユーザ空間ではなくカーネル空間にあります。興味深いことに、画像はテキストモードを表します。
答え1
これには、独立して定義する必要があるいくつかの別々の用語があります。
端末:VT100のような真のキーボード/モニターインターフェース:https://en.wikipedia.org/wiki/VT100
ターミナルエミュレータ(TTY):入力と出力を提供するアナログ端子。ほとんどのLinuxディストリビューションでctrl + alt + F2を押すとすぐに使用できます。端末に「w」と入力すると、wコマンドが「tty」によって実行されることがわかります。
擬似端末(PTY):他のソフトウェア(SSHまたはGUI端末など)は、スレーブ(pts)を介して端末と同様のインターフェースを提供するマスター/スレーブペア(ptmx)です。http://linux.die.net/man/4/ptmx GUI ターミナルに「w」と入力すると、リストされた pts から w コマンドが表示されます。
シェル:ログイン時に実行され、入力を解釈するコマンドラインソルバーです。 bash / zshはこれの例です。
しかし、これらの用語は、会話のすべての交換が可能であることに注意してください。誰かが「ターミナル」、「ターミナルエミュレータ」、「コンソール」、「コマンドライン」、または「シェル」に言及している場合は、文脈で特に明記しない限り、次のことを言及することができます。
「私はコンピュータのテキストベースの項目を制御するために使用します。」
質問の更新を編集
ptsまたはptyと一致するすべてのプロセスを以下で確認してください。
root@localhost tests]# ps fauxww | grep -P [pt]t[ys]
root 2604 2.3 0.8 50728 34576 tty1 Ss+ 07:09 1:15 \_ /usr/bin/Xorg :0 -br -verbose -audit 4 -auth /var/run/gdm/auth-for-gdm-VRHaoJ/database -nolisten tcp vt1
root 2569 0.0 0.0 2008 500 tty2 Ss+ 07:09 0:00 /sbin/mingetty /dev/tty2
root 2571 0.0 0.0 2008 500 tty3 Ss+ 07:09 0:00 /sbin/mingetty /dev/tty3
root 2573 0.0 0.0 2008 504 tty4 Ss+ 07:09 0:00 /sbin/mingetty /dev/tty4
root 2575 0.0 0.0 2008 500 tty5 Ss+ 07:09 0:00 /sbin/mingetty /dev/tty5
root 2577 0.0 0.0 2008 504 tty6 Ss+ 07:09 0:00 /sbin/mingetty /dev/tty6
sin 3374 0.2 0.7 90668 28564 ? Sl 07:13 0:09 /usr/bin/python /usr/bin/terminator <<< Added this parent of 3377 manually to see the pts source
sin 3377 0.0 0.0 2076 620 ? S 07:13 0:00 \_ gnome-pty-helper
sin 3378 0.0 0.0 5236 1712 pts/0 Ss 07:13 0:00 \_ /bin/bash
root 4054 0.0 0.0 5124 1676 pts/0 S 07:23 0:00 | \_ bash
root 5034 0.0 0.0 5056 1092 pts/0 R+ 08:03 0:00 | \_ ps fauxww
root 5035 0.0 0.0 4416 740 pts/0 S+ 08:03 0:00 | \_ grep -P [pt]t[ys]
sin 4154 0.0 0.0 5236 1708 pts/1 Ss 07:23 0:00 \_ /bin/bash
sin 4485 0.0 0.0 7252 3500 pts/1 S+ 07:41 0:00 \_ python
ptsとtty関連のプロセスが表示されます。 psでttyを見たので、これはGUI端末が使用していると仮定していますが、それは本当ではありません。この場合、mingetty TTYプロセスはctrl + shift + F2-6を介して利用可能なすべてのプロセスであり、ptyはGUIターミナルプロセスに関連付けられたスレーブプロセスです。これを確認するには、GUIターミナルプロセスのlsofを確認してください。
[root@localhost tests]# ps fauxww | grep terminator
sin 3374 0.2 0.7 90668 28564 ? Sl 07:13 0:08 /usr/bin/python /usr/bin/terminator
[root@localhost tests]# lsof -p 3374 | grep '[pt]t[ys]'
/usr/bin/ 3374 sin 17u CHR 136,0 0t0 3 /dev/pts/0
/usr/bin/ 3374 sin 25u CHR 136,1 0t0 4 /dev/pts/1
テキストモードで起動すると、デスクトップでctrl + alt + f2を押すのと同じようにTTYを入力します。 SSH/GUI 端末を使用する場合は、疑似端末を使用することです。
答え2
(ディスプレイ)端子は、キーボードとディスプレイがあり、ホストコンピュータと通信するハードウェアです。端末自体は小型コンピュータです。
端末エミュレータは、汎用システムで動作し、特定の端末動作を実装するソフトウェアです。
端末エミュレータがすべてグラフィックであるわけではありません。テキスト表示モードに基づくことができます。 Linuxカーネルのコンソールがその例です。
端末エミュレータは、端末エミュレーション自体を使用することもできる。 GNU Screenプログラムはその例です。端末が必要ですが、端末で実行されているプログラムの端末エミュレーションを提供します。
ホスト内で端末エミュレータを実行して、ホスト自体への仮想端末アクセスを提供できます。ホストシステムで動作するソフトウェアは、同じホストを追加のリモート端末として扱います。ただし、ターミナルエミュレータを使用して単にコンピュータを使用することもできます。〜のように一部のリモートホストへの端末アクセス。たとえば、PC上のWindowsで実行されているIBM 3270エミュレータを使用してメインフレームにアクセスします。デスクトップの実際の3270ではなく、Windows上でソフトウェアを使用しているため、エミュレータです。ただし、これを使用してWindowsのコマンドラインにアクセスするわけではありません。このような端末エミュレータの別の例は、Minicom、HyperTerminalなどのシリアル通信パッケージである。また、人気のあるPuTTY SSHクライアントもあります。