問題タブ [bochs]

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 投票する
3 に答える
1138 参照

assembly - ブートローダーのクラッシュ

現在、ブートローダーを開発していますが、問題があります。

私はBochsを使用してブートローダーをテストし、ブートローダーをコンパイルしてディスクイメージを作成します。

これはbootloader.asmです:

そしてpostmbr.asm:

これはBochsのクラッシュログです。

そしてこれはBochsの設定ファイルです:

何が悪いのかわかりません。他のプラットフォームでブートローダーをテストしていません。

0 投票する
0 に答える
509 参照

linux-kernel - Linuxカーネル0.12をコンパイルしてbochsとgdbでデバッグするには?

Linux 0.12 ソース コードと bochs ソース コードをダウンロードしました。linux-0.12 で Linux 0.12 ソース コードをコンパイルしました。次に、bochs を gdb-stub でコンパイルし、debian 6.0 にインストールしました。
ただし、gdb と bochs を使用して linux-0.12 カーネルをデバッグすると、bochs で「パニック: HD コントローラーの準備ができていません」と表示されます。それを正しくデバッグする方法は?

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

aix - サーバーx86/x64を使用している場合、C++上のAIX6/7でソフトウェアを開発するにはどうすればよいでしょうか。

サーバーx86/x64を使用している場合、C++上のAIX6/7でソフトウェアを開発するにはどうすればよいでしょうか。誰かが個人的にそれを試み、個人的な経験からアドバイスします:PowerPC AIXでの移植性のコンパイルを保証するx64用のIBMコンパイラーを使用するか、PowerPCx64をエミュレートしてAIXをインストールしてその下でコンパイルするWindwosx64で仮想マシンを使用できます。または、AIXでクラウドのサービスを購入して開発する方がよい場合があります。どこでそれを行うことができますか?

私が知っているように、QEMUはAIXをサポートしていません。Simics、OVPSim、Bochsなどについてどう思いますか?

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

debugging - bochsを使用してデバッグするときにステップオーバーしてステップリターンする方法

たとえば、今私は次の行にデバッグしています:

関数に足を踏み入れたくありません。つまり、私はステップオーバーして、アドレス:0008:00009048fに直接行きたいと思います。ボックはそれを行うことができますか?そして、私が機能に足を踏み入れた場合、どうすれば直接戻ることができますか?

0 投票する
3 に答える
6499 参照

operating-system - PintOS、-vオプションによるカーネルパニック、ubuntuでbochs

.../build/ で "pintos -- run alarm-multiple" を実行すると、すべて問題ないようです。

しかし、.../build/ で "make check" を実行すると、7 つのテストすべてが同じ "Run did not start up successfully: no "pintos booting" message" で失敗しました。

pintos -v -k -T 60 --bochs -- -q run alarm-single < /dev/null 2> tests/threads/alarm-single.errors > tests/threads/alarm-single.output perl -I../.. ../../tests/threads/alarm-single.ck tests/threads/alarm-single tests/threads/alarm-single.result FAIL tests/threads/alarm-single Run didn't start up properly: no "Pintos booting" message

次に、.../build で「pintos -v -k -T 60 --bochs -- -q run alarm-single」を発見しました。

Bochs は次のメッセージで終了しています: [ ] bochsrc.txt:12: 表示ライブラリ 'nogui' が利用できません

「-v」を取り除けば問題ありません。

この表示ライブラリ「nogui」が利用できない問題を修正する方法

0 投票する
4 に答える
15840 参照

assembly - int 13hでハードドライブからセクターを読み書きする

私は簡単なプログラムを持っています。ハード ドライブ (mbr ではない) から最初のセクターを読み取り、それを 0 セクター (mbr) に書き込む必要があります。しかし、うまくいきません。間違った DAP に接続されていると思います。ありがとう。

UPD: 新しいコード

PS私はBochsを使用しています。

0 投票する
0 に答える
383 参照

macos - Mac 10.8.3にbochsをインストールする

mac osx 10.8.3 を実行する mac マシンに bochs エミュレーターをインストールしようとしていますが、./configure を実行して make すると、make の最後に次のエラーが表示されます。

私のシステムにbochsをインストールする方法の手がかりはありますか?ありがとう

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

