0

私は自分のオペレーティングシステムを書いていますが、これまでのところ、複数のファイル/言語でセットアップする方法がよくわからないため、アセンブリでしか書くことができません。以前に実行可能コードを含むブートローダーを作成したことがありますが、理解できないのは、ブートローダーがそれ自体の外部にある他のファイルを認識できるようにする方法です。アセンブリでブートローダーを記述し、たとえば、C で記述されたカーネルを別のファイルにロードするように指示するにはどうすればよいでしょうか? カーネルのコンパイルからの .o ファイルを fdd イメージにバンドルし、ブートローダーにそれらをロード/実行するように指示する必要がありますか、それともそれよりも複雑ですか?

4

1 に答える 1

1

システムを起動するコツをつかもうとしているように見えるので、「より小さな」組み込みシステムを見て、電源が投入された後/チップがリセットされた後に何が起こるかを理解することは価値があるかもしれません. ここで U-Boot を見てみましょう: http://www.denx.de/wiki/U-Boot

特に組み込みシステムで非常に人気のあるブートローダーであり、さまざまな OS を起動できます。メインラインは、さまざまな構成も多数サポートしています。C に慣れていれば、電源投入時に何が起こるかを理解するのは比較的簡単だと思います。

たとえば、U-Boot を使用してより具体的に質問に答えるには、コードをロードする場所に関するパラメーターを u-boot イメージに組み込むか、電源投入時に構成ファイルからイメージ ファイルが保存されている場所を読み取ることができます。 u-boot は、どこかのネットワークから構成を自動的にロードできます。コマンド ライン インターフェイスから、u-boot にどこで何をロードするかを指示することもできます。他に質問がないか確認してください。

于 2013-03-28T23:36:22.750 に答える