As some of you may undoubtedly know, I’m a bit of a sucker for Palm OS. These past few years, I’ve been busy collecting ROMs for the Palm OS emulator and simulator, making sure I have all the major Palm OS releases covered. There’s really not much of a reason to do this – I have working devices which are a much better option than the emulators/simulators in most cases – other than to have a complete collection I can keep around forever.
From top left to bottom right, you’re looking at Palm OS 1.0, 2.0, 3.0, 3.5, 4.0, 5.3 (a Palm Zire ROM), 5.4.9 (the last released version of Palm OS available on real devices), and Palm OS 6.1.0 Cobalt (the last version of Palm OS; no 6.x device has ever been released). This is a pretty complete collection, and while it doesn’t contain every released version of Palm OS, it covers the most important ones, and provides a great overview of the development of the operating system.
One important version is actually missing from this screenshot: Palm OS 5.5, whose official name is actually Garnet OS 5.5. Garnet OS 5.5 was developed by ACCESS (current owner of Palm OS and the associated IP), but was never released on or for devices – its sole function was to serve as the operating system running inside the Garnet VM. Garnet VM was a virtual machine developed to allow Palm OS applications to run on the ACCESS Linux Platform, a Linux-based mobile operating system that never gained any traction; no ALP devices were ever released.
As some of you may remember, Garnet VM was also released for Nokia’s Maemo. I have a Nokia N900 (maybe even two) that can run Garnet VM, and while it’s no longer available from ACCESS itself, it’s easy to find all around the web if you know where to look. I’m not sure if my N900 is properly set up (I think it is), but it would be trivial for me to install Garnet VM on it and play with it.
So, between my Palm/CLIÃ‰ devices and all these emulators/simulators, every major Palm OS version seems covered, right? Well, no – not entirely. There’s quite a few exotic devices, such as the AlphaSmart Dana, the TapWave Zodiac, or the Fossil Palm OS smartwatch, but those are disproportionately hard to come by. Setting those aside, I thought I had all my bases covered.
Turns out – as is so often the case – I was wrong. On Twitter, q3hardcore asked “do you have this?”
As it turns out, and entirely unbeknownst to me, ACCESS actually released the Garnet VM for Linux and Windows. After coming to the conclusion that this piece of software was entirely impossible to find online (try it), q3hardcore came to the rescue once again, and uploaded his or her copy of the package online. Questionable legality aside, I didn’t have to think twice.
The purpose of the Garnet VM for Linux and Windows was to allow Palm OS application developers to test their Palm OS applications to see if they would run on the Garnet VM included in the ACCESS Linux Platform, and make changes if needed.
This Garnet VM is an amazing piece of technology. It’s the Palm OS userland – version 5.5.0 – running on a Linux kernel running on an ARM emulator running on Windows or Linux. The ARM emulator in question is called Janeiro, and it emulates a Zylonite (PXA320) development board, revision B1. As it boots up, there’s zero indication that it’s running a Linux kernel – the X ‘cross’ appears briefly (at least, it looks like the X cross), but that’s it.
The major difference between the Garnet VM and the Palm OS 5.x and 6.x simulators is that while the simulators run x86 Palm OS, Garnet VM runs an ARM Palm OS userland atop an ARM Linux kernel. This means – at least, in theory – that ARM Palm OS applications should run decently well on Garnet VM, something you can’t do with the Palm OS simulator, because they would need to be recompiled to x86. I say ‘in theory’, because the Garnet VM documentation notes that not all Palm OS libraries and components are present, and that only “well-behaved” applications are compatible.
I’ve only had access to the Garnet VM for Windows for a short while, and I haven’t yet had the time to really dive into it. For instance, I’ve yet to figure out how to get applications to run inside the VM, since the usual methods don’t seem to want to cooperate. I’ll spend some more of my free time on playing with it over the coming weeks to better figure out how it all works.
In any event, the Garnet VM for Windows and Linux is a unique piece of computing history, and I am absolutely delighted to be able to add it to my collection of Palm OS memorabilia. I’ve briefly considered zipping up all the emulators, simulators, and ROMs I have into a nice preconfigured, documented package for people to play with, but that’s not something I can do for obvious copyright, trademark, and patent reasons. Most of this stuff isn’t particularly hard to find, but it does require a bit of Palm experience to put it all together and document it. I don’t think I’ll ever get permission from ACCESS, so that’s the end of that idea.
Still, I think it’s important that I continue to collect these Palm OS ROMs and emulators/simulators, because as the years go by, more and more Palm devices will start to break down or get lost, leaving us without to ability to experience this amazingly lovable operating system.
It’s definitely the X11 (Xorg) “X” cursor, so this is at the very least running a stripped down X with either a fbdev or vesa driver (I’m guessing).
Still kicking myself for selling my Treo 650 and Clie NX-70v. Other than the N900, they were the best mobile devices I’ve ever owned.