[解決済み】オペレーティングシステムなしでプログラムを実行するには?
質問
オペレーティングシステムが起動していない状態で、プログラムを単独で実行するにはどうすればよいのでしょうか? 例えば、フラッシュドライブからコンピュータを起動すると、CPUにあるプログラムが実行されるような、コンピュータが起動時にロードして実行できるアセンブリプログラムを作ることは可能ですか?
どのように解決するのですか?
<ブロッククオートオペレーティングシステムが起動していない状態で、プログラムを単独で実行するにはどうしたらいいですか?
バイナリコードを、プロセッサが再起動後に探す場所(例えばARMのアドレス0)に配置するのです。
<ブロッククオートコンピュータが起動時にロードして実行できるようなアセンブリプログラムを作成できますか(例:フラッシュドライブからコンピュータを起動すると、ドライブにあるプログラムが実行される)?
質問に対する一般的な答え:できます。 よくベアメタルプログラミングと呼ばれるものです。 フラッシュ・ドライブから読み出すには、USBが何であるかを知り、このUSBで動作するドライバを用意する必要があります。また、このドライブ上のプログラムは、ある特定のフォーマットで、ある特定のファイルシステム上になければなりません... これは通常ブートローダが行うことですが、ファームウェアが小さなコードブロックしかロードしないのであれば、プログラムはそれ自身のブートローダを含むことができ、自己充足的です。
多くのARMボードでは、そのようなことをいくつか行うことができます。基本的なセットアップを支援するブートローダを備えているものもあります。
これ Raspberry Piで基本的なオペレーティングシステムを構築する方法についての素晴らしいチュートリアルがあります。
編集 この記事とwiki.osdev.org全体があなたの質問のほとんどに答えてくれるでしょう。 http://wiki.osdev.org/Introduction
また、ハードウェアで直接実験したくない場合は、qemuなどのハイパーバイザーを使って仮想マシンとして実行することができます。仮想化された ARM ハードウェア上で "hello world" を直接実行する方法を参照してください。 こちら .
関連
-
[解決済み】単純なforループのためのMIPSアセンブリ
-
[解決済み] CS:IPの組み立ての意味と仕組みについて教えてください。
-
[解決済み] 要素ごとの加算は、結合ループよりも分離ループの方がはるかに高速なのはなぜですか?
-
[解決済み] Collatz予想の検証を行うC++のコードは、なぜ手書きのアセンブリよりも高速に動作するのでしょうか?
-
[解決済み] 1サイクルあたり4FLOPの理論上の最大値を達成するにはどうすればよいですか?
-
[解決済み] Javaでオペレーティングシステムをプログラム的に決定するには?
-
[解決済み] インテル Sandybridge ファミリー CPU のパイプラインのためのプログラムの最適化解除
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み] Intel CPU の _mm_popcnt_u64 で、32 ビットのループカウンターを 64 ビットに置き換えると、パフォーマンスが著しく低下します。
-
[解決済み】Pythonでオペレーティングシステムを確認するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Nasmエラー:オペコードとオペランドの無効な組み合わせ
-
[解決済み] MIPs Assemblyでsllなどを使ってビットをずらすのはなぜですか?
-
[解決済み] x86 - C言語のsscanf関数
-
[解決済み] ビットシフト演算子を使って10進数を2進数で表示するMIPS
-
[解決済み] アセンブリMIPS。配列の初期化および合計
-
[解決済み] インテルアセンブリの%ripレジスタを理解する
-
[解決済み] この状況でのlwとbneは何を意味するのか?
-
[解決済み] POSIX」の意味を教えてください。
-
[解決済み】マルチコアアセンブラとはどのようなものですか?
-
[解決済み] リンカーって何する人?