質問: linux guiは最低レベルでどのように機能しますか? 私は基本的に、linuxカーネルとcでのプログラミングだけでguiを完全にゼロから作成する方法を理解しようとしています。guiデスクトップ環境を最初から作成するつもりはありませんが、いくつかのデスクトップアプリケーションを作成したいと思っています。知識を探す上で、見つけたすべての情報はgui apiとツールキットに関するものです。少なくともlinux guiの作成方法の基本を理解するために、apiまたはツールキットを使用せずにgui環境またはguiアプリケーションを作成する方法を知りたいと思います。たとえば、私は疑問に思っています: 既存のapiとツールキットは、カーネルへのシステムコールを介して機能します(カーネルは、ピクセルまたは何かでguiイメージを構築するために最低レベルで責任を負います) これらのツールキットは、情報をスクリーンドライバーに単に渡すシステムコールを実行します(すべてのスクリーンドライバーがこの情報を送信するための標準形式はありますか、またはgui apiは特定のスクリーン/ドライバーに応じてこの情報を複数の形式で出力できる必要がありますか? )また、これがおおよそ当てはまる場合、raw linuxカーネルは通常、8ビット文字の形式で情報を画面に送信するだけですか? linuxカーネル間で何が起こっているのか、画面に何が表示されているのかを理解したいだけです(知っている場合は、ソフトウェアとハードウェアの両方を流れる制御/情報の流れ、情報の形式など)。詳細な説明をいただければ幸いですが、これは十分に詳細に説明するための参考になるかもしれませんが、このような説明は、好奇心が強く、学習している他の人にとって、すばらしいリソースになると思います。コンテキストとして、私はシステムプログラミングコースのcで最近プログラミングを始めた3年目のコンピュータサイエンスの学生で、linuxとプログラミングについて中級(またはそれについて説明する)理解を持っています。もう一度私を助けてくれた人にありがとう!!!
回答: sunos 5にはdgaライブラリがあり、さまざまなcg [3,6,14]、tcx、またはleoグラフィックスアダプターへのデバイスに依存しないアクセスを提供しました。これは、sparcでdoomをサポートするものでもありました。マシン。cg6は8ビットであり、通常x11で疑似カラービジュアルとして使用されますが、tcxとleoが24ビットアクセラレート3dディスプレイフレームバッファーであるときに、8ビットトゥルーカラーを提供することもできます(疑似カラー= videoramのバイトは、大容量のインデックスです) 3x8 rgb値を与えるテーブルです。テーブルのコンテンツは簡単に変更できます。)cg3にはほぼ同じ機能がありましたが、高速化されませんでした(cg6デザイナーはその後、別の会社... nvidiaを開始しました)。ati rage proチップセットに基づいたpgxのような新しいデバイスは、以前のデバイスがサポートしていたトゥルーカラーと疑似カラーを同時にサポートできませんでした。これにより、ユーザーは疑似カラーモデル用に作成された古いアプリケーション(または、可能であればswをアップグレード)とトゥルーカラー指向のアプリケーションのみを実行するアプリケーションのどちらかを選択する必要がありました。疑似カラーが存在するのは、基本的には、ビデオラムが80年代半ばに1992年頃まで非常に高価だったためです。使用可能なワークステーションタイプの解像度をサポートするカラーディスプレイもかなり高価でした(1984年のsun 2白黒は1152x864の解像度でしたが、1989年ほどのmg1は1600x1280でしたが白黒です)。x11がサポートしなければならないさまざまな要件を示したいので、これを書いています。