c - カーネル開発 アセンブリと C で

bochs を使用して Linux でアセンブリと C を使用して単純なカーネルを作成しようとしています。アセンブリ コードから C コードを呼び出そうとするたびに、エミュレータでエラーが発生し、シミュレーションがリセットされるという問題。16ビットリアルモードで開始するときは、このコードを使用します

保護モードに切り替えた後、これはコードです

c関数は基本的に空の関数だけで何もしません

私が使用しているコマンドについて私はこれらを使用します

どこに問題があるのか​​わからない。何か案は ?

注: 次の GDT および switch_to_pm 関数を使用しています

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

graphics - グラフィック付きボッホ

LinuxでBochsを使用しています。正常に動作しますが、対処できていない問題があります。vga-info (使用可能なモード、リニア フレームバッファ (LFB) のアドレス) を取得し、リアル モードで 1024*768*24 に切り替えます。vga-info モードによると、118h (1024*768*24) がサポートされ、LFB は E000:0000 からのものです (つまり、segment:offset のため E0000、またはフラット アドレッシングでは 0xE0000000 ですが、そのメモリはほぼ 3.5 であるため存在しません)。 Gb)。その後、プロテクト モード (PM) に切り替えて E0000 にデータを書き込みましたが、ピクセルが表示されません。0xE0000000 に書き込んでも同様です。ただし、A0000 に書き込んでも、A0000-C0000 メモリ (128Kb) のみがマップされている場合はそうです。32 ビットと LFB (ページングなし) のため、PM を使用したいと思います。低解像度 (例: 320*200*256) のビデオメモリが A0000 にマップされていることを知っています。Bochs-config では、vbe が有効になっています (vga: 拡張子=vbe) . bochsout.txt には、「VBE Bochs Display Extension Enabled」と表示されます。

質問: なぜビデオメモリは E0000 ではなく A0000 からのものなのですか? ビデオメモリが 128Kb しかないのはなぜですか? (次のようになります: 1024*768*3 バイト、つまり 2.25 Mb)

この方法では、ページングなしで PM でグラフィックスを実行できないか、何か間違ったことをしています。

前もってありがとう、ロブ

http://wiki.osdev.org/Bochs_Graphics_Adaptorで何かを見つけました:

"リニア フレーム バッファ (LFB) の使用

リニア フレーム バッファを使用する場合、BGA はすべてのグラフィックス メモリをリニアに公開します。古いバージョンの Bochs と QEMU では、場所は 0xE0000000 (VBE_DISPI_LFB_PHYSICAL_ADDRESS) に固定されています。ただし、Bochs が ISA ビデオ カードではなく PCI ビデオ カードをエミュレートするように構成されている場合、フレームバッファーのアドレスは固定されなくなりますが、デバイス 0x1234:0x1111 の最初の PCI BAR から読み取ることができます。LFB を有効にするには、VBE_DISPI_LFB_ENABLED を使用します。 VBE 拡張機能を有効にする場合は、フラグ (0x40) (したがって、VBE_DISPI_ENABLED | VBE_DISPI_LFB_ENABLED (0x41) の値を書き込みます)。

QEMU は VBE_DISPI_LFB_ENABLED フラグに注意を払いません。リニア フレーム バッファとメモリ バンクの両方が常に使用可能です。Bochs は旗に注意を払います。LFB モードでは、バンクを変更する要求を無視し、バンク メモリに書き込んでも何も起こりません。バンク モードでは、LFB メモリに書き込んでも何も起こりません。"

Bochs は最大 1Gb のメモリをサポートしており、これははるかに大きいため、この 0xE0000000 を理解できません。ところで、--enable-vbe を指定して Bochs をコンパイルして vbe を有効にすることは非推奨です。bochs-configfile では代わりに「vga: extension=vbe」を使用する必要があります。

解決策が見つかりました (vbe モードの設定中にビット「use LFB」を設定):

移動斧、4F02h ; vbe モードを設定する

mov bx, 118h ; モード 1024*768*24

または bx, 0100000000000000b ; ビット 14 を設定 (LFB を使用)

整数 10h

そして、vga-modeinfo-block が言ったように、LFB は 0xE0000000 からです。