Files
stevia/README.md
Elaina Claus 920c623a93
All checks were successful
Daily Build and trunk tester / debian_update (push) Successful in 1m5s
update README.md
2025-09-06 13:56:00 -04:00

2.1 KiB

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.