os_kernel_foundry 0.1.5

A modular, heavily test-driven foundation crate for building Rust-based operating systems in Rust.
Documentation
# Module reference

This page summarizes each public module and its key items.

## `arch`

Defines architecture traits:

- `Timer` (monotonic tick source)
- `InterruptController` (enable/disable/acknowledge)
- `AddressTranslator` (virtual → physical translation)
- `Architecture` (aggregates the above)

In `#[cfg(test)]` builds the crate provides in-memory mocks used by unit tests.

## `boot`

Boot pipeline model:

- `BootStage<A>`: one initialization stage
- `BootContext<'_, A>`: context passed to each stage
- `BootState`: progress of the pipeline
- `BootError`: error returned by stages
- `run_boot_sequence`: executes stages sequentially

## `kernel`

High-level orchestration:

- `Kernel<A>`
  - `new(arch)`
  - `boot(stages)`
  - `init_devices(registry)`

`Kernel` is intentionally small: it exists to standardize composition rather than enforce a full architecture.

## `device`

Device driver model:

- `DeviceDriver`: minimal driver trait (`name`, `init`)
- `DeviceRegistry`: fixed-capacity registry backed by caller-provided storage
- `DeviceError`: error enum for driver init

## `memory`

Portable memory traits:

- `PhysicalMemoryAllocator`
- `VirtualMemoryManager`

The APIs are `unsafe` to reflect kernel invariants (aliasing, mapping correctness, etc.).

## `sync`

Synchronization primitives suitable for early boot:

- `SpinLock<T>`
- `SpinLockGuard<'_, T>`

## `scheduler`

Cooperative scheduling contracts:

- `SchedulableTask`
- `Scheduler<T>`

## `ipc`

Message-based IPC contracts:

- `Message`
- `MessageEndpoint<M>`