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

Linux に /dev/tty がたくさんあるのはなぜですか?

tty は単なる入出力デバイスではありません。また、シグナルの送信 (Ctrl+C) など、セッションの制御端末として機能する特別な役割も果たします。 /dev/ttyNN は仮想コンソールで、モニター上に全画面表示されます。

端末は /dev/tty1 から始まります。通常、Ctrl+Alt+Fn キーを押すことで、これらのコンソールに切り替えることができます。

たとえば、Ctrl+Alt+F1 で最初の仮想端末に移動します。現在、ほとんどの Linux ディストリビューションは tty1 から X サーバーを実行しています。そのため、Ctrl+Alt+F1 を押しても効果がない場合があります。

$ ps ax | grep Xorg | grep -v grep
 1504 tty1     Ss+   44:57 /usr/bin/Xorg :0 -background none -verbose -auth /var/run/gdm/auth-for-gdm-rfsWyA/database -nolisten tcp vt1

Ctrl+Alt+F2 で 2 番目のターミナルに移動します。通常、ディストリビューションは仮想端末でログイン プログラム (agetty) を実行します。

$ ps ax | grep tty2 | grep -v grep
31865 tty2     Ss+    0:00 /sbin/agetty tty2 38400

ログイン プログラムは、ログイン プロンプトを提供し、ユーザー名/パスワードでログインできるようにします。 init スクリプトは、すべてのログイン プログラムが実行される場所を決定します。そのため、tty9 などのログイン プロンプトが表示される場合と表示されない場合があります。 GUI インターフェースに戻るには、Ctrl+Alt+F1 を押します (上記の出力例のように)。

/dev/tty0 は、現在の端末を指す特別なデバイスです。そのため、実行する場所 (任意の仮想コンソール) に関係なく、tty0 からの読み取り/書き込みはすべて現在の端末に送られます。

'ps ax' の 2 列目も、プログラムの制御端末を示します。デーモンなどの一部のプログラムでは、列が「?」になっている場合があります。これは、それらが端末にバインドされていないことを意味します。

/dev/pts/0 などは疑似端末デバイスであり、システム ディスプレイには接続されていません。たとえば、gnome-terminal またはその他の GUI 端末を開いたときに取得する端末です。これらは、クライアント側が bash などのプログラムにエクスポートされるクライアント サーバー ベースのアプローチです。プログラムによって疑似端末に送信されたデータは、「サーバー」側に送信されます (通常、gnome-terminal などの別のプログラムによって監視されます)。制御プロセス (サーバー側) は、端末に何を送信する必要があるかを決定し、最終的にクライアントに表示されます。これらのデバイスを使用すると、システムに制限なく複数の「GUI ターミナル」を開くことができ、コントロール (ioctl()、色設定、シグナルの送信 [Ctrl+C] など) などの同じ古いターミナルを引き続き提供します。


Linux
  1. Linuxは複数の連続したパスセパレーター(/ home //// username /// file)をどのように処理しますか?

  2. Linux – / dev / urandomで「u」という文字は何を意味しますか?

  3. Linux の /dev/zero および /dev/null ファイルとは

  1. Linux が NVMe ドライブを /dev/sda ではなく /dev/nvme0 としてリストするのはなぜですか?

  2. 一部の Linux システムでは、mtab でルート ファイルシステムが /dev/<実デバイス ノード> ではなく /dev/root として表示されるのはなぜですか?

  3. /dev/null に書き込む仮想ブロック デバイスを作成します。

  1. LinuxソフトウェアRAIDで故障したハードディスクを交換する方法

  2. / dev/randomを使用してLinuxでランダムパスワードを生成する方法

  3. Linux:/ dev / console、/ dev / tty、/ dev / tty0の違いは?