diff --git a/README.md b/README.md index 50197bd..2700097 100644 --- a/README.md +++ b/README.md @@ -6,11 +6,11 @@ -Sprout is an **EXPERIMENTAL** programmable UEFI bootloader written in Rust. +Sprout is a programmable UEFI bootloader written in Rust. -Sprout is in use at Edera today in development environments and is intended to ship to production soon. +It is in use at Edera today in development environments and is intended to ship to production soon. -The name "sprout" is derived from our company name "Edera" which means "ivy." +The name "Sprout" is derived from our company name "Edera" which means "ivy." Given that Sprout is the first thing intended to start on an Edera system, the name was apt. It supports `x86_64` and `ARM64` EFI-capable systems. It is designed to require UEFI and can be chainloaded from an @@ -18,16 +18,13 @@ existing UEFI bootloader or booted by the hardware directly. Sprout is licensed under Apache 2.0 and is open to modifications and contributions. -**IMPORTANT WARNING**: Sprout does not support all of UEFI Secure Boot yet. -See [this issue](https://github.com/edera-dev/sprout/issues/20) for updates. - ## Background At [Edera] we make compute isolation technology for a wide variety of environments, often ones we do not fully control. -Our technology utilizes a hypervisor to boot the host system to provide a new isolation mechanism that works -with or without hardware virtualization support. To do this we need to inject our hypervisor at boot time. +Our technology uses a hypervisor to boot the host system to provide a new isolation mechanism that works +with or without hardware virtualization support. To do this, we need to inject our hypervisor at boot time. -Unfortunately, GRUB, the most common bootloader on Linux systems today, utilizes a shell-script like +Unfortunately, GRUB, the most common bootloader on Linux systems today, uses a shell-script like configuration system. Both the code that runs to generate a GRUB config and the GRUB config itself is fully turing complete. This makes modifying boot configuration difficult and error-prone. @@ -52,8 +49,7 @@ simplify installation and usage. ## Features -NOTE: Currently, Sprout is experimental and is not intended for production use. -The boot menu mechanism is very rudimentary. +**NOTE**: Sprout is still in beta. ### Current diff --git a/src/autoconfigure/linux.rs b/src/autoconfigure/linux.rs index d266a81..29ea700 100644 --- a/src/autoconfigure/linux.rs +++ b/src/autoconfigure/linux.rs @@ -1,16 +1,16 @@ -use crate::actions::chainload::ChainloadConfiguration; use crate::actions::ActionDeclaration; +use crate::actions::chainload::ChainloadConfiguration; use crate::config::RootConfiguration; use crate::entries::EntryDeclaration; -use crate::generators::list::ListConfiguration; use crate::generators::GeneratorDeclaration; +use crate::generators::list::ListConfiguration; use crate::utils; use anyhow::{Context, Result}; use std::collections::BTreeMap; -use uefi::fs::{FileSystem, Path, PathBuf}; -use uefi::proto::device_path::text::{AllowShortcuts, DisplayOnly}; -use uefi::proto::device_path::DevicePath; use uefi::CString16; +use uefi::fs::{FileSystem, Path, PathBuf}; +use uefi::proto::device_path::DevicePath; +use uefi::proto::device_path::text::{AllowShortcuts, DisplayOnly}; /// The name prefix of the Linux chainload action that will be used to boot Linux. const LINUX_CHAINLOAD_ACTION_PREFIX: &str = "linux-chainload-";