ClassicOS/README.md
2025-04-30 23:03:44 -07:00

51 lines
1.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ClassicOS
[![Build](https://img.shields.io/badge/build-passing-brightgreen?style=flat-square)](https://github.com/gbowne1/ClassicOS/actions)
[![License](https://img.shields.io/badge/license-MIT-blue?style=flat-square)](LICENSE)
[![Platform](https://img.shields.io/badge/platform-x86_IA32-lightgrey?style=flat-square)](https://en.wikipedia.org/wiki/IA-32)
[![Made with](https://img.shields.io/badge/made%20with-C%20%26%20NASM-9cf?style=flat-square)](#)
> **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:
```bash
git clone https://github.com/gbowne1/ClassicOS.git
cd ClassicOS
make
```