github hyperlight-dev/hyperlight dev-latest
Latest prerelease from main branch

pre-release3 hours ago

What's Changed

Added

  • SandboxBuilder, the entry point for creating a sandbox. It gathers machine
    configuration, host functions, init data and memory mappings, then builds a
    MultiUseSandbox from a guest binary on disk, a guest binary in memory, or a
    snapshot by @jprendes in #1725

Changed

  • Breaking: Guest MSR state is now saved and restored across snapshots.
    SandboxConfiguration::guest_msrs declares the MSRs a guest depends on:
    declared MSRs are captured in a snapshot and restored, while every other MSR
    resets to a clean default. On KVM the guest may only read or write declared
    MSRs, on MSHV and WHP this is not enforced. by @ludfjig in #991
  • Breaking: Filesystem paths are now represented using PathBuf. GuestBinary::FilePath now stores a PathBuf instead of a String, and MultiUseSandbox::generate_crashdump_to_dir accepts Into<PathBuf> instead of Into<String>. Callers passing a String to GuestBinary::FilePath must convert it using .into().

Certain fixed guest addresses were changed on AArch64 to more easily
accommodate 16k pages without wasting memory. Snapshots taken from
sandboxes using the old addresses will not be loadable by new
hyperlight versions.

Removed

Fixed

  • Fix symbol resolution in guest core dumps for sandboxes created from snapshots by @ludfjig in #1618
  • Reject malformed OCI snapshot metadata and non-regular artifact files during load.
  • Reset XCR0 during x86 snapshot restore.
  • Reseed guest libc rand() and random() after restoring a snapshot to avoid multiple sandboxes sharing PRNG state.

Full Changelog (excl. dependencies)

Full Changelog (dependencies)

New Contributors

Full Changelog: v0.16.0...dev-latest

Don't miss a new hyperlight release

NewReleases is sending notifications on new releases.