中文说明
Предупреждение: проект все еще находится на самой ранней стадии, а пользовательские программы недоступны в ОС. Любой потенциальный риск запуска программного обеспечения либо в виртуальных машинах, либо на обнаженных металлах должен учитывать пользователем.
В настоящее время проект поддерживает только архитектуру X86_64, и в будущем он, вероятно, будет поддерживать Aarch64.
io-uring .debug - содержит декомпилированные файлы сборки, символы отладки, информационные данные объекта. и последовательные файлы журнала виртуальных машин.h2o - содержит исходный код для ядра.scripts - содержит сценарии, необходимые для создания проекта.src - содержит исходный код библиотек и исполнителей для всего проекта.target - содержит двоичные файлы и виртуальные дисковые файлы.xtask - содержит строитель для проекта.Скачать Rust и другие зависимости (например, 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 imgЧтобы запустить ОС с QEMU, запустите следующую команду:
sh scripts/run.sh qemu N # N for the number of CPUs и проверьте файл debug/qemu.log , вы должны увидеть вывод ОС.
Чтобы отлаживать с 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Если вы хотите запустить ОС с другими программами виртуальной машины, сначала проверьте run.sh и вручную создайте файлы конфигурации виртуальной машины по своему желанию. Не забудьте добавить виртуальный диск, и последовательный журнал или отсутствие вывода будет присутствовать!
Если вы хотите внести вклад, обязательно свяжитесь со мной первым.