Gregory Bowne 7d9d0aeee3 Create memory.c
This is the implementation for memory.c memory.h pair to house the 
memset. memcmp, memcpy, memmove etc careful as there are now duplicates in utils implementation
2025-11-02 17:39:31 -08:00
2025-04-30 23:03:44 -07:00
2025-11-02 17:39:31 -08:00
2025-04-30 23:03:44 -07:00
2025-10-26 03:03:20 +03:00
2025-05-18 02:49:17 -07:00

ClassicOS

Build License Platform Made with

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

Youll need the following tools installed:

  • nasm
  • gcc (targeting i386)
  • ld
  • make
  • qemu-system-i386

Optional:

  • gdb
  • vncviewer (TigerVNC or similar)

🛠️ Building ClassicOS

Clone and build:

git clone https://github.com/gbowne1/ClassicOS.git
cd ClassicOS
make

build kernel for %f in (*.c) do gcc -m32 -O0 -Wall -Wextra -Werror -pedantic -ffreestanding -nostdlib -fno-pic -fno-stack-protector -fno-pie -march=i386 -mtune=i386 -c "%f" -o "%f.o"

Description
An x86 32 biit Operating System for 386, 486, Pentium class (P-60 to 233MHz, Pentium II, P3, P4, etc)
Readme 185 MiB
Languages
C 86.4%
Assembly 11.4%
Makefile 2.2%