質問: 正確にはvgaとは何ですか?vgaとビデオカードの違いは何ですか? オペレーティングシステム開発のチュートリアルでは、vga、ega、またはsuper vgaに直接書き込むことで画面データに到達することが正確に示されていますが、表示されない固定アドレスへの書き込みと、オンボードまたはビデオカードへの直接書き込みの実際の違いは何ですか。または取り外し可能ですか?私の問題に関するこれについての私の混乱の基本的な明確化が欲しいだけですまた、カード、接続インターフェース、バス、アーキテクチャ、システムオンチップ、組み込みシステムなどの変数を使用した単純なケースではないため、この100%の背後にあるアイデアを理解する方法を見つけるのは難しいと思います。固定アドレスは、ハイエンドgpuとローエンドオンボードgpuで異なりますか?その理由とそうでない理由カーネルをホストしてオペレーティングシステムを作成することは、プログラミングにおける私の目標の1つです。用語の理解に失敗すると、一部の領域で私を妨げるだけでなく、ハードウェアのテーマについて愚かに見えます。追加:これらの現在の回答のいくつかは、16ビットの仕様でプロセッサの最大アドレス可能メモリを使用することについて語っています。問題はこれらの他の発生する問題のいくつかです:1.カード自体のメモリはどうですか?画面データ自体には、システムram=は必要ありません。2.高ビットモードではどうですか?また、リアルモード(x86)でbiosを無視しても、alを介してメモリをアドレス指定できませんか?3.固定アドレスへの書き込みの概念は、実際のマイクロプロセッサー以上の多数のレジスタとパフォーマンスを備えたgpuでどのように変更されませんか?
回答: 「固定アドレス」への書き込みwas基本的に、ビデオカードに直接書き込みます。これらのすべてのビデオisaビデオカード(cga、ega、vga)は、本質的にいくつかのram(およびレジスタ)がcpuのメモリおよびi/oスペースに直接マップされていました。 。そのため、特定のメモリ位置にバイトを書き込んだ場合、実際にはビデオカードにあるメモリに書き込み、ビデオカードがそのメモリを使用したため、その文字(テキストモード)がすぐに画面に表示されました。特に、今日のビデオカードがvgaと呼ばれることもある(そして、1990年代の「真の」vgaカードに類似している)ことを考えると、これは今日非常に混乱しています。ただし、最近のカードでさえ、これらの古いデザインの一部の機能をエミュレートします(ほとんどの最近のpcでdosを起動して、ビデオメモリに直接書き込むdosプログラムを使用できます)。もちろん、今日ではすべてビデオカードのファームウェアでエミュレートされています。