Skip to content

potionodevil/TinyBootlaoder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TinyBootloader v2.0

  _______ _                   ____            _       _ _
 |__   __(_)                 |  _ \          | |     | | |
    | |   _ _ __  _   _ ___  | |_) | ___   __| |_   _| | | ___ _ __
    | |  | | '_ \| | | / __| |  _ < / _ \ / _` | | | | | |/ _ \ '__|
    | |  | | | | | |_| \__ \ | |_) | (_) | (_| | |_| | | |  __/ |
    |_|  |_|_| |_|\__, |___/ |____/ \___/ \__,_|\__,_|_|_|\___|_|
                   __/ |
                  |___/

Ein minimaler 2-Stufen-Bootloader fuer x86-Systeme (Real Mode) mit LBA/CHS-Autoerkennung und eingebauter Mini-Kommandozeile.

Features

  • 2-Stufen-Architektur: Stage 1 (512 Byte) laedt Stage 2 von der Diskette
  • LBA/CHS Auto-Erkennung: Bevorzugt LBA (INT 13h AH=42h), fallback auf CHS
  • Mini-Shell: Interaktive Kommandozeile in Stage 2
  • 1.44 MB Disketten-Image: Fertig zum Booten in QEMU, VMware, VirtualBox oder auf echter Hardware
  • Boot-Laufwerk-Ausgabe: Zeigt an, von welchem Laufwerk gebootet wurde (0x00 = Diskette, 0x80 = HDD)

Build

Voraussetzungen

  • NASM (Netwide Assembler) im PATH

Kompilieren

build.bat

Oder manuell:

nasm -f bin -o tinyboot.img bootloader.asm

Erzeugt tinyboot.img (exakt 1.474.560 Byte / 1.44 MB).

Ausfuehren

Mit QEMU (empfohlen)

run.bat

Oder manuell:

qemu-system-i386 -fda tinyboot.img

Mit Bochs

bochs -fda tinyboot.img

Echte Hardware

Schreibe das Image auf einen USB-Stick oder eine Diskette:

:: Windows (als Administrator)
dd if=tinyboot.img of=\\.\X: bs=512  (X = Laufwerksbuchstabe)

:: Linux
dd if=tinyboot.img of=/dev/sdX bs=512

Kommandos (Stage 2 Shell)

Befehl Beschreibung
help Zeigt diese Hilfe an
cls Loescht den Bildschirm
info Zeigt RAM, Boot-Laufwerk und Modus an
hex Gibt einen Test-Hex-Wert (0x1A3F) aus
hello Gibt "Hallo Welt!" aus
reboot Startet den Computer neu

Speicherbelegung

Adresse Groesse Inhalt
0x7C00-0x7DFF 512 B Stage 1 (Bootloader)
0x7E00-0x87FF 2560 B Stage 2 (Shell + Code)
0x8800-0xFFFF ~30 KB Stack (abwaerts) + frei

Projektstruktur

TinyBootloader/
├── bootloader.asm    # Vollstaendiger Bootloader (Stage 1 + 2)
├── build.bat         # Build-Skript (NASM)
├── run.bat           # Run-Skript (QEMU)
└── README.md         # Diese Datei

Image-Aufbau

Sektor 0:      Stage 1 (Bootloader, 512 Byte)
Sektoren 1-5:  Stage 2 (Shell, 2560 Byte)
Sektoren 6-2879: Frei (Null-Bytes, 1.44 MB komplett)

Technische Details

  • Assembler: NASM (Intel-Syntax)
  • CPU-Modus: 16-Bit Real Mode
  • BIOS-Interrupts:
    • INT 10h – Video-Ausgabe (Zeichen, Bildschirm steuern)
    • INT 13h – Diskette/Festplatte lesen (LBA + CHS)
    • INT 16h – Tastatureingabe
    • INT 12h – Speichergroesse ermitteln
    • INT 19h – System neustarten

Lizenz

MIT License – Frei verwendbar, modifizierbar und verteilbar.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors