Cがグローバル変数にメモリを割り当てる方法を理解しようとしています。
私は単純なカーネルに取り組んでいます。これまでのところ、画面に出力して割り込みを有効にすること以上のことはできません。私は現在、基本的な物理メモリ マネージャーに取り組んでいます。
私のメモリ マネージャは、メモリが割り当てられているか使用可能な場合に 1 または 0 を設定するビットマップです。カーネルが使用しているメモリを「割り当て済み」としてビットマップに追加する必要があるため、何も上書きされません。
カーネルは 0x100000 に静的にロードされるため、カーネルの開始点を簡単に見つけることができます。長さを把握することもそれほど難しくありません。私がよくわからない部分は、グローバル変数がメモリに置かれている場所ですか?
私のカーネルが 12K だとしましょう。保護のために、これら 3 つの 4K ブロックのメモリをカーネルに割り当てることができます。使用する変数をカバーするために、さらに割り当てる必要がありますか? それとも、変数はその 12K の一部ですか?
助けてくれてありがとう、私は十分な意味を持っていることを願っています.