GentleOS/32 is a hobby OS for vintage 32-bit PCs, with a retro-style GUI and a handful of built-in apps.
Its minimal requirements are an i386 CPU with 2MB of RAM, a mouse, and a VGA display supporting 640x480x16 mode.
It's built specifically for tinkering with old hardware on the bare metal, using plain C. It doesn't have any "practical" use, there's no web browser and no way to run third-party apps.
It has a pure 16-bit spin-off called GentleOS/16, which targets even older PCs.
Design
Unlike many other hobby osdev projects, GentleOS doesn't attempt to mimic general-purpose systems. It's designed more like microcontroller firmware - entirely monolithic and compiled to a single binary.
It's written in a simple subset of plain C with small bits of assembly. The source code is meant to be straightforward and easy to understand.
It only supports standard PC devices: VGA/SVGA, keyboard, PS2/serial mouse, PC speaker.
By design it doesn't support virtual memory, userspace, preemptive multitasking, persistent storage or networking. The only future development plans are refactoring, bugfixes, optimizations, and adding more apps.
Downloads
- gentleos32-disk.img - Bootable disk image with GRUB 2. It can be written directly to a hard drive or a USB stick. It requires 4MB of RAM (for GRUB) and supports any VESA video mode in 256 colors.
- gentleos32-floppy.img - Bootable floppy image with GRUB Legacy. It requires 2MB of RAM and only supports 640x480x16 mode.
- gentleos32.elf - Kernel file that can be booted with either GRUB 2 or GRUB Legacy.
Running
For a quick test, install QEMU, fetch the HDD image, and run:
qemu-system-i386 -drive format=raw,file=gentleos32-disk.img -m 4 -debugcon stdio
To enable audio support on macOS, also add:
-audiodev coreaudio,id=snd0 -machine pcspk-audiodev=snd0
Gallery
FAQ
Will it run on my hardware?
Due to quirkiness of old devices, the only way to know for sure is to check. The lowest hardware configuration tested by the author was 386SX/20MHz CPU with 2MB of RAM. On the high end, the PC must still support BIOS / legacy boot. It won't work on pure-UEFI systems since they don't emulate PS2 keyboard and mouse.
I can only see black screen on boot
You should at least see the GRUB bootloader menu. In case you don't, the issue may be either in the boot device or in GRUB itself.
Does it support serial mouse?
Yes, you need to pass serial=mouse parameter to the kernel.
See grub.sample.cfg.
How to debug over serial port?
My preferred way is to use
Serial USB Terminal
on Android, through a cheap RS232 to USB-C adapter with PL-2303 chipset, and a mini null-modem F-F adapter.
In the app you need to set 9600 baud rate, 8 data bits, no parity, 1 stop bit.
On boot you need to pass serial=debug parameter to the kernel.
Links
- Source code
- GentleOS/16 - Sibling OS for 16-bit devices
- Thread on HN (2026-06-07)
- Thread on Lobste.rs (2026-06-08)
Other useful resources:
- OSDev.org - Extensive wiki and forum about OS development
- FreeDOS - Actively maintained clone of DOS, the best way to go if you want to do something practical with a very old PC
License
Copyright © 2026 luke8086. GentleOS/32 is licensed under the GNU General Public License, version 2.
