Limine: Difference between revisions

From OSDev.wiki
Jump to navigation Jump to search
[unchecked revision][unchecked revision]
Content added Content deleted
m (Minor fixes, remove "in progress" tag, fix link to barebone example as it was moved.)
Line 1: Line 1:
{{In Progress}}

'''Limine''' is a modern, advanced bootloader with support for cutting edge features such as 5-level paging, 64-bit [[Long Mode]], and direct higher half loading thanks to the [[stivale]] boot protocol.
'''Limine''' is a modern, advanced bootloader with support for cutting edge features such as 5-level paging, 64-bit [[Long Mode]], and direct higher half loading thanks to the [[stivale]] boot protocol.


== History ==
== History ==


Limine was created as the reference implementation for the [[stivale]] boot protocol. The protocol was conceived as a response to the shortcomings of [[Multiboot]].
Limine was created as the reference implementation for the [[stivale]] boot protocols. The protocols were conceived as a response to the shortcomings of [[Multiboot]].

It does not support UEFI by design, but stivale is a firmware agnostic protocol and there exist UEFI implementations such as [https://github.com/TomatOrg/TomatBoot TomatBoot].


== Supported protocols and filesystems ==
== Supported protocols and filesystems ==


As mentioned above, Limine supports the [[stivale]] boot protocol, alongside Linux's own boot protocol (which means one can boot Linux fully using Limine), and chainloading to allow booting unsupported third party operating systems such as Windows.
As mentioned above, Limine supports the [[stivale]] boot protocol, alongside Linux's own boot protocol (which means one can boot Linux fully using Limine), and chainloading to allow booting unsupported third party operating systems such as Microsoft Windows.


It supports the [[FAT|FAT32]], [[ext2]], [[ext3]], and [[ext4]] filesystems alongside the lesser known [[echfs]] file system.
It supports the [[FAT|FAT32]], [[ext2]], [[ext3]], and [[ext4]] filesystems alongside the lesser known [[echfs]] file system.
Line 18: Line 18:


== External Links ==
== External Links ==
*[https://github.com/limine-bootloader/limine/blob/unstable/STIVALE.md Stivale boot protocol.]
*[https://github.com/limine-bootloader/limine/blob/unstable/STIVALE2.md Stivale2 boot protocol.]
*[https://github.com/limine-bootloader/limine Limine source code on GitHub.]
*[https://github.com/limine-bootloader/limine Limine source code on GitHub.]
*[https://github.com/osdev-wiki/limine-barebones Barebones example with limine.]
*[https://github.com/limine-bootloader/limine/blob/unstable/STIVALE.md Stivale boot protocol specification.]
*[https://github.com/limine-bootloader/limine/blob/unstable/STIVALE2.md Stivale2 boot protocol specification.]
*[https://github.com/limine-bootloader/limine-barebones Barebones example with Limine.]
*[https://github.com/TomatOrg/TomatBoot TomatBoot] (UEFI implementation of stivale)
*[https://github.com/TomatOrg/TomatBoot TomatBoot] (UEFI implementation of stivale)



Revision as of 06:32, 9 January 2021

Limine is a modern, advanced bootloader with support for cutting edge features such as 5-level paging, 64-bit Long Mode, and direct higher half loading thanks to the stivale boot protocol.

History

Limine was created as the reference implementation for the stivale boot protocols. The protocols were conceived as a response to the shortcomings of Multiboot.

It does not support UEFI by design, but stivale is a firmware agnostic protocol and there exist UEFI implementations such as TomatBoot.

Supported protocols and filesystems

As mentioned above, Limine supports the stivale boot protocol, alongside Linux's own boot protocol (which means one can boot Linux fully using Limine), and chainloading to allow booting unsupported third party operating systems such as Microsoft Windows.

It supports the FAT32, ext2, ext3, and ext4 filesystems alongside the lesser known echfs file system.

How to use Limine with your kernel

A GitHub repository containing a simple example of a 64-bit kernel loaded with Limine can be found in the external links section.

External Links