追加読書

追加読書
root 717  2.0  3.2 1038344 263604 tty7   Rsl+ /usr/lib/xorg/Xorg -core :0 -seat seat0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch

Xサーバープロセスがというプログラムを実行しているのは正しいですかXorg? (それでXサーバープロセスが見つかったと確信できます。)

サーバーなのに、なぜ制御端末(tty7)もあるのですか?なぜ端末制御権を放棄してデーモンになれないのですか?

ありがとうございます。

答え1

X11サーバーには古い端末機器は必要ありません。それ具体的に一つ必要カーネル仮想端末機器。

汎用ターミナルI/Oターミナルを使用しないからだ。カーネルに組み込まれたターミナルエミュレータプログラムと共有I / Oデバイスをネゴシエートする方法としてターミナルを使用します。このタイプのデバイスのみを理解し、プロセスに信号を送信することに関連するカーネル仮想端末デバイス固有のプロトコルを使用すると、ioctl()ディスプレイとHID(人間入力デバイス)が責任を負う時期と、カーネルに組み込まれた端末エミュレータが責任を負う時期を交渉できます。あります。

(LinuxではこれはKVTの主な用途であり、I / Oはまったく異なるデバイスを介してルーティングされ、制御端末を持たないセッションではX11サーバーとはほとんど異なりますが、制御端末として機能します。BSDでは次のようになります。 。返品デフォルトのUSB HID(USBの場合)にアクセスするのはそれほど良くありませんが、フレームバッファとHID入力にアクセスする方法です。ただし、FreeBSDでは少なくともXorg1つの端末デバイスを開くだけで、最初は制御端末としてKVTを持っていません。いいえ自動的に制御端末にします。この質問はXorg実際にはプロセスが進んでいるので議論の余地があります。確かに動作する制御端子があります。 )

カーネルに組み込まれているターミナルエミュレータが特定のディスプレイデバイスやHIDを使用していない場合(この回答の範囲をはるかに超えた方法で)、少しの努力で並べ替えることができれば、デバイス共有は必要なく、X11サーバーは常に「所有」します。デバイスです。また、カーネルがすでにビルドされている場合いいえ組み込み端末エミュレータ、交渉することはありません。同様に、X11サーバーが実際にI / Oデバイスを使用していない場合(プログラムの場合のようにXvnc)、I / Oデバイスの所有権をネゴシエートするメカニズムは必要ありません。

追加読書

関連情報