Elaina Claus 528e3d69fe
All checks were successful
Daily Build and trunk tester / debian_update (push) Successful in 1m12s
update github workflow since github includes firefox & snaps in the default runner image, which causes the build to fail.
going to need a custom runner I guess...might as well only do actions on gitea.
2025-09-16 08:34:22 -04:00
2025-09-07 18:43:03 -04:00
2025-09-07 16:25:08 -04:00
2024-10-11 21:49:15 -04:00
2025-08-22 11:41:33 -04:00
2025-08-24 10:47:18 -04:00
2025-09-06 13:56:00 -04:00

Stevia Bootloader

Stevia is a lightweight, hobby bootloader written in Assembly and C, designed for educational purposes. It targets 686+ and aims to be simple, approachable, and understandable, focusing on minimalism and core functionality.

Features

Currently Implemented

  • Stage 1 Bootloader: Loads from the Master Boot Record (MBR) and prepares the system for Stage 2.
  • Stage 2 Bootloader: Loads the kernel into memory and passes control.
  • Basic Filesystem Support: Initial filesystem recognition (details depend on implemented filesystem support).
  • Memory Map Parsing: Detects available memory regions via BIOS interrupts.
  • GDT Initialization: Sets up the Global Descriptor Table for protected/unreal mode.

Planned Features

  • Interrupt Descriptor Table (IDT) Setup: Setting up basic interrupt handling.
  • Basic Keyboard Input: Initial support for capturing keystrokes.
  • Filesystem Expansion: Support for additional filesystems.

Installation

Prerequisites

To build and run Stevia, you will need the following tools installed on your system:

  • Assembler: NASM for assembling bootloader components, you could use a compatible assembler but YMMV.
  • GNU make: For building the project.
  • mtools: To access the FAT partition
  • fdisk: To create disk images and setup partition tables
  • dosfstools: FAT32 creation
  • an x86 Emulator: Bochs is the primary dev target, but stevia should run on any x86 emulator/hardware with at least a Pentium 3 and 640KiB of memory.

Building and Running

  1. Clone the repository:

    git clone https://github.com/Nivirx/stevia.git
    cd stevia
    
  2. Build the bootloader and create a bootable disk image:

    make
    
  3. Run using Bochs:

    bochs -q -f bochsrc.txt
    

Project Goals

Stevia is intended to be a learning tool for those interested in low-level programming, focusing on understanding the basics of how a computer starts up and manages early system resources.

License

This project is licensed under the GPLv3 License. See the LICENSE or COPYING file for more details.

Description
hobby bootloader written in assembly
Readme 1.2 MiB
Languages
Assembly 86.6%
Shell 5.6%
Pascal 5%
Makefile 2.8%