Files
xomb/Cargo.toml
wilkie c6fa2895e2 Initial commit: XOmB exokernel foundation
Core kernel infrastructure:
- Multiboot2 boot with GRUB, long mode setup, higher-half kernel
- Serial port output for debugging
- Unified boot info abstraction for future UEFI support

Memory management:
- Physical frame allocator with bitmap tracking
- Page table manipulation via recursive mapping (PML4[510])
- Support for 4KB, 2MB, and 1GB page mappings
- TLB invalidation and proper NXE support

Build system:
- Cargo-based build with custom x86_64 target
- Makefile for QEMU and Bochs testing
- GRUB ISO generation for multiboot2 boot
2025-12-26 14:20:39 -05:00

54 lines
1.2 KiB
TOML

[package]
name = "xomb"
version = "0.1.0"
edition = "2024"
authors = ["Your Name <you@example.com>"]
description = "A Rust-based exokernel for x86_64"
[dependencies]
log = "0.4"
spin = "0.9" # Spinlock for no_std
# UEFI dependencies (only for UEFI build)
uefi = { version = "0.33", features = ["alloc", "logger", "global_allocator"], optional = true }
uefi-raw = { version = "0.9", optional = true }
[dev-dependencies]
# For host-side unit testing
[features]
default = []
uefi = ["dep:uefi", "dep:uefi-raw"]
multiboot2 = []
integration-test = [] # Enable for integration tests in emulator
# Kernel library (unit-testable on host)
[lib]
name = "xomb"
path = "src/lib.rs"
test = true
# UEFI binary
[[bin]]
name = "xomb-uefi"
path = "src/main.rs"
required-features = ["uefi"]
test = false
# Multiboot2 binary (for Bochs/GRUB)
[[bin]]
name = "xomb-multiboot2"
path = "src/multiboot2_main.rs"
required-features = ["multiboot2"]
test = false
[profile.dev]
panic = "abort"
opt-level = 1 # Some optimization even in dev (helps with code size)
[profile.release]
panic = "abort"
lto = true
codegen-units = 1
opt-level = "z" # Optimize for size