zxq5 ef70bcf51e - heap allocator now makes sure virtual memory pages are mapped before using them. this means we no longer have to use page faults to allocate frames, it is done automatically.
- fixed the apic code that caused a page fault. it now writes the correct values at the correct physical address
- improved startup logging including displaying how much RAM is installed.
2025-03-05 20:49:21 +00:00
2025-02-28 03:05:10 +00:00
2025-03-04 12:44:42 +00:00
2025-03-03 02:49:56 +00:00
2025-03-04 00:53:06 +00:00
2025-03-04 12:44:42 +00:00
2025-02-27 22:58:10 +00:00
2025-02-20 02:47:18 +00:00
2025-03-03 02:49:56 +00:00
2025-03-03 02:49:56 +00:00
2025-02-27 16:52:31 +00:00
2025-02-17 23:46:23 +00:00
2025-02-20 02:47:18 +00:00
2025-02-28 03:05:10 +00:00

FoundryOS

Cloning

git clone https://git.zxq5.dev/OsDev/FoundryOS.git

Build dependencies

  • latest rust nightly release
  • all necessary rust components installed
  • xorriso: creates ISO images to be booted from.
  • (Optional / Recommended) qemu: to run the kernel. (this may be packaged as qemu-desktop)
  • (Optional) GDB: for debugging the kernel.
rustup update
rustup override set nightly
rustup component add rust-src
rustup component add llvm-tools-preview

Building & Running in qemu

cargo run

Running in GDB

USE_GDB=1 cargo run

Build errors

If you see a qemu error like this:

qemu-system-x86_64: -drive if=pflash,format=raw,readonly=on,file=<...>/OVMF_CODE.fd: Could not open '<...>/OVMF_CODE.fd': No such file or directory

Simply delete the ./build directory and try to rebuild the program. Using the runner script or cargo run will download the required files for you, this is because the script only checks for the presence of one file and not the VARS file.

Alternatively, you may disable using a UEFI firmware with qemu like so:

USE_LEGACY_BIOS=1 cargo run

Debugging

See debugging for some help with this, including commands to help with disassembly.

If you have any other issues, feel free to create an issue or a PR.

S
Description
No description provided
Readme 9.1 MiB
Languages
Rust 92.4%
Shell 7.5%
Assembly 0.1%