問題タブ [multiboot]

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.

0 投票する
1 に答える
766 参照

boot - QEMU でマルチブートとフロッピーの両方を使用する

オペレーティングシステムを開発しようとしています。OSDevのBarebones チュートリアルを完了しましたが、マルチブートに関する問題がまだ残っています。

私が理解しているように、チュートリアルに従ってマルチブート イメージを作成すると、ELF 形式のバイナリ ファイルが作成されます。オプションを指定すると、この ELF 実行可能ファイルが QEMU によってメモリにロードされ-kernelます。したがって、メモリ内に単一の実行可能プログラムがあり、エントリ ポイントがあります。いくつかの関数とライブラリが並んでいます。記憶には他に何もありません。また、セクタを読み書きできるフロッピーまたはディスク イメージもありません。これは主に、その点に関して QEMU に何も指定していないためです。

しかし、私が達成したいのは、QEMU が ELF 実行可能ファイルをロードした後、セクターを読み書きできるディスクまたはフロッピー アーキテクチャが必要なことです。また、そこからいくつかのユーザープログラムをロードしたり、ファイルシステムをセットアップしたりしたいと考えています。これまでのところ、私が考えているのは次のとおりです。

qemu-system-i386 -kernel myKernel.bin -fda myDisk.image

または、myKernel.binファイルを取得し、512 バイトに揃えられるまでゼロで埋めてから、残りのディスク イメージを追加する必要があります。

私の質問は、QEMU でこの機能を実現するにはどうすればよいかということです。ディスク ドライバの作成に取り掛かる前に、このような作業が可能かどうかを知る必要があります。無理なら別のアプローチも考えられますが、今の考えは以上です。私はすでに調べましたが-initrd、それは私が望むものではありません。また、QEMU によって RAM にファイルをロードしたくありません。代わりに、ディスク イメージを自分で操作したいと考えています。それを行う方法に関する提案はありますか?

0 投票する
1 に答える
422 参照

windows - Windows から Windows に再起動するにはどうすればよいですか? (リモートで、windows-ubuntu マルチブート)

デスクトップで Windows 10 と ubuntu 14.04LTS を使用しています。ラップトップからリモートでデスクトップを使用したいです。

私のgrubは、デフォルトのOSブートシステムとしてubuntuを選択しています。そして、デスクトップをubuntuからWindowsにリモートで再起動する方法を知っています(sudo grub-reboot boot_number && sudo reboot)

しかし、どうすればWindowsからWindowsに再起動できますか? この状況で、Windows から再起動すると、デフォルトで ubuntu が選択されます。しかし、時々、WindowsからWindowsに再起動したいのです!

要約すると...
1. WindowsからWindowsまたはubuntuに/ ubuntuからWindowsまたはubuntuにリモートでリボットしたい。
2.私は他のことをrebbotする方法を知っています.
3.しかし、WindowsからWindowsに再起動する方法がわかりません

前もって感謝します。

0 投票する
1 に答える
101 参照

x86 - 保護モードの初期化中のスタック構造

マルチブート仕様に準拠した単純なカーネルに取り組んでいます。これはクラス プロジェクト用なので、コードを直接投稿することはできませんが、私の質問では、マルチブート サンプル コードの修正版を使用していると言えれば十分です。

グローバル記述子テーブル レジスタ (GDTR) が適切なアドレスを指すように設定しようとしています。そのために、OSDev wikiのGDT チュートリアルに従っています。チュートリアルでは、フラット保護モードのサンプル コードは、スタックから 2 つの値をロードし、それらを GDTR に入れるだけです。スタックが初期化される前にGDTR を設定する必要があると思っていたので、これは私を混乱させます。カーネルがまだ初期化していない場合、ESP がどこを指しているのかわかりません。GRUBがboot.Sのコードにジャンプする前に何かに設定する可能性があると思いますが、それを示唆するドキュメントを見つけることができませんでした。

tl;dr -グローバル記述子テーブルのアドレスとサイズをロードするときに、 OSDev GDT チュートリアルが ESP に関連するアドレスからデータを取得するのはなぜですか?

0 投票する
1 に答える
3571 参照

x86 - x86 ASM: DD は「命令」として使用されていますか?

次の x86 アセンブリ コードでは、次のようになります。

値はどの変数にも割り当てられていないようです。では、このコード スニペットは何をするのでしょうか。メモリに保存されていると聞いたことがありますが、正確にはどこですか?