<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Limine on Siddharth Mishra</title><link>http://brightprogrammer.in/tags/limine/</link><description>Recent content in Limine on Siddharth Mishra</description><generator>Hugo</generator><language>en</language><lastBuildDate>Sat, 13 Jun 2026 09:04:24 -0700</lastBuildDate><atom:link href="http://brightprogrammer.in/tags/limine/index.xml" rel="self" type="application/rss+xml"/><item><title>Project Initialisation</title><link>http://brightprogrammer.in/posts/project-initialisation/</link><pubDate>Sat, 08 Jan 2022 00:00:00 +0000</pubDate><guid>http://brightprogrammer.in/posts/project-initialisation/</guid><description>&lt;p>We&amp;rsquo;ll use &lt;a href="https://github.com/limine-bootloader/limine">limine&lt;/a> bootloader and use stivale2 as our boot protocol. There are multiple boot protocols and stivale2 provides many advanced features. Limine supports stivale2 by default. It also gives us a way to instantly print anything on screen but we won&amp;rsquo;t be using that.
To read more about stivale2 boot specification, read &lt;a href="https://github.com/stivale/stivale/blob/master/STIVALE2.md">here&lt;/a>&lt;/p>
&lt;p>Create project with following directory structure&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>├── CMakeLists.txt
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>├── kernel
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>│   ├── kernel.c
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>│   ├── kernel.h
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>│   └── stivale2.h
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>└── limine
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ├── bochsrc
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ├── build-aux
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#40a070">19&lt;/span> directories, &lt;span style="color:#40a070">183&lt;/span> files
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;code>kernel&lt;/code> will contain our kernel code. Soon we&amp;rsquo;ll be creating many other folders. Use &lt;code>wget&lt;/code> to get &lt;a href="https://raw.githubusercontent.com/stivale/stivale/master/stivale2.h">stivale2&lt;/a> header file. Initialise a git repository and add &lt;a href="https://github.com/limine-bootloader/limine">limine&lt;/a> boot loader as a &lt;code>submodule&lt;/code>.&lt;/p></description></item></channel></rss>