Awesome
x86_64 library
Support for x86_64 specific instructions (e.g. TLB flush), registers (e.g. control registers), and structures (e.g. page tables).
Crate Feature Flags
nightly
: Enables features only available on nightly Rust; enabled by default.instructions
: Enabled by default, turns on x86_64 specific instructions, and dependent features. Only available for x86_64 targets.
Minimum Supported Rust Version (MSRV)
If no nightly features are enabled, Rust 1.59.0 is required. This can be done by either:
--no-default-features --features instructions
--no-default-features
If the nightly
feature or any of its sub-features is enabled (which is the
default), a recent nightly is required.
Other OS development crates
This crate does not attempt to handle every facet of OS development. Other useful crates in this space include:
raw-cpuid
: safe wrappers around thecpuid
instruction- Provides parsed versions of the CPUID data, rather than just raw binary values.
- Support for AMD and Intel specific values.
- Works on x86 and x86_64 systems, in both user and kernel mode.
uefi
: abstractions for UEFI (the successor to BIOS)- Provides UEFI tables, functions, and types.
- Useful for writing UEFI applications, or calling UEFI functions from your OS.
- Works on a variety of modern platforms, not just x86_64.
volatile
: interface toread_volatile
andwrite_volatile
- Makes it easier to program MMIO interfaces and devices.
- Works on any Rust target.