I think the proper question is, "How many kernels does Palm OS need?". And the answer is "one".
It's funny -- right now, Palm OS is running on at least four different kernels right now: Kadak (OS 4 on 68K devices), the one PalmSource developed (most OS 5 devices), Garmin's real-time OS (iQue devices), and Win32 (the Palm OS Simulator).
And then the next question is, "What is the best kernel for PalmSource to use, given that kernels are complex and maintaining your own kernel and writing device drivers for every new piece of hardware is a pain?". And the answer is "Linux", because hundreds (thousands?) of man-years of work have already gone into refining that kernel, *and* it's very popular in embedded development already, so lots of embedded stuff has Linux device drivers available already.
Agreed. There were reasons for PalmSource developing their own kernel for OS 6 -- they were trying to take advantage of specific things in the ARM system hardware that supported a certain kind of embedded kernel. For example, Cobalt had 16 processes, a number based on how the ARM MMU works. It allowed for fast context switching, but it required that different system services had to be grouped together to be different threads of one process. However, the performance advantage to be gained by limiting the system in those ways was probably not worth the effort
On the other hand, Linux also needed to mature. A lot of the work that was needed to support ARM and embedded development wasn't available at the time that Cobalt was being designed. The original 2.4 kernel was in early 2001, about the same time that Cobalt development started.
-- Ben Combee, Senior Software Engineer, Palm, Inc. "Combee on Palm OS" weblog: http://palmos.combee.net/ Developer Forum Archives: http://news.palmos.com/read/all_forums/ -- For information on using the PalmSource Developer Forums, or to unsubscribe, please see http://www.palmos.com/dev/support/forums/
