Skip to content

Commit 4895c30

Browse files
committed
README fixes after previous PR.
1 parent f4be782 commit 4895c30

File tree

3 files changed

+54
-29
lines changed

3 files changed

+54
-29
lines changed

README.md

Lines changed: 8 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,13 @@
1-
# multiboot2
2-
![Build](https://github.com/rust-osdev/multiboot2/actions/workflows/rust.yml/badge.svg)
3-
[![crates.io](https://img.shields.io/crates/v/multiboot2.svg)](https://crates.io/crates/multiboot2)
4-
[![docs](https://docs.rs/multiboot2/badge.svg)](https://docs.rs/multiboot2/)
1+
# Multiboot2: MBI + Header
52

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)).
106

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.
3211

3312
## License
3413

multiboot2-header/README.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# multiboot2-header
2+
![Build](https://github.com/rust-osdev/multiboot2/actions/workflows/rust.yml/badge.svg)
3+
[![crates.io](https://img.shields.io/crates/v/multiboot2-header.svg)](https://crates.io/crates/multiboot2-header)
4+
[![docs](https://docs.rs/multiboot2-header/badge.svg)](https://docs.rs/multiboot2-header/)
5+
6+
Rust library with type definitions and parsing functions for Multiboot2 headers.
7+
This library is `no_std` and can be used in bootloaders.
8+
9+
## License & Contribution
10+
11+
See main [README](../README.md) file.

multiboot2/README.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# multiboot2
2+
![Build](https://github.com/rust-osdev/multiboot2/actions/workflows/rust.yml/badge.svg)
3+
[![crates.io](https://img.shields.io/crates/v/multiboot2.svg)](https://crates.io/crates/multiboot2)
4+
[![docs](https://docs.rs/multiboot2/badge.svg)](https://docs.rs/multiboot2/)
5+
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.
10+
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`.
32+
33+
## License & Contribution
34+
35+
See main [README](../README.md) file.

0 commit comments

Comments
 (0)