mirror of
https://github.com/edera-dev/sprout.git
synced 2025-12-19 15:40:16 +00:00
chore(doc): update readme
This commit is contained in:
18
README.md
18
README.md
@@ -6,11 +6,11 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
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.
|
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
|
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.
|
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
|
## Background
|
||||||
|
|
||||||
At [Edera] we make compute isolation technology for a wide variety of environments, often ones we do not fully control.
|
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
|
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.
|
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
|
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.
|
itself is fully turing complete. This makes modifying boot configuration difficult and error-prone.
|
||||||
|
|
||||||
@@ -52,8 +49,7 @@ simplify installation and usage.
|
|||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
NOTE: Currently, Sprout is experimental and is not intended for production use.
|
**NOTE**: Sprout is still in beta.
|
||||||
The boot menu mechanism is very rudimentary.
|
|
||||||
|
|
||||||
### Current
|
### Current
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,16 @@
|
|||||||
use crate::actions::chainload::ChainloadConfiguration;
|
|
||||||
use crate::actions::ActionDeclaration;
|
use crate::actions::ActionDeclaration;
|
||||||
|
use crate::actions::chainload::ChainloadConfiguration;
|
||||||
use crate::config::RootConfiguration;
|
use crate::config::RootConfiguration;
|
||||||
use crate::entries::EntryDeclaration;
|
use crate::entries::EntryDeclaration;
|
||||||
use crate::generators::list::ListConfiguration;
|
|
||||||
use crate::generators::GeneratorDeclaration;
|
use crate::generators::GeneratorDeclaration;
|
||||||
|
use crate::generators::list::ListConfiguration;
|
||||||
use crate::utils;
|
use crate::utils;
|
||||||
use anyhow::{Context, Result};
|
use anyhow::{Context, Result};
|
||||||
use std::collections::BTreeMap;
|
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::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.
|
/// The name prefix of the Linux chainload action that will be used to boot Linux.
|
||||||
const LINUX_CHAINLOAD_ACTION_PREFIX: &str = "linux-chainload-";
|
const LINUX_CHAINLOAD_ACTION_PREFIX: &str = "linux-chainload-";
|
||||||
|
|||||||
Reference in New Issue
Block a user