ドライバがどこから来たのか、それともマザーボード周辺機器用に開発されたのか、少し混乱しています。たとえば、USB、サウンド、またはイーサネットコントローラ?
基本的に、x86/64プログラマリファレンスマニュアルではこれについて詳しく説明していないことが私が理解しています。
ドライバ開発者は、レジスタレベルでデバイスと対話する方法をどのように知ることができますか?
答え1
すべてのドライバはデータシートに基づいて開発されました。当社は、デバイスを製造するたびに、デバイスがいくつかの確立された規格に完全に準拠すると宣言されない限り、配線およびプログラミングの詳細に関する完全な文書を生成します。
例を見るさまざまなマザーボードのIntel ICH10コンポーネントのドキュメント。
この文書は必ずしも無料ではありません。
時にはまったく使えない場合もあります。 (Nvidia(およびLinusの有名な話し言葉)またはATI(Stalmanの有名なデモを参照)を参照)製造者が文書を提供すると、製造秘密が漏洩すると主張する場合。
この特別な場合、製造業者は通常、特別なオペレーティングシステム用のドライバをクローズドバイナリ形式でのみ製造します。
他の開発者はコードをリバースエンジニアリングしようとします。
答え2
マザーボード自体には、基本的にCPU、RAM、PCI-Eスロット、オンボードデバイスなどの標準コンポーネントが含まれており、起動時に初期化され、CPUを介してカーネルによって制御される標準プロトコルを使用して通信するため、ドライバは必要ありません。
これらのコンポーネントはすべてマザーボードメーカー間で共有され、すべて標準であり、ほとんどの場合、そのコンポーネントと「会話」できるデータシートがあります。つまり、ドライバを介して作業できます。一部のデバイスは正しく文書化されていないか、データシートがないため、Linuxはそれをサポートするのが困難です。例えば、Linux は多くのハードウェア監視チップをほとんどまたはまったくサポートしていません。
Windowsに「マザーボードドライバ」をインストールする場合は、「マザーボード」ドライバをインストールする代わりに、次のドライバをインストールしてください。個人のマザーボードに含まれているデバイス。
答え3
- GNU/Linux ボードにはドライバがなく、必要もありません。
- おっしゃるとおり、キーボード、マウスなどのためのドライバーが開発されたからです。