最近のXlibの研究中に、X.OrgサーバーがGUI環境を実装するためにどのシステムコール(API)を使用するかについて質問があります。
出力側でシステムコールを使用すると、画面にウィンドウ(色付きの四角形など)を描画できます。入力側では、任意のシステムコールを介してキーボードとマウスから入力情報を取得できます。
X.Orgサーバーの助けを借りずにウィンドウを描画できますか?もちろん、これは実用的ではありません。しかし、それが可能かどうかを知りたいです。
答え1
X.OrgサーバーがGUI環境を実装するために使用するシステムコール(API)は何ですか?
XサーバーとXクライアント間の通信に使用されるネットワーク/ドメインソケット。
ハードウェアドライバがハードウェアを制御するために必要なものは何でも:初期のLinuxでは、これは主にメモリマップされたI / Oとポートでしたが、ほとんどは独自のAPIを持つカーネルドライバです。
ウィンドウを描画できるシステムコール
これに対するシステムコールはありません。
入力側では、任意のシステムコールを介してキーボードとマウスから入力情報を取得できます。
Xにはまだ低レベルのドライバがありますが、今日のデフォルトではすべてがevdev
ドライバを使用しています。カーネル入力レイヤー。
X.Orgサーバーの助けを借りずにウィンドウを描画できますか?
うん、フレームバッファドライバ。基本的には、フレームバッファを表すために使用できる/dev/fb0
同様のデバイスとビデオモードなどを選択できるデバイスがあります。mmap
ioctl
もちろん、これは実用的ではありません。
これは非常に実用的で、多くの組み込みLinuxシステムで使用されています。
答え2
Deckertの素晴らしい答えのための付録です。
X.Orgサーバーの助けを借りずにウィンドウを描画できますか?
Waylandは約14年間サービスを提供してきましたが、今ではXを使用しないことが例外ではなく標準にならなければならないことを思い出したいと思います。 (サポートの欠如のためにそうではありません。スクリーンシェアが将来不可欠な機能ではないことを認識するのに感染症がかかる場合、Waylandは最近の考えほど成熟していない可能性があります。)