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.

Photo of GentleOS/32 on Toshiba T1900C

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.

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.

gentleos.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 PC?

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.

Are the photos real? The screen on my device doesn't look that good.

They're real, taken with an iPhone 16, and lit using a softbox. Only minor adjustments were done in GIMP - trimming, white balance, exposure, and contrast.

How to contribute?

I'm making this project for fun in my spare time and sharing it as-is. I don't really accept pull requests because I already have plenty of them to review at work. However, if you do anything interesting with it, please drop me an email! Make sure to mention if you're happy with your changes being included in my branch or on the website.

Links

Other useful resources:

License

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