mirror of
https://github.com/gbowne1/ClassicOS.git
synced 2026-02-11 21:35:20 -08:00
4fa82854dd00eab7440dcfff29612bf9c2fef819
- bl stage 1: move gdt+pm setup to stage 2 (avoids mode switching) - bl stage 2: at entry query e820 table from bios, then setup gdt+pm - kernel/memmap: pad map entry to 24 bytes, as exported by bl - kernel/memmap: map copy (gbowne1) - Makefile: facilitate placing the memory map at a known location - Update bl docs
ClassicOS
ClassicOS is a 32-bit Intel x86 operating system built from scratch using C, NASM, and GCC. Designed for 386, 486, and Pentium-class CPUs, it runs in protected mode, outputs to VGA text mode and serial ports, and supports floppy/HDD boot with basic FAT support.
✨ Features
- MBR bootloader at
0x7C00 - Switch to protected mode with GDT
- A20 gate enabling
- Simple FAT12/FAT16 disk loader stub
- VGA text output (
0xB8000) - Serial COM1 support (
0x3F8) - Basic kernel (
kmain) written in C - Makefile-based build system
- Bootable floppy image for testing in QEMU
⚙️ Requirements
You’ll need the following tools installed:
nasmgcc(targeting i386)ldmakeqemu-system-i386
Optional:
gdbvncviewer(TigerVNC or similar)
🛠️ Building ClassicOS
Clone repository:
git clone https://github.com/gbowne1/ClassicOS.git
cd ClassicOS
Run configure script to build a cross-compiler toolchain for i386-elf:
./configure
Source the .build.env file to add the cross-compiler toolchain to your PATH:
source .build.env
Build the kernel:
make
Description
An x86 32 biit Operating System for 386, 486, Pentium class (P-60 to 233MHz, Pentium II, P3, P4, etc)
Readme
186 MiB
Languages
C
89.6%
Assembly
8.1%
Makefile
2.3%