ほとんどの Ubuntu システム (少なくとも初心者の Ubuntu ユーザー向けのデスクトップ) は、X11ウィンドウ サーバー ( Xorgなど) を実行しています。そのサーバー(のみ)は、生のキーボードとマウスのデバイス入力を取得しています。それらを処理して、 X11 プロトコル イベントをクライアント アプリケーション (Firefox ブラウザー、emacs
エディター、GNOME、xterm
端末など)に配信します。
それらすべてを理解するために時間 (数か月) を費やすことができます (おそらくfreedesktopから始めます)。他のプロジェクトに切り替えることもできます。おそらく、 Gtk (Gnome 内) またはQt (KDE 内)を使用して興味深い GUI アプリケーションをコーディングするだけです。すべての Linux グラフィカル ツールキット ライブラリは、X11 プロトコルとインターフェイスするライブラリ (通常はXlibまたはXCB ) の上に構築されます。
Linux プログラミングの学習を開始する場合は、Advanced Unix ProgrammingおよびAdvanced Linux Programmingをお読みください。その後、 tty -sの謎を理解するために多くの時間を費やし、 syscalls(2)に慣れてください。その後、Qt やGTKなどのグラフィカル ツールキットに慣れてください。
そして、あなたのよくない、疑わしい質問に正確に答えることがいかに難しいかを理解し始めるでしょう. (答えは視点に大きく依存します -Xorg
他のアプリケーション、特に X クライアントとは異なる重要なイベントを見て、非常に複雑です)。
私が提供したリンクのすべての概念を理解したら、より正確に質問をすることができます。より正確で技術的な用語 (特に、キーボードとマウスをどのレベルで監視したいかを説明する) で質問を再質問し、実験したコードを示していただければ、お答えすることができます (喜んでお答えします)。あなた。