mirror of
https://github.com/gbowne1/ClassicOS.git
synced 2025-05-15 17:11:26 -07:00
51 lines
1.4 KiB
Markdown
51 lines
1.4 KiB
Markdown
# ClassicOS
|
||
|
||
[](https://github.com/gbowne1/ClassicOS/actions)
|
||
[](LICENSE)
|
||
[](https://en.wikipedia.org/wiki/IA-32)
|
||
[](#)
|
||
|
||
> **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:
|
||
|
||
- `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
|
||
``` |