Alt
+を使用すると、Fn
ほとんどのLinuxディストリビューションで仮想コンソールを切り替えることができます。コンソール切り替えを処理するアプリケーションとは何ですか?他のすべてのプロセスの前にキーボード入力を読む必要があると思います。それともデバイスドライバまたは他のカーネルモジュールによって処理されますか?
ベストアンサー1
Linuxカーネルにはターミナルエミュレータプログラムが組み込まれています。開いたファイル ハンドルを持つ実行中のプロセスとして表示されません。これは、内部カーネルインターフェイスを使用してアクセスするフレームバッファと入力イベントサブシステムの上にあります。これは一連のアプリケーションモードシステムに提供されます。カーネル仮想端末デバイス/dev/tty1
などの下には、/sys
アクティブなKVT番号と一連のCGAスタイルのビデオバッファリングデバイス/dev/vcsa1
などを示すダミーファイルがあります。
⎇ Alt通常、キーコードを認識するのはカーネル端末エミュレータです。これはすべてカーネルモードコード内で行われます。 (カーネルビルドオプションを使用すると、このコードなしでカーネルをビルドできます。)FNCONFIG_VT
ただし、アプリケーションソフトウェアはこの機能を無効にすることができます。たとえば、Xorgサーバーはこれを行います。画面でアクティブな状態で、ほとんどのカーネル端末エミュレータを一時的に閉じるか、切断します。それキーコード(⎈ Control+ ⎇ Alt+)を使用し、システムコールを使用してプログラム制御下でアクティブKVTを切り替えます。実際、Xorgサーバーは、Kernelに組み込まれた端末エミュレータと共有されるフレームバッファとHIDへの排他アクセスをネゴシエートする手段としてKVTスイッチングを使用します。FNioctl()