The Garnet Source Code Deal: Part 1
In last week’s podcast, show 106 , I talked about Palm’s new perpetual license agreement with ACCESS. I suggested how this agreement will usher in a new wave of innovation to the Palm platform. In this two part editorial, I re-examine some the development options that could be facing Palm as we prepare to move into 2007.
A Quick Primer on “Palm”
Before I delve into a discussion of the hardware and software aspects of Palm the company, I though it would be best if both new and old customers get a refresher on what has been going on over the past 10 years.
Back in the old days, Palm was a hardware and software company. In those early days, Palm was a division of U.S. Robotics (famous for their modem line) and then later on 3COM (famous for their networking gear). Once Palm was on its own, they were in charge of building their own hardware designs and developing the Palm OS that would power the new line of mobile computers.
Dissatisfied with the direction of the company, Jeff Hawkins, Ed Colligan, Donna Dubinski, and others defected from Palm to start a new handheld computing company, Handspring, which would later develop the first Treo smartphone. A licensing deal was reached, and Handspring was allowed to use the Palm OS in their devices.
Fast forward a few years. Palm decided that the software side of the business could be more profitable if it was its own entity. The software business was indeed spun off and PalmSource was born. At the same time, Palm acquired Handspring which brought Hawkins, Colligan, and Dubinski back into the Palm family. As it turns out, PalmSource wasn’t terribly successful on its own, and was acquired by ACCESS. Last week’s announcement by Palm and ACCESS gives Palm full control over the OS they originally developed 10 years earlier.
Now that Palm has full control over their OS again, what are they planning on doing with it? I believe that there are five possibilities, each with their own pros and cons. We will examine the first three this week.
Option 1: Keep going with Palm OS Garnet 5.x
Before being acquired by ACCESS, PalmSource halted the development of Palm OS Garnet and shifted the resources to a new project, Palm OS Linux. After the ACCESS buy out, the Palm OS Linux project was renamed to ACCESS Linux Platform (ALP). Even though ACCESS had no interest in continued development of Palm OS Garnet, Palm’s licensing agreement allowed for customizations to the OS.
Now, with Palm back in control of the Garnet source code, meaningful development on the Garnet code base can resume. Palm would be free to make whatever changes they needed to support future Palm handhelds and Treo designs.
There are some problems with this approach. Garnet lacks the features that Palm’s power-user customers have been asking for. If Palm decides to continue using Garnet as it exists today, they will be able to add new applications like the slick new Phone application on the Treo 680. Palm would have some difficulty in adding features that are in demand by customers such as support for true application multitasking and the software to drive a Universal Mobile Telecommunications System (UMTS) cellular radio.
The bottom line is that the Garnet code base is well known by Palm’s software engineers and likely represents the least expensive option. At the same time, continuing to make minimal enhancements to Garnet will have diminished impact on the Palm OS customer base.
Option 2: Extend and enhance Palm OS Garnet
Jeff Kirvin and I have both talked about this subject on previous 1SRC podcasts. Palm could go back to the drawing board with Garnet and augment the OS kernel while refining the UI to make Palm OS even easier to use. In the past, I’ve referred to this project as being the Palm OS 5.5 project.
In a project like this, Palm could:
- Tune Garnet and NVFS to run more efficiently
- Enhance the design elements of the Palm OS UI
- Implement a single OS-wide file manager and a file browser
- Correct system bugs (Tungsten E2 find bug, LifeDrive Wi-Fi stack instability)
- Document the source code enabling all developers to have a level playing field
At first blush, this project seems to make a lot of sense. This is a problem with it though. This project doesn’t make the Palm OS any more competitive against other smartphone operating systems already on the market. A Palm OS 5.5 project as I have described it here would be reaching back into history to address concerns in products that are nearing the end of their service life.
Palm needs to build successful products that include software applications that differentiate their products from those of their competitors. Palm should be focusing on areas where they can deliver compelling software solutions that are both easy to use and help solve a problem for their customers.
It is my opinion, with a new licensing agreement in hand; the resources that might have been scheduled for this project would be better used by allocating them to one that has a greater return on investment and advances the Palm OS platform.
Option 3: Rewrite the Palm OS to run on top of a Linux kernel
It has been rumored for a long time now that Palm has been working on building a version of the Palm OS that runs on top of a Linux foundation. I’ve taken to calling this project “Palm OS II.” Others in the Palm community, including Michael Mace and David Beers, have also talked about this subject on their blogs.
In the Mach 26, 2006 blog entry, “ What Palm Inc’s Linux OS might look like ”, Mr. Beers has posted an interesting block diagram of how the OS might be assembled. He raises the point that native Linux applications (PIMs, phone, browser, email, messaging, and multimedia) would be able to multitask between each other. I believe that people buy a Treo specifically for those applications that Mr. Beers sighted. Native Linux applications could be multitasked and that would be immediately beneficial to everyone.
I also believe that there is merit to ACCESS’ approach to Palm OS Garnet on ALP, called Garnet Host (GHost). A Garnet emulator will allow customers to run the thousands of existing Palm OS applications under the new OS. The emulator would be a native Linux application so customers would be able to run emulated software side-by-side with the native Linux applications. The draw back to this arrangement would be that inside the Garnet emulator, only one application could be running at a time. As developers port their existing application code to native Linux applications, customers would benefit from the newfound flexibility.
While I like this option, there are problems here too. First of all, if early reports found on the web are true, Linux isn’t exactly the most efficient mobile OS. It is likely that not enough progress would be made in performance tuning for the initial release. There are also upgrade costs for the customer to consider. Customers will need to decide if they want to pay for the new upgrade or make due with older applications running in the Garnet emulator.
Still to come
In next week’s 1SRC Editorial, I will explore what some long time Palm customers might consider a bit controversial: the use of Palm OS interface on top of Microsoft’s Windows Mobile.