中文说明
WARNING: The project is still at the very early stage, and user programs are unavailable in the OS. Any potential risk of running the software either in virtual machines or bare metals should be taken into account by the user.
Currently, the project only supports x86_64 architecture, and it will probably support aarch64 in the future.
io-uring.debug - contains the decompiled assembly files, debug symbols, object file informations. and the serial log files of the virtual machines.h2o - contains the source code for the kernel.scripts - contains the scripts required for building the project.src - contains the source code of libraries and executables for the entire project.target - contains the binaries and virtual disk files.xtask - contains the builder for the project.Download rust and other dependencies (Ubuntu for example):
# 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"Add the following target:
rustup target add nightly-x86_64-unknown-linux-gnuChange to the project's root directory and run the following command:
cargo xtask dist imgTo run the OS with qemu, run the following command:
sh scripts/run.sh qemu N # N for the number of CPUsand check debug/qemu.log file, you should see the output of the OS.
To debug with qemu, run the following command:
sh scripts/run.sh qdbg N # Same as aboveand open a new terminal:
# 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 :1234then you can set breakpoints (KERNEL.sym for example):
b kmain
cIf you want to run the OS with other VM softwares, check the run.sh first, and manually create VM configuration files as you wish. Don't forget to add the virtual disk and the serial log or no output will be present!
If you want to make contributions, be sure to contact me first.