この質問への後半の答えがありますが、平均時間でそれらを発見していない場合、私は、次の点を追加することができます:たぶんEFIはOSの開発に何を意味するのかを説明し
実際には、多くはありません。まあまあです。さて、説明しましょう。 UEFIは、ブート前の段階でファームウェア環境を提供します。また、オペレーティングシステムにはランタイムサービスもいくつか提供されますが、UEFIファームウェアではなくオペレーティングシステムが最終的にシステムを駆動することが期待されます。これらのサービスではさまざまなブート構成関連アクティビティ(example)を実行できます。ブートローダがでたExitBootServices()
を呼び出して、マルチブート仕様に応じてあなたをロードします -
利点は、あなたが実際にUEFIについて何を知っている必要はありませんmultiboot 2言うに準拠ブートローダを使用する用意がある場合ということですUEFIの用語はファームウェア環境を破壊します。
EFIスタブを持つLinuxカーネルを作成することができるため、ブートローダなしでブートする - this blog shows you how。カーネルでこれを行うことができます。ファームウェアのビット数に一致するPE/COFFカーネルを作成するだけで済みます。
と多分あなたはVMWare Workstationに余裕があれば、私たちは
、これは大規模なあなたを助けることができます(好ましく仮想)どのようなテスト環境を教えてください。だけでなく、あなたが何かのどの部分をデバッグすることができ、あなたも(* .vmxファイル)
firmware="efi"
と出来上がりを含むように仮想マシン定義ファイルを編集することができ、VMwareは完全に働いてUEFIを起動するようGDBスタブを含みます環境。 LinuxとWindowsで動作します。
インターネット上のさまざまな記事には、QEMUの設定やもちろんVirtualBoxも含まれています。私はVirtualBox EFIプラットフォーム上の既存システムを正常に起動したことは一度もありませんでしたが、QEMUを試したことはありませんでした。
また、ARMアセンブリを調べるのに時間がかかるでしょうか?
これは目的によって異なります。アセンブリの問題については、OSを書くことを知っておくべきだと思います。私はあなたが書いたプラットフォームにとって重要ではないと思っています。実際、複数の文章を書いてみると、マシンの違いをより感謝してくれるはずです。
しかし、一般的には、アセンブリ全体にOS全体を書き込もうとはしません。これの主な理由は時間です - 私はこれがホビープロジェクトだと思っていますので、広範な努力の報酬を得ることはアセンブリをデバッグしようとするよりもはるかに面白いでしょう。より熟練した方がいつでも、選択ビットをアセンブラで置き換えることができます。特に、テストするコードの残りの部分が十分にある場合は、そうすることができます。