問題タブ [bootloader]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
windows - NTLDR技術情報
私は、どのように機能するかについて、できる限り理解しようとしていますNTLDR
。私の最大の質問は次のとおりです。
1)どのような実行可能形式をNTLDR
使用しますか?
次のことにも興味がありますが、ファイル形式がわかれば、この2つは簡単に理解できると思います。
2)メモリのどこにNTLDR
ロードする必要がありますか?
3)のエントリポイントは何NTLDR
ですか?
windows - Windows XP ブートローダー (NTLDR) はカーネルのインポート宣言に注意を払いますか?
Windows XP ブートローダ ( ntldr
) は実際に Windows カーネル ( ntoskrnl.exe
) のインポート宣言を利用するのでしょうか?
ntoskrnl.exe
には次のインポートされたモジュールがあります: BOOTVID.dll
、HAL.dll
およびKDCOM.dll
。したがって、これら 3 つのモジュールが最初にロードされます。カーネルに、インポート済みとして宣言された別のモジュールがあるとします。ntldr
それもそれをロードする原因になりますか?それともntldr
、これら 4 つのモジュールをロードする必要があることを知っているだけで、それを変更する方法はありませんか?
assembly - リアルモード、割り込みベクタ置換 クラッシュ
きれいなグラフィックスの下でシステムが実際にどのように機能するかについて、もっと学ぼうとしています。そのため、現在、BIOS が起動時にロードする 512 バイトのメモリで遊んでいます。現時点では、それをブートローダーと呼ぶことはできません。とにかく、割り込みベクターを交換していますが、問題があります。割り込み 09h (キーボード) を置き換えた後、正しく機能し、キーを押すと 'Memory messing' が出力されます。しかし、その後何もありません。その後、キーを押すたびに何もしません。システムがクラッシュしているのか、ハンドラーに何か不足しているのかはわかりません。コードは次のとおりです。
linux - カーネルへの引数
カーネルがブートローダーから取得する必要があるものはありますか?通常、カーネルはシステムを最初から起動することができますが、なぜブートローダーから何かが必要なのですか?私はこのようなカーネルからのブートメッセージを見てきました。
では、渡される変数は正確には何ですか?また、変数はブートローダーからどのように渡されますか?スタックを通過しますか?
assembly - ブートローダーがメモリに再配置されるのはなぜですか?
私はブートローダーを作成していて、詳細のほとんどを把握していますが、一部のブートローダーが実行の大部分を開始する前にメモリ内に再配置する理由がわかりません。
誰かがこれを説明できますか?
この動作の例は、次のコメントが含まれている元のv0.01Linuxカーネルブートローダーです。
boot.sはbios-startupルーチンによって0x7c00にロードされ、アドレス0x90000の邪魔にならないように移動し、そこにジャンプします。
documentation - PC MBRブートローダーのソースコードはどこにありますか?
できればよくコメントし、いくつかの関連するドキュメントとMakefileを付けてください。
明確にするために、これは、BIOSによってロードされ、ブートパーティション内のセカンダリブートローダーへのチェーンを担当するマシンコードの512バイト(512バイト-パーティションテーブル)未満です。
編集:Davidとbdonlanの両方の答えは有望に見えます。最小限のDosリンクはMBRのDebianソースパッケージに移動しますが、コメントされたWindows 2000 / XP MBRには、より詳細なコメントがあるようです。
c++ - CまたはC++でブートローダーを作成するには?
私は組み込みシステム用のプログラム、より具体的にはブートローダーを書いています。Cライブラリを使用していくつかのハードウェアコンポーネントと対話し、CまたはC++のいずれかで作成することを選択できます。どちらかを選択する理由はありますか?C ++のオブジェクト指向機能は必要ありませんが、より強力な型システムがあります。プログラムをより堅牢にする他の言語機能を備えているでしょうか?C ++は(常にではありませんが)大きなファームウェアイメージを生成できるため、C++を避ける人もいます。
linux - Linux ブートローダー
SD カードから GPS デバイスで Linux を起動しようとしています。
このデバイスに関する情報をインターネットで見つけたところ、カスタマイズされた Windows CE をロードできるようです。
これを実現するために、拡張子「.bld」を持つブート ローダー ファイルを使用します。
SDカードにUbuntu MIDのISOを解凍しましたが、拡張子がbldのファイルがありません。別のブートローダーシステムを使用していると思います..これはデバイスでは機能しないようです。
私の質問は次のとおりです。
「bld」ファイルを使用して Linux を起動する方法はありますか? もしそうなら、どうすればファイルを作成できますか?
質問がばかげていたり、軌道に乗っていなかったりしたらすみません。ブートローダーについてはよくわかりません..
ご参考までに、デバイスは次のとおりです。
http://www.curtisint.com/web/browser.asp?productID=GPD359&catName=GLOBAL%20POSITIONING%20SYSTEM
より詳細な仕様 (および mod サイト):
http://gpd359.wikidot.com/article:outofbox
編集:「YFGo2CE.bld」という名前のファイル(ファイルにはランダムな文字列のみが含まれています)をSDカードに置き、デバイスをリセットするだけでよいことがわかりました。そこから WindowsCE を直接起動して、提案された Haret ROM ツールをロードできます。
ありがとう!
assembly - 拡張割り込み 13、フォーマットされていないディスクの読み取り
ASM を作成してからしばらく経ちましたが、qemu でテストして、もう一度小さなブートローダーを作成してみることにしました。私の問題は割り込み 13 にあります。何らかの理由でキャリー フラグが設定されているため、読み取りが失敗しています。現在、私のディスク イメージは次のようになっています。
512バイトのBootLoader <-これは(私が知る限り)LBAのブロック0です
主な機能<- これはブロック 1 になります
基本的に、BIOS がメモリにロードする 512 バイトを使用して、同じドライブから次の 512 バイトをロードしたいと考えています。しかし、何が問題なのかわかりません。十分な情報を提供したことを願っています。
コードは次のとおりです。問題は、0x7E00 にジャンプする直前の 2 番目の 0x13 割り込みにあります。
operating-system - コンパイルされたブートセクタをUSBスティックまたはディスクに配置するにはどうすればよいですか?
ブートプロセスを介したPOSTからカーネル、GUIなどまで、OSがどのように機能するかに実際に興味があります。
さて、私は最初から始めなければなりません:ブートセクター
ほとんどのチュートリアルでは、Linuxユーザー向けに.binブートストラッパーをUSBスティックにインストールする方法のみを指定しています。
しかし、XPを使用しているので、512バイトの.binをUSBの正しい位置に配置するにはどうすればよいかを尋ねたいのですが、エクスプローラーでコピーするのではありません:D