Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 15 additions & 9 deletions src/tools-evaluation.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,15 +48,21 @@ belong to the procedure. In addition, there are architecture specifics to take
into account. Thus, there are multiple implementations of kexec, which are Linux
programs that offer their own interfaces again to pass extra arguments. Besides
those standalone implementations, there are also specialized boot loaders based
on kexec that have their own extra logic, such as FreeBSD's kload or petitboot.

| tool | language | license | usage |
| ---------------------------------------------------------------------------------------------------------------------------------------- | --------- | ------------ | ---------------- |
| [kexec-tools](https://git.kernel.org/pub/scm/utils/kernel/kexec/kexec-tools.git) ([GitHub mirror](https://github.com/horms/kexec-tools)) | C | GPLv2 | Heads, Petitboot |
| [systemd](https://systemd.io/) (wrapper) | C | LGPL-2.1+ | systemd on UEFI |
| [kexecboot](https://github.com/kexecboot/kexecboot) | C | GPLv2 | ? |
| u-root (CLI+mod) | Go | BSD 3-Clause | Google et al |
| [kexlinux](https://github.com/im-0/kexlinux) | Rust | LGPL-3.0+ | ? |
on kexec that have their own extra logic, such as FreeBSD's kboot or petitboot.

> [!NOTE]
> The various tools differ in behavior. Some may not pass a new device tree to
> the next kernel. Pick the most suitable implementation and possibly adjust it.

| tool | language | license | usage |
| ---------------------------------------------------------------------------------------------------------------------------------------- | --------- | ------------ | ------------------------- |
| [kexec-tools](https://git.kernel.org/pub/scm/utils/kernel/kexec/kexec-tools.git) ([GitHub mirror](https://github.com/horms/kexec-tools)) | C | GPLv2 | Heads |
| [kexec-lite](https://github.com/antonblanchard/kexec-lite) (unmaintained, some open PRs and issues, forks may exist) | C | GPLv2 | [Petitboot](petitboot.md) |
| [systemd](https://systemd.io/) (wrapper) | C | LGPL-2.1+ | systemd on UEFI |
| [kexecboot](https://github.com/kexecboot/kexecboot) | C | GPLv2 | ? |
| [kboot](https://github.com/freebsd/freebsd-src/tree/bfa3613/stand/kboot) (FreeBSD) | C | BSD-2-Clause | Netflix |
| u-root (CLI+mod) | Go | BSD 3-Clause | Google et al |
| [kexlinux](https://github.com/im-0/kexlinux) | Rust | LGPL-3.0+ | ? |

## Boot configuration and menus

Expand Down
Loading