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.
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.
References
- GentleOS 16-bit project
- GentleOS 32-bit project
- GNU General Public License - Wikipedia
- QEMU - Wikipedia
- Virtualization - Wikipedia
- Post image created in Inkscape
- Post image modifications, add background, resize background, crop background, add Zenith laptop, resize Zenith laptop, remove Zenith laptop background, add GentleOS screenshot, trace bitmap GentleOS screenshot, apply GentleOS screenshot path effects envelope deformation, add text, add Adamsdesk logo
- Post image uses background by Daria-Yakovleva
- Post image uses Fira Sans font by Mozilla
- Post image uses Zenith TurbosPORT 386 laptop by Snuci