oceanic
1.0.0
中文说明
警告:プロジェクトはまだ非常に早い段階であり、ユーザープログラムはOSでは利用できません。ソフトウェアを仮想マシンまたは裸の金属のいずれかで実行する潜在的なリスクを考慮する必要があります。
現在、このプロジェクトはX86_64アーキテクチャのみをサポートしており、おそらく将来Aarch64をサポートするでしょう。
io-uring Asyncディスパッチャーオブジェクトに基づいたプロクターAsync APIをサポートします。debug - 分解されたアセンブリファイル、デバッグシンボル、オブジェクトファイルの情報が含まれています。仮想マシンのシリアルログファイル。h2oカーネルのソースコードが含まれています。scripts - プロジェクトの構築に必要なスクリプトが含まれています。srcプロジェクト全体のライブラリと実行可能ファイルのソースコードが含まれています。target - バイナリと仮想ディスクファイルが含まれています。xtask -Projectのビルダーが含まれています。錆やその他の依存関係をダウンロードします(たとえば、ubuntu):
# Select the nightly channel for rust
curl --proto ' =https ' --tlsv1.2 -sSf https://sh.rustup.rs | sh
sudo apt install build-essential qemu-system-x86 llvm-14 nasm
export LLVM_PATH= " /usr/lib/llvm-14 "次の目標を追加します。
rustup target add nightly-x86_64-unknown-linux-gnuプロジェクトのルートディレクトリに変更し、次のコマンドを実行します。
cargo xtask dist imgQEMUでOSを実行するには、次のコマンドを実行します。
sh scripts/run.sh qemu N # N for the number of CPUs debug/qemu.logファイルを確認すると、OSの出力が表示されます。
QEMUでデバッグするには、次のコマンドを実行します。
sh scripts/run.sh qdbg N # Same as above新しいターミナルを開きます:
# cd to the working directory
gdb debug/FOO.sym
# FOO for the binary you want to debug;
# you may check it in the directory first.
# In the gdb:
target remote :1234その後、ブレークポイントを設定できます(たとえばkernel.sym):
b kmain
c他のVMソフトウェアでOSを実行する場合は、最初にrun.shを確認し、必要に応じてVM構成ファイルを手動で作成します。仮想ディスクを追加することを忘れないでください、またはシリアルログまたは出力が存在しないかどうかを忘れないでください!
貢献をしたい場合は、最初に私に連絡してください。