Limine: Difference between revisions

From OSDev.wiki
Jump to navigation Jump to search
[unchecked revision][unchecked revision]
Content added Content deleted
m (Added WIP)
(Limine 6.x no longer supports ext2/3/4)
 
(21 intermediate revisions by 10 users not shown)
Line 1: Line 1:
'''Limine''' is an advanced, portable, multiprotocol bootloader, with support for Linux, the [[Limine Bare Bones|native Limine boot protocol]], and [[Multiboot|multiboot1 and 2]].
{{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.


== 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]]. As of Limine 3.x, a new boot protocol, simply called the [[Limine Bare Bones|Limine boot protocol]] was introduced to supersede stivale 1 and 2. As of Limine 4.x, support for the legacy stivale protocols has been dropped.

It originally only supported x86 [[BIOS]] and the stivale1 protocol, but it was later expanded to also support [[UEFI]], the Linux and [[multiboot]] protocols, and other architectures such as aarch64.


== 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 [[Limine Bare Bones|Limine]] boot protocol, alongside Linux's own boot protocol (which means one can boot Linux fully using Limine), multiboot 1 and 2 (allowing it to boot a vast catalogue of hobby OSes and more), and chainloading to allow to indirectly boot unsupported 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|FAT12/16/32]] and [[ISO 9660]] (used by optical media and hybrid ISO images) filesystems.

== Supported Architectures ==
Currently Limine supports [[X86]], [[X86-64]], aarch64 (64 bit [[ARM]]), and riscv64 (64 bit [[RISC-V]]). X86 system support is targeted for Pentium Pro (i686) class machines as the minimum.


== How to use Limine with your kernel ==
== 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.
The [[Limine Bare Bones]] article contains a basic tutorial on how to use Limine and its protocol. Furthermore, a GitHub repository containing a simple example template for a 64-bit kernel loaded using Limine can be found in the external links section.

== See Also ==

=== Articles ===

* [[Limine Bare Bones]]


== External Links ==
== External Links ==
*[https://github.com/limine-bootloader/limine-barebones Barebones kernel template using Limine.]
*[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/trunk/PROTOCOL.md Limine boot protocol specification.]
*[https://github.com/stivale/stivale/blob/master/STIVALE.md stivale boot protocol specification.]
*[https://github.com/stivale/stivale/blob/master/STIVALE2.md stivale2 boot protocol specification.]


[[Category:Bootloaders]]
[[Category:Bootloaders]]

Latest revision as of 04:10, 10 December 2023

Limine is an advanced, portable, multiprotocol bootloader, with support for Linux, the native Limine boot protocol, and multiboot1 and 2.

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. As of Limine 3.x, a new boot protocol, simply called the Limine boot protocol was introduced to supersede stivale 1 and 2. As of Limine 4.x, support for the legacy stivale protocols has been dropped.

It originally only supported x86 BIOS and the stivale1 protocol, but it was later expanded to also support UEFI, the Linux and multiboot protocols, and other architectures such as aarch64.

Supported protocols and filesystems

As mentioned above, Limine supports the Limine boot protocol, alongside Linux's own boot protocol (which means one can boot Linux fully using Limine), multiboot 1 and 2 (allowing it to boot a vast catalogue of hobby OSes and more), and chainloading to allow to indirectly boot unsupported operating systems such as Microsoft Windows.

It supports the FAT12/16/32 and ISO 9660 (used by optical media and hybrid ISO images) filesystems.

Supported Architectures

Currently Limine supports X86, X86-64, aarch64 (64 bit ARM), and riscv64 (64 bit RISC-V). X86 system support is targeted for Pentium Pro (i686) class machines as the minimum.

How to use Limine with your kernel

The Limine Bare Bones article contains a basic tutorial on how to use Limine and its protocol. Furthermore, a GitHub repository containing a simple example template for a 64-bit kernel loaded using Limine can be found in the external links section.

See Also

Articles

External Links