GitHub icon GentleOS / 32

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.

GentleOS/32 on Toshiba T1900C (Intel 486SXA)

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

⚠︎ Warning: GentleOS/32 is written in good faith, but it's experimental and the author takes no responsibility for any lost data or damaged hardware. It is free software, licensed under GPL-2.0, and comes with no warranty. Proceed at your own risk.

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

Other useful resources:

License

Copyright © 2026 luke8086. GentleOS/32 is licensed under the GNU General Public License, version 2.