Modern operating systems today mostly focus on the current and latest hardware available in the market. Very few actually support and work on vintage Personal Computers (PCs) of the past. Those operating systems that do support old hardware have done so long ago. It’s rare to see a new operating system (OS), but surprisingly there is a new one in town called GentleOS by Luke S. (luke8086). In a time when there is far too much noise filling our world, GentleOS provides a sense of calm and relaxing environment that just works. It may not do a lot in today’s standards, but what it can do does it beautifully in its lovely retro styled interface. Come a long to relive or discover vintage computing for the first time as I explore this new hobby retro operating system for vintage PCs.

The entire operating system (OS) is monolithic and mostly configurable at compile time. Running the OS can be done using physical hardware or through the use of emulation and virtualization (e.g. QEMU). The goal of the project is to provide a simple 16-bit and 32-bit system to tinker with retro hardware and run graphical interactive applications. It’s wonderful to see that the project respects the user’s freedom by using a free and open source software license, GNU GPL v2.0.

Upon booting up the operating system the user is presented with a menu to choose which application or game to launch. GentleOS 16-bit presents a menu system in the middle with title bar at the top and status bar at the bottom. This entire interface is controlled by the use of a keyboard, arrow keys for navigation, Enter or Spacebar to launch the highlighted menu item and the Esc key to exit the currently running program. However, in 32-bit the user has a desktop area consuming most of the view, a vertical menu system on the right with left and right menu navigation buttons and a status bar at the bottom. This edition is primarily controlled by the use of a mouse, though some applications and games do provide a few keyboard shortcuts. With a more sophisticated interface in 32-bit each window can be moved around to the desired location by clicking and dragging on the program title bar. Each window can be closed by clicking on the dash icon in the top right next to the title bar. Only one application or game can be open at a time in 16-bit yet in 32-bit there can be multiple. The menu system in either edition is made up of square boxes with an icon centred in the middle.

There is very little that can be configured in GentleOS by the user. The 32-bit edition allows the user to customize the desktop through the use of the Patterns application. Patterns has the option to choose one of the eight patterns and one colour. In the 16-bit edition there is an application called Setup where the user can set the date, time, interface colours, and enable or disable invert interface colours.

A QEMU application window running GentleOS 16-bit. GentleOS is sitting at the main menu system with the clock application highlighted. The interface is made up of simple lines, shapes and text all coloured in green. Title bar at the top displaying operating system name on the left and on the right GitHub project path. In the middle lists the available applications and games made up of square boxes with an icon in the centre of each one. The status bar at the bottom of the screen indicates highlighted program name on the left and on the right is the date and time.
GentleOS 16-bit Running in QEMU
A QEMU application window running GentleOS 16-bit with the Snake video game displayed in the middle. The snake is working is way back to collect the small square on the opposite side of the play field.
GentleOS 16-bit in QEMU with the Snake Game Running
A QEMU application window running GentleOS 32-bit. The interface is made up of mostly a desktop area with a solid coloured cyan background, a vertical menu on the right of available applications and games and a status bar at the bottom of the screen. The menu and status bar are coloured in gray. Each menu item in all black colour made up of a square box with an icon centred in the middle.
GentleOS 32-bit Running in QEMU
A QEMU application window running GentleOS 32-bit with multiple programs open spread out at varies points on the desktop. The programs open are about, clock, colors, black jack and sounds. The focused program is Black jack with the title bar background coloured in yellow.
GentleOS 32-bit in QEMU with Multiple Programs Running

Applications

The operating system comes with a good collection of basic applications. Here is a brief breakdown of each one.

About (32-bit only)
Display the screen resolution, colour mode, CPU usage, memory available, memory used and memory available.
Clock
24-Hour digital clock that displays hours, minutes and seconds.
Calendar
Browse and view by month and year with each day of the week and associated dates.
Calculator
Do basic math calculations, division, multiplication, subtraction and addition.
Fonts
View all the available characters of the selected font.
Clicking/highlighting on a character will display the character, hexadecimal and decimal values on the status bar.
Keys
A visual layout of each key found on a basic keyboard.
When pressing the corresponding key in the layout it will become highlighted.
The status bar will display the last key, mods and char.
Colors (32-bit only)
A visual palette of available colors.
Clicking a colored square will display the hexadecimal and decimal values on the status bar.
Patterns (32-bit only)
Click on a pattern and color to change the desktop background.
Sounds
Press corresponding keys or click on the piano keys to hear sound.
Setup (16-bit only)
Set date (year, month, day)
Set time (hours, minute, seconds)
Set colour theme (VGA+)
Set invert colours, disable/enable

Games

A classic collection of games are included in this operating system. Below is a list of each one along with a brief overview.

Snake
Navigate a snake to consume as many square blocks as possible. Each consumed block will increase the length of the snake making it more difficult to not hit yourself or the edges.
Status bar displays the score, best score and notices.
Press the “P” key to pause or resume the game.
Mines
Reveal all the squares in the grid without exposing a hidden mine. Exposing a mine will end the game.
Status bar displays the remaining mines. When the game ends instructions are provided to start game.
Tetris
Build complete rows using the blocks to clear them.
Status bar displays score, best score and notices.
Use arrow keys to move or spin the block. Spacebar key will send the block to the bottom. Press the “P” key to pause or resume the game.
Paris
Match the paris to clear the entire board in the least amount of tires.
Status bar displays number of tries and notices.
Mahjong
A tile-based game where the object is to clear the board of tiles by finding the matching pair.
Status bar displays the pairs, movies, special keys and notices.
FreeCell
A solitaire card game where the object is to move all cards to their foundation piles.
Status bar displays remaining, special keys and notices.
Klondike
Another solitaire card game where the object is to separate all four suites into their respective piles from Ace to King.
Status bar displays remaining, special keys and notices.
Black jack
Play the risks to win a hand against the computer (dealer) with the highest score before going over 21.
Status bar displays, dealer score, your score, wins/losses and notices.

Minium System Requirements

Hardware system requirements for the operating system varies between 16-bit or 32-bit. Therefore, I’ve compiled a simple list of requirements for each one below.

16-bit

  • 8086+ CPU
  • 192 KB of RAM
  • CGA display
    • Capable of 320 x 200 px with 4 colours
  • Device Support
    • CGA/VGA
    • Keyboard
    • PC Speaker

32-bit

  • i386 CPU
  • 4 MB of RAM
  • VGA display
    • Capable of 640 x 480 px with 16 colours
  • Device Support
    • VGA/SVGA
    • Keyboard
    • PS/2 Mouse
    • Serial Mouse
    • PC Speaker

Run GentleOS with QEMU

For those wishing to tinker with the operating system but do not have physical hardware to do so can use the machine emulator and virtualization system called QEMU. With QEMU installed on a GNU/Linux or Unix system simply download the applicable pre-built image files for either 16-bit or 32-bit and then use one of the appropriate command examples below. Each command will reference the image file which is assumed to be located in the current directory on command line. Here are a few more assumptions to review before proceeding.

  • General understanding of using a GNU/Linux or Unix terminal (command-line interface)
  • Steps prefixed with a “$” (dollar sign) represents the CLI (command-line interface) prompt
  • The text after the “$” is to be entered at the CLI

Enable Sound

In order to enable sound in the virtual machine the physical audio device must be defined and then routed from virtual to physical. To get a list of available audio devices running the below command.

$ qemu-system-i386 -audiodev help
Available audio drivers:
none
alsa
dbus
jack
oss
pa
pipewire
sdl
spice
wav

Choose one of the audio devices to use such as “pa” (pulse audio) or “pipewire”. Then alter one of the command examples below by replacing “pa” in the argument “-audiodev pa,id=Sound” with the desired device. For example if one wanted to use pipewire then change the argument as follows, “-audiodev pipewire,id=Sound”. The “id=Sound” is assigning an identifier in order to connect the physical device to the virtual machine’s PC speaker with an additional the argument of “-machine pcspk-audiodev=Sound”. For macOS systems it is my understanding that the audio device is called “coreaudio”, but I’m not able to confirm this.

16-bit

$ qemu-system-i386 -drive format=raw,if=floppy,file=gentleos16-fd1440.img -m 1 -serial stdio -audiodev pa,id=Sound -machine pcspk-audiodev=Sound
$ qemu-system-i386 -drive format=raw,if=floppy,file=gentleos16-fd720.img -m 1 -serial stdio -audiodev pa,id=Sound -machine pcspk-audiodev=Sound

32-bit

This command refers to the prebuilt image that will run at 800 x 600 px resolution with 256 colours and boot using GRUB 2.

$ qemu-system-i386 -drive format=raw,file=gentleos32-disk.img -m 8 -debugcon stdio -audiodev pa,id=Sound -machine pcspk-audiodev=Sound

This command refers to the prebuilt image that will run at 640 x 480 px resolution with 16 colours and boot using GRUB Legacy.

$ qemu-system-i386 -drive format=raw,file=gentleos32-floppy.img -m 8 -debugcon stdio -audiodev pa,id=Sound -machine pcspk-audiodev=Sound

Closing Thoughts

I honestly quite enjoyed the entire process of figuring out how to get QEMU to run the operating system and then exploring it. The simplicity and retro style interface took me back to my early years of computing which I have fond memories of. The operating system seemed to be quite stable in my testing even though using pre-release images. For testing purposes I spent quite sometime playing each game (smirk). For what the developer has stated there is not a lot more to come in future updates beyond bugfixes, optimizations, and adding more applications. I do wonder though what the community might do with this free and open source project. In any case I do recommended giving GentleOS a try and see what you can make of it.

Support Adamsdesk

Direct support from our audience allows for us to achieve our goal of sustainability. Cast Your Vote of Support.

Donate Affiliates

References