2

ちょっと変わった質問がありますが、このトピックに興味があります。

現在の x64 ベースのコンピューターのハードウェアに、ある種の HAL (ハードウェア アブストラクション レイヤー) や他のオペレーティング システムのペンダント (udev、upower など) を使用せずに直接アクセスする可能性はありますか? そして、特定のデバイス ドライバーの開発について話しているのではなく、C やアセンブラーなどを使用した単純な "Hello World" プログラミングについて話しているのです。

複数の CPU コアやマルチスレッドなどによって、この種のプログラミングが最も一般的なケースでは無意味になるという事実を認識しています。しかし、それが可能かどうか知りたいのですが、もしそうなら、どうすればそれができるでしょうか?

私の焦点は、Linux ベースのオペレーティング システムにあります。私の知る限り、98/ME 以降の Microsoft ベースのオペレーティング システムでは不可能です。

事前にご尽力いただき、誠にありがとうございます。B 様、よろしくお願いいたします。

4

1 に答える 1

2

いいえ、どの言語でもこれを行うことはできません。理由はかなり単純です。最近のアーキテクチャでは、ユーザー プログラムはいわゆるプロテクト モードで実行されています。それが意味することは(とりわけ)、実際のメモリにアクセスできないということです。代わりに、CPUとOSが一緒になって、プログラムが使用しているメモリアドレスを別のものに変換します。

ハードウェアと通信するには、このハードウェアが使用するメモリ領域にアクセスする必要がありますが、これはプロテクト モードではまったく不可能です。

于 2016-03-17T15:10:41.347 に答える