窓の下でbochsを実行する

簡単な紹介:Bochsは、主にx86アーキテクチャに基づく無料のオープンソースPCエミュレーターです。linux0.11カーネルの学習は、このシミュレーターで実行することをお勧めします。

  • 環境設定手順:

1. Linux0.11システムパッケージをダウンロードします。このリンクのダウンロードパッケージには、すでにBochsソフトウェアが含まれています。

クリックしてリンクhttp://oldlinux.org/Linux.old/bochs/linux-0.11-devel-040329.zipを開きます
。2。linux-0.11-devel-040329.zipを解凍します。ディレクトリ構造は次のとおりです。

 

 

ここで実際に使用されるファイルは、Bochs-2.1.1.exe、bochsrc-hd.bxrc、bootimage-0.11、bootimage-0.11-hd、hdc-0.11.imgです。

3.Bochs-2.1.1.exeをクリックしてインストールします。

4.インストールが完了したら、linux-0.11-devel-040329の下にあるすべてのファイルを、インストールしたばかりのbochsの下のルートディレクトリにコピーします。元のディレクトリは次のとおりです。

コピー後のディレクトリは次のとおりです。

 

 

5.コピーが完了したら、bochsrc-hd.bxrcを実行します。インストールが成功すると、開いた後に次のインターフェイスが表示されます。

 

 

これはすでにx86PCシミュレーター上に構築されたLinuxオペレーティングシステムです。Linuxを操作するためのLinuxオペレーティングプラットフォームコマンドを確立します。オペレーティングシステムを学ぶ必要があるため、Linuxカーネルを理解する能力を実現するには、オペレーティングシステムをコンパイルし、Linuxで簡単なソースコードの変更を完了する必要があります。次に、主にLinuxカーネルのソースコードの変更とカーネルのコンパイルプロセスについて説明します。Linuxバージョンのため、正常にコンパイルできるようにコードを調整する必要があります。

 

  • カーネルコンパイルプロセス:

 

1. / usr / src / linuxディレクトリに入り、次の図に示すように、コマンドcd ../src/linuxを入力します。

 

 

2.コンパイルするには、コマンドmakecleanおよびmakeを入力します。

 

 

次のようなエラーが表示された場合:gcc-cc1:無効なオプション「string-insns」。これは、Linuxディレクトリの下のMakefileの-mstring-insnsパラメータを削除するためです。さらに、カーネルディレクトリの下の各サブディレクトリfs、lib、kernelおよび3つのドライバサブディレクトリ(math、blk_drv、chr_drv)のMakefikeの-mstring-insnsパラメータが削除されます。ここでは、ルートディレクトリのMakefileファイルの変更のみを示しています。

3、依次修改:/linux/Makefile、/linux/fs/Makefile、/linux/lib/Makefile、

/ linux / kernel / Makefile、/ linux / kernel / math / Makefile、/ linux / kernel / blk_drv / Makefile、/ linux / kernel / chr_drv / Makefile。Linuxディレクトリで、「viMakefile」と入力します。以下に示すように:

 

 

ファイル内の-mstring-insnsパラメーターを見つけて削除し、保存します。

4. / usr / local / binでファイルarを見つけ、arの名前をgarに変更して、コマンドmv argarを入力します。以下に示すように:

 

 

5. linuxディレクトリに戻り、make cleanとmakeを再入力して、カーネルコンパイルリンクを完成させます。

 

 

上記のプロンプトが表示されます。つまり、サーフェスプログラムが正常にコンパイルされます。コンパイル後、オペレーティングシステムの機能を拡張し、オペレーティングシステムを学習するという目的を達成するために、カーネルソースコードの変更を開始できます。ここでは、Linuxオペレーティングシステムのブートアイテムbootsect.sのソースコードを変更して、起動後にパーソナライズされた文字列を出力するだけです。

6. / usr / src / linux / bootディレクトリに入り、bootsect.sソースコードを変更し、保存して終了します。

 

! Print some inane message
mov    ah,#0x03        ! read cursor pos
xor    bh,bh
int    0x10
mov    cx,#47
mov    bx,#0x0007        ! page 0, attribute 7 (normal)
mov    bp,#msg1
mov    ax,#0x1301        ! write string, move cursor
int    0x10
msg1:
.byte 13,10
.ascii "Loading system ...this is create by demon"
.byte 13,10,13,10
.org 508

 

7.変更が完了したら、linuxディレクトリでmakeコマンドを再入力してコンパイルを完了します。

8. makeが成功した後、ブートイメージファイルイメージを生成します。このイメージファイルを出力する必要がある場合は、最初にbootimage-0.11-hdファイルをバックアップしてから、次のコマンドを使用してbootimage-0.11-hdを新しいブートファイルに置き換え、次のコマンドを入力します。ddbs = 8192 if =画像= / dev / fd0。以下に示すように:

9 [リセット]をクリックして、Linuxオペレーティングシステムを再起動します。以下に示すように:

 

おすすめ

転載: blog.csdn.net/wyyy2088511/article/details/111351584