Linuxで/dev/ttyと/dev/tty0を使用する方法

Linuxで/dev/ttyと/dev/tty0を使用する方法

提供された方法をテストして、/dev/tty と /dev/tty0 の違いを確認できます。質問。しかし、私はこれらのデバイスの実際の目的(例えば、使用されている状況)を知りたいと思います。

ベストアンサー1

/dev/tty現在のコントロールはttyですか?プロセス、実際にこの特殊ファイルを開くすべてのプロセスについて。仮想コンソールデバイスである必要はありません(/dev/ttyN)、そして、シリアルポートなどの制御ttyが仮想コンソールではない場合、その疑似端末が実際にシステムコンソールに実装されていても、プロセスはコンソールデバイスと対話する必要はありません。たとえば、ローカルで実行されているXサーバーの下のターミナルエミュレータにあるシェルの場合、プログラムは次の対話型チェーンを形成します。

   Unix シェル
     ⇕ /dev/pts/2( /dev/tty== そのプロセスの場合)
 カーネル pty ドライバ
     ⇕ ターミナル/dev/ptmx
 エミュレータ
     ⇕ X Window Protocol
   X Server
     ⇕ /dev/tty7( /dev/tty== サーバーの場合)
 システムコンソール
zxc↿⇂[_̈░░]
    ユーザー

ユーザーモードプログラムの使用には以下が/dev/tty含まれます。

  • すべてのリダイレクトとパイプを無視し、制御端末に何かを書き込みます。
  • ioctl() 生成 – tty_ioctl(4) を参照。
  • たとえば、端末(TIOCNOTTY)から切り離します。

/dev/tty0現在アクティブです(つまり、モニターに表示されます)。仮想コンソール~のオペレーティングシステム。この特定のファイルはシステムソフトウェアであまり使用されていませんが、/dev/console実際には「別名」tty0/dev/consolesyslogデーモンと時々カーネル自体でよく使われます。

違いを確認するために試してみてください。 (++)またはターミナルエミュレータrootでシェルを実行します。今tty3CtrlAltF3

# sleep 2; echo test >/dev/tty

その後、素早くCtrl++AltしてF22秒待ってからCtrl++Altに戻ります。出力はどこで見るのですか?
これで同じテストを実行します/dev/tty0

おすすめ記事