Orange Slice is a research kernel and hypervisor with an end goal of creating a deterministic hypervisor. This will be developed almost entirely in my free time, and will probably move slow. However I will try to stream almost all dev for this project, such that people can ask questions and hopefully learn a thing or two about kernel and hypervisor development! This deterministic hypervisor is going to be designed from the start for fuzzing. Having determinism in a hypervisor would allow us to never have an issue with reproducing a bug, regardless of how complex the bug is. However as a hypervisor we will benefit from the performance of hardware-accelerated virtualization. The end goal is a deterministic hypervisor, capable of booting Windows and Linux, with less than a 5x performance slowdown to achieve instruction-and-cycle level determinism for cycle counts and interrupt boundaries.
A UEFI Rust sample that uses framebuffers. No docs, only a few hours old, still under development.
The r-efi-string project provides types for UEFI strings, analogous to the native Rust string types and converters between them.
A new UEFI/Rust dev environment:
Someone needs to sit down and clarify the various UEFI Rust bindings/libraries, which ones are better than others, which are usable, etc. I think there’s about 4 different Rust/UEFI implementations now.
Here’s a new set of UEFI/Rust bindings and samples.
libredfish is a new Rust-based Redfish library. Not to be confused by the libredfish library in C by the DMTF.
The object of this document is to provide hints and recommendations for secure applications development using the Rust programming language. It is not intended to be a course on how to write Rust programs, there are already plenty of good learning resources for this purpose (see the External references section below). The purpose is rather to guide the programmer and to inform him about certain pitfalls, especially in case he is involved in the development of applications with strong security requirements. These recommendations form a complement to the good level of trust the Rust language already provides. That said, recalls are sometimes necessary for clarity, and the experienced Rust programmer may rely solely on Recommendation or Warning inserts.
The r-efi project provides the protocol constants and definitions of the UEFI Reference Specification as native rust code. The scope of this project is limited to those protocol definitions. The protocols are not actually implemented. As such, this project serves as base for any UEFI application that needs to interact with UEFI, or implement (parts of) the UEFI specification.
Early code: print!(b”Hello, world!\n“); level
nuefil is yet another Rust UEFI libraray.
It is based on the UEFI libaray of Redox.
This repository contains the source code for:
* efivar – A Rust crate to read and write EFI variables
* efiboot – A command-line tool to manage the UEFI boot manager
A library to parse ACPI tables and AML, written in Rust. Designed to be easy to use from inside a kernel written in Rust, and fully tested. Acpi is currently very early in development, will be highly unstable and is next to useless for actually parsing ACPI or AML.
Nikolaj is learning Rust. He just rewrote one C tool to Rust: