پروژه‌های دیگر

  • oreboot
    • "coreboot without the C"
    • پشتیبانی از x86، aarch64 و RISC-V.
    • به جای اینکه خود درایورهای زیادی داشته باشد، به LinuxBoot متکی است.
  • Rust RaspberryPi OS tutorial
    • راه‌اندازی، درایور UART و bootloader ساده، JTAG، سطوح exception، مدیریت exception و page tableها
    • برخی ابهامات در مورد نگهداری کَش و راه‌اندازی اولیه در Rust، لزوماً مثال خوبی برای کپی کردن برای کد production نیست.
  • cargo-call-stack
    • تجزیه‌و‌تحلیل استاتیک برای تعیین حداکثر استفاده از stack.
  • آموزش سیستم عامل RaspberryPi، کد Rust را قبل از فعال شدن MMU و حافظه کَش اجرا می‌کند. این کار memory را می‌خواند و روی آن می‌نویسد (به عنوان مثال stack). بااین‌حال:
    • Without the MMU and cache, unaligned accesses will fault. It builds with aarch64-unknown-none which sets +strict-align to prevent the compiler generating unaligned accesses so it should be alright, but this is not necessarily the case in general.
    • If it were running in a VM, this can lead to cache coherency issues. The problem is that the VM is accessing memory directly with the cache disabled, while the host has cacheable aliases to the same memory. Even if the host doesn't explicitly access the memory, speculative accesses can lead to cache fills, and then changes from one or the other will get lost. Again this is alright in this particular case (running directly on the hardware with no hypervisor), but isn't a good pattern in general.