Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/limine-bootloader/limine-c-template

A simple template for building a Limine-compliant kernel in C.
https://github.com/limine-bootloader/limine-c-template

aarch64 amd64 arm64 bare-bones barebones c c-language kernel limine limine-bootloader loongarch loongarch64 loongson risc-v riscv riscv64 template x86-64

Last synced: 3 days ago
JSON representation

A simple template for building a Limine-compliant kernel in C.

Awesome Lists containing this project

README

        

# Limine C Template

This repository will demonstrate how to set up a basic kernel in C using Limine.

## How to use this?

### Dependencies

Any `make` command depends on GNU make (`gmake`) and is expected to be run using it. This usually means using `make` on most GNU/Linux distros, or `gmake` on other non-GNU systems.

It is recommended to build this project using a standard UNIX-like system, using a Clang/LLVM toolchain capable of cross compilation.

Additionally, building an ISO with `make all` requires `xorriso`, and building a HDD/USB image with `make all-hdd` requires `sgdisk` (usually from `gdisk` or `gptfdisk` packages) and `mtools`.

### Architectural targets

The `ARCH` make variable determines the target architecture to build the kernel and image for.

The default `ARCH` is `x86_64`. Other options include: `aarch64`, `loongarch64`, and `riscv64`.

### Makefile targets

Running `make all` will compile the kernel (from the `kernel/` directory) and then generate a bootable ISO image.

Running `make all-hdd` will compile the kernel and then generate a raw image suitable to be flashed onto a USB stick or hard drive/SSD.

Running `make run` will build the kernel and a bootable ISO (equivalent to make all) and then run it using `qemu` (if installed).

Running `make run-hdd` will build the kernel and a raw HDD image (equivalent to make all-hdd) and then run it using `qemu` (if installed).

For x86_64, the `run-bios` and `run-hdd-bios` targets are equivalent to their non `-bios` counterparts except that they boot `qemu` using the default SeaBIOS firmware instead of OVMF.