Getting Started
A9NをBuildして起動する
SPENCERの標準構成を使い,A9N Microkernel上でNun User Payloadが動作することを確認します.
必要なTool
- Git
- rustup / Cargo
- CMake 3.29以上
- LLVM 18以上,Clang,Clang++,LLD,llvm-config
- NASM
- QEMU
Rust ToolchainはSPENCERのrust-toolchain.tomlで指定されます.初回BuildではToolchainとCargo Packageの取得にNetwork接続を使います.
Sourceを取得する
通常はSSHを使い,SPENCERをSubmoduleとともに取得します.
git clone --recurse-submodules \
[email protected]:horizon2038/spencer.git spencer
cd spencer
git submodule statusSSH Credentialを利用できない環境では,Submodule URLをHTTPSへ置換して取得できます.
git -c url."https://github.com/"[email protected]: \
clone --recurse-submodules \
https://github.com/horizon2038/spencer.git spencer
cd spencer
git submodule statusBuildする
cargo xtask build \
--arch x86-64 \
--platform qemu \
--releaseSPENCERはA9N Kernel,A9NLoader-rs,既定のNun User Payloadを個別にBuildし,Boot可能なDisk Imageを生成します.
Kernel
out/x86_64-qemu-release/a9n/kernel.elfLoader
out/x86_64-qemu-release/a9nloader/a9nloader-rs.efiDisk Image
out/x86_64-qemu-release/spencer.imgQEMUで起動する
cargo xtask run \
--arch x86-64 \
--platform qemu \
--release起動が完了すると,Serial出力に次の内容が表示されます.
Nun - an operating system framework based on the A9N Microkernel
Configuring <init> ...
Configuring Initial IPC buffer to thread local storage...
Hello, world!
version: <kernel version>