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では少なくともXorg
1つの端末デバイスを開くだけで、最初は制御端末としてKVTを持っていません。いいえ自動的に制御端末にします。この質問はXorg
実際にはプロセスが進んでいるので議論の余地があります。確かに動作する制御端子があります。 )
カーネルに組み込まれているターミナルエミュレータが特定のディスプレイデバイスやHIDを使用していない場合(この回答の範囲をはるかに超えた方法で)、少しの努力で並べ替えることができれば、デバイス共有は必要なく、X11サーバーは常に「所有」します。デバイスです。また、カーネルがすでにビルドされている場合いいえ組み込み端末エミュレータ、交渉することはありません。同様に、X11サーバーが実際にI / Oデバイスを使用していない場合(プログラムの場合のようにXvnc
)、I / Oデバイスの所有権をネゴシエートするメカニズムは必要ありません。