#aarch64 #osdev #arm #cortex-a #page-table

no-std app osdemo

An example of combining various libraries for aarch64 OS development

1 unstable release

new 0.1.0 Mar 16, 2025

#378 in Embedded development

MIT/Apache

67KB
1.5K SLoC

aarch64 Rust OS demo

An example of combining various libraries for aarch64 OS development in Rust.

This crate demonstrates how to use a number of aarch64-specific crates:

  • aarch64-paging for page table management.
  • aarch64-rt for the entry point and exception handling.
  • smccc for PSCI and other standard SMC calls to EL3 firmware.

As well as some more general crates for embedded development:

  • buddy_system_allocator for heap allocation.
  • percore for exception masking.

And some device driver crates:

  • arm-gic for the Arm Generic Interrupt Controller.
  • arm_pl031 for the PL031 real-time clock.
  • arm-pl011-uart for the PL011 UART.
  • virtio-drivers for various VirtIO devices.

This is not an officially supported Google product.

License

Licensed under either of

at your option.

Contributing

If you want to contribute to the project, see details of how we accept contributions.

Dependencies

~4MB
~68K SLoC