追加読書

追加読書

Alt+を使用すると、FnほとんどのLinuxディストリビューションで仮想コンソールを切り替えることができます。コンソール切り替えを処理するアプリケーションとは何ですか?他のすべてのプロセスの前にキーボード入力を読む必要があると思います。それともデバイスドライバまたは他のカーネルモジュールによって処理されますか?

ベストアンサー1

Linuxカーネルにはターミナルエミュレータプログラムが組み込まれています。開いたファイル ハンドルを持つ実行中のプロセスとして表示されません。これは、内部カーネルインターフェイスを使用してアクセスするフレームバッファと入力イベントサブシステムの上にあります。これは一連のアプリケーションモードシステムに提供されます。カーネル仮想端末デバイス/dev/tty1などの下には、/sysアクティブなKVT番号と一連のCGAスタイルのビデオバッファリングデバイス/dev/vcsa1などを示すダミーファイルがあります。

⎇ Alt通常、キーコードを認識するのはカーネル端末エミュレータです。これはすべてカーネルモードコード内で行われます。 (カーネルビルドオプションを使用すると、このコードなしでカーネルをビルドできます。)FNCONFIG_VT

ただし、アプリケーションソフトウェアはこの機能を無効にすることができます。たとえば、Xorgサーバーはこれを行います。画面でアクティブな状態で、ほとんどのカーネル端末エミュレータを一時的に閉じるか、切断します。それキーコード(⎈ Control+ ⎇ Alt+)を使用し、システムコールを使用してプログラム制御下でアクティブKVTを切り替えます。実際、Xorgサーバーは、Kernelに組み込まれた端末エミュレータと共有されるフレームバッファとHIDへの排他アクセスをネゴシエートする手段としてKVTスイッチングを使用します。FNioctl()

追加読書

おすすめ記事