It’s fairly easy to complain about bloat in the Windows world, and even Linux and Mac users can certainly no longer claim to have the most efficient OSes in the world. With projects like OpenOffice, as wonderful as they are, taking up vast amounts of CPU time, and others like FireFox (currently using about 128 meg of RAM as I write!) grabbing as much memory as they can. Maybe it’s the trade off between eye-candy and efficiency, but sometimes I hanker for a time when things were much simpler. So as I wandered through the InterWeb the other day, I stumbled across these hidden gems from the past. It just goes to show that you don’t need the latest ninja PC to run a reasonable GUI-based OS.
The Sinclair ZX Spectrum
The speccy is an all-time SnakeOil Labs fave, so when I found Doors Aqua I nearly dropped off my chair. Featuring a kickstart and workbench, I was expecting something Amiga-like but it looks like these guys have have written a full BIOS, OS and GUI implementation and somehow managed to squeeze it into 128kB of RAM. Doors ‘96 started out as a GUI library for a program called View*Print.
Towards the end of 1998 the authors spectrum died and the author was forced to switch to an emulator to continue development. Due to hardware emulation restrictions, the author then wrote a separate BIOS module to determine the type of spectrum and capabilities (in case you didn’t know, there were many spectrum clones with differing hardware and features). Doors 99 introduced the Workbench. Once this was up and running, tools were developed to provide extra functionality, including the ‘SpeccyAmp’ music player (shown below).
In 2000, the project changed again, this time splitting off into a separare kernel. Doors 2000 had some major changes, and event-driven OS functionality was further refined. A really advanced (for the spectrum) API was written for handling the GUI. This is documented on the project site. Since then the OS has grown, supporting expanded memory, disks and all kinds of whizzy things. It looks like Windows 95, but I can’t get over the fact that this runs on a Sinclair Spectrum with 128k of RAM, and multi-tasks.
The Amstrad CPC was a late entry to the 8-bit world. Because of its Z80 processor and ability to easily render spectrum graphics natively, many of the games were straight spectrum ports (not that there’s anything wrong with that, after all – speccy’s are ace). Consequently, very few games stretched the CPC to its fullest potential. Prodatron, a german developer is about to change all that. SymbOS, or “SYmbiosis Multitasking Based Operating System” is by far one of the best 8-bit OSes I’ve ever had the pleasure to see.
It’s not an ordinary 8-bit OS. SymbOS supports 576k of RAM, and up to 128Gb of storage. From the main site:
At the end of 2000 I watched some GEOS-pages and asked myself, why not making such a system on CPC, too. Most CPCs have 128K (most C64 only have 64K), a screen-resolution of 320×200 with 4 colours (C64 only has 2 colours for each 8×8 area in 320×200) and some more advantages. So the idea of the SymbOS-Project was born. SymbOS stands for “SYmbiosis Multitasking Based Operating System”. SymbOS should become a demonstration, what could be possible on CPC since the last 20 years. I want to give really everything to SymbOS what a modern OS needs. Real preemptive Multitasking, a dynamic memory-management for up to 576K and a totaly MS-Windows-like GUI are the three most important things.
Using Symbos is a very similar experience to using Windows, but feels different to Doors on the spectrum. It is without doubt a sexy beast, and if there was only some way of networking it, then it’d be a serious threat to a few 64-bit OSes I’ve used. I hope Prodatron continues developing SymbOS. I recently spotted on Comp.Sys.Sinclair that he was looking at porting it to the spectrum, if it’s possible I’d love to see it.
The C64 was undoubtedly the big brother of all 8-bit systems in the early 80s. Was it a particularly powerful system? Debatable, especially compared to the MSX or the mighty Sam CoupÃ©. However, the C64’s popularity world-wide made it a potential business machine for many people. It’s not surprising then that out of the lot, the C64 was the only 8-bit home computer to have a ‘grown-up’ GUI OS available. In this case, GEOS.
GEOS’ history is very interesting, especially considering how ‘mac-like’ it was. GEOS looks a lot like the MAC classic OS. At it’s peak, it was the third most popular OS in the world, only trailing behind DOS and Mac OS. There were plenty of applications available for it and ports to other OSes, including the Apple II and Commodore Plus/4. It’s quite amazing just how much fitted into GEOS 64, there were tools such as geoCalc, a spreadsheet, geoPaint (art package), geoPublish (WYSIWIG DTP tool), geoWrite (word processor) and so on.
There are some really good writeups of GEOS here and here. The GEOS 2.0 source code is now available, along with an updated version of GEOS, called GEOS2000. I didn’t get a chance to try GEOS2000 out, although I remember using GEOS in the 80s and found it ok to use, but awkward to control with a Joystick (you can use a mouse – but I didn’t have one at the time).
GEOS2000 and the source code to GEOS are available here.
Contiki is to the 8-bit world as NetBSD is to the rest of us. It’s extremely portable, providing an event driven kernel, pre-emptive multitasking, interprocess communication and loading and unloading of programs. There’s a graphical subsystem (GUI) or a text-based GUI alternative and… TCP/IP support. It also comes with VNC and Telnet services.
Contiki runs on the C64, Nintendo Gameboy, VIC 20, Apple ][, C16 plus/4, and Commodore PET amongst other systems. Contiki is certainly a heck of an achievement, but has its drawbacks. Firstly, for most of the listed supported platforms, Contiki actually uses a text-based user-interface that simulates a GUI. This means that out of all the 8-bit systems, only C64 and Atmel AVR users get to see contiki in its full GUI goodness.
Secondly, not everything works on every system – this isn’t a fault of Contiki itself, but of the hardware. For example, there is no networking on the Commodore PET as there’s no hardware to network with. Of course, as time goes on this may change, but for now anyone considering using Contiki on their platform should make sure that it has all the functionality they want before they start.
So what’s the best 8-bit OS overall? Personally, I think that in terms of functionality, it has to be GEOS. GEOS has more packages than any of the others, and is probably the only OS I’d consider using full-time if I had to use an 8-bit system. In terms of eye-candy, SymbOS on the Amstrad CPC wins hands down. It’s just gorgeous, and is one of the few OSes that could compete with a 32 or 64-bit OS for space on the shelf, but it desperately needs more user-space tools.
Contiki wins the portability prize, but with hardware limitations coming into play and its clear C64 bias (where it can only compete with GEOS on the networking side) it’s questionable how much you’d get out of it if you’re using non-C64 tin.
Finally, I think the ‘oh my god how did you cram that in award’ has to go to Doors/Aqua. Considering that it has a BIOS, underlying OS and GUI interface, complete with extra tools including a media player – this has to be the 8-bit OS with the most potential. If it had networking support, Contiki would be in serious trouble.