Grubで起動し、MultiBoot 1024 x 768 x 32を使用した32ビットグラフィックモードをリクエストする非常に基本的な例
これの目的は、Grubブーツを使用してMultiBootを使用してグラフィックモードを要求し、非常に基本的な描画機能を実行する基本的なサンプルです。
ロイヤルティフリーフォントが含まれており、使用する例を使用して、OSで画面を表示するものを書き込むことができます。
アイデアは、独自のOSを作成し、グラフィックスを追加し、マルチビートを使用して必要なすべてのステップを自分でコーディングするのではなく、それを把握したいと考えている人々のリファレンスになるということです。
WSL 2を使用して、Windows 11のVirtualBox 7.0およびQEMUをテストして作業します。
MultiBootは、ブート実行可能ファイルの特定のオフセットで特定の値を設定することで動作するため、以下のグラフィックモードを要求しています。
.set WIDTH , 1024 / * requested width * /
.set HEIGHT , 768 / * requested height * /
.set DEPTH , 32 / * requested depth * /Grubはこれらの値を読み取り、アプリケーションに実行を引き渡す前にグラフィックモードを設定します。そのため、アプリケーションが開始されると、要求されたモードが有効な場合は、すでにそのモードになります。
Grubは、グラフィックモードが設定されているものやその他の関心のある値を含むMultiBootヘッダーを通過します。
framebuffer_addrは、グラフィック操作を書く場所です。
注意すべきことは、grubメニュー[https://askubuntu.com/questions/16042/how-to-get-the-grub-menu-at-boot-time] cliで有効なグラフィックモードvideoinfoリクエストしてください。
32ビットのグラフィックを使用することをお勧めします。シンプルで、他のオプションよりも速くても速いと考えていたでしょう。考えに行く前に、8ビットのグラフィックはより速く測定するでしょう。
基本的な8x8フォントは、フォントの例を使用してtempleosで作成されました。
Linuxの下で構築する必要があります(WLSを試しましたが、ISOイメージは作成されません)Make ScriptはISOを作成します。
g++
binutils
libc6-dev-i386
VirtualBox
grub-legacy
xorriso
VirtualBoxで新しい仮想マシンを作成するISOブートをマウントする
それは何のためのドライバー、メモリ管理、キーボードやマウスIO、ディスクIOではなく、何もありません。
sudo apt install gcc g ++ make grub-pc-bin xorriso
VirtualBoxが構成されたら、VirtualBoxの以前のバージョンで作成したプロファイルがあり、リリースで7.0に再テストされました
コマンドプロンプトから(vboxmanage.exeは別の場所にインストールされます)/mnt/d/virtualbox/vboxmanage.exe startvm multiboot