|
1 |
| -# multiboot2 |
2 |
| - |
3 |
| -[](https://crates.io/crates/multiboot2) |
4 |
| -[](https://docs.rs/multiboot2/) |
| 1 | +# Multiboot2: MBI + Header |
5 | 2 |
|
6 |
| -Rust library that helps you to parse the multiboot information structure (mbi) from |
7 |
| -Multiboot2-compliant bootloaders, like GRUB. It supports all tags from the specification |
8 |
| -including full support for the sections of ELF-64 files. This library is `no_std` and can be |
9 |
| -used in a Multiboot2-kernel. |
| 3 | +This repository contains the crates `multiboot2` and `multiboot2-header`. |
| 4 | +Please check their individual README-files ([multiboot2](multiboot2/README.md), |
| 5 | +[multiboot2-header](multiboot2-header/README.md)). |
10 | 6 |
|
11 |
| -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. |
12 |
| - |
13 |
| -## Background: The Multiboot 2 Information Structure |
14 |
| -The Multiboot information structure looks like this: |
15 |
| - |
16 |
| -Field | Type |
17 |
| ----------------- | ----------- |
18 |
| -total size | u32 |
19 |
| -reserved | u32 |
20 |
| -tags | variable |
21 |
| -end tag = (0, 8) | (u32, u32) |
22 |
| - |
23 |
| -There are many different types of tags, but they all have the same beginning: |
24 |
| - |
25 |
| -Field | Type |
26 |
| -------------- | ----------------- |
27 |
| -type | u32 |
28 |
| -size | u32 |
29 |
| -other fields | variable |
30 |
| - |
31 |
| -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`. |
| 7 | +The `multiboot2` crate helps to parse the Multiboot2 information structure |
| 8 | +(MBI) and is relevant in kernels, that get booted by a bootloader such as |
| 9 | +GRUB, for example. `multiboot2-header` is relevant, if you want to write a bootloader that provides a MBI to a payload for |
| 10 | +example. |
32 | 11 |
|
33 | 12 | ## License
|
34 | 13 |
|
|
0 commit comments