33 releases (17 breaking)
0.19.0 | Sep 21, 2023 |
---|---|
0.18.1 | Jul 13, 2023 |
0.17.0 | Jul 12, 2023 |
0.15.1 | Mar 18, 2023 |
0.3.1 | Oct 31, 2016 |
#194 in Operating systems
1,441 downloads per month
Used in 2 crates
190KB
4K
SLoC
multiboot2
Library that assists parsing the Multiboot2 Information Structure (MBI) from
Multiboot2-compliant bootloaders, such as GRUB. It supports all tags from the
specification including full support for the sections of ELF files. This library
is no_std
and can be used in a Multiboot2-kernel.
It follows the Multiboot 2.0 specification at https://www.gnu.org/software/grub/manual/multiboot2/multiboot.html and the ELF 64 specification at http://www.uclibc.org/docs/elf-64-gen.pdf.
Features and no_std
Compatibility
This library is always no_std
without alloc
. However, the default builder
-
feature requires the alloc
-crate and an #[global_allocator]
to be available.
You need the builder
only if you want to construct new boot information
structures at runtime. For parsing, this is not relevant, and you can
deactivate the default feature.
Background: The Multiboot 2 Information Structure
The Multiboot information structure looks like this:
Field | Type |
---|---|
total size | u32 |
reserved | u32 |
tags | variable |
end tag = (0, 8) | (u32, u32) |
There are many different types of tags, but they all have the same beginning:
Field | Type |
---|---|
type | u32 |
size | u32 |
other fields | variable |
All tags and the mbi itself are 8-byte aligned. The last tag must be the end tag, which is a tag of type 0
and size 8
.
MSRV
The MSRV is 1.69.0 stable.
License & Contribution
See main README file.
Dependencies
~2MB
~41K SLoC