Palm OS To Run On Linux
mwk88 writes "PalmSource today announced it is acquiring China Mobile Soft, a leading Chinese mobile phone software company, and will offer future versions of Palm OS Cobalt running on Linux. Full disclosure: I am a PalmSource employee -- but also a Slashdot reader, and would like to get some feedback. You can find more detail in this letter to the Linux community." NewsForge (also part of OSTG) has a textified (non-PDF), linked version of the letter.
There's a textafied version underneath. This guy was kind enough to consider us people who dislike adobe/acrobat.
*yeah, yeah, we know we don't have to use acrobat, there are billions of readers out there, blah blah blah*
Two questions on the tip of my tongue were answered outright and the section gives good perspective on the angle company is taking. From the article:
My suggestion: scroll down for the good stuff. It's at the bottom of the article.
Of blankness, I know nothing.
Depending on the Tungsten model you have, Graffiti 1 *is* available. Search some of the old Palm discussions lists and message boards--the short version is that you need to find someone with an original Tungsten T (the first unit with the slider), which was the only Palm handheld with both OS5 *and* Graffiti 1, and get the two Graffiti libraries. Or, find someone who has the files already. I'm making no comment as to the legality of this, only the techniques involved. {Jonathan, Tungsten C owner}
From the article it's clear that they are basically using Linux to replace the previous kernel they used. They're porting PalmOS as a layer on top of a Linux kernel instead of whatever it was they had before.
Hopefully it will mean a sane development environment for new apps (threads!), while still providing a backwards compatible mode for existing apps.
It will be interesting to see how this develops. Obviously, the biggest selling feature of this scenario is that it gives OS licensees the ability to run the extensive set of preexisting Palm OS applications while letting them do more sophisticated things under the covers without running into Palm OS's limitations. The only hitch is the GUI, which will have to use the Palm OS APIs, so Linux apps will still need a piece written specifically for these devices. It may not be an issue in all cases, though, especially with interpreted languages. A Linux version of Java could perhaps reimplement one of the GUI toolkits in Palm OS terms.
EricCrufty stuff: Palm Database Programming: the free electronic version
" Linux is a trademark owned by William R. Della Croce, an individual, and previously owned by Linus Torvalds, the originator of the GNU code of the same name." wrong! The Linux Trademark suit (1996-1997) Though this has been tried again in other countries, the definitive case over the trademark on "Linux" happenned after an individual named William R Della Croce, Jr of Massachussets fraudulently trademarked the name "Linux", claiming he had made the first use of the name in 1994. Nobody noticed until he sent threatening letters to WGS of Aurora, CO (Linux Mall), Yggdrasil of San Jose, CA (first maker of a Linux distribution on CD) and others. The Linux community provided ample evidence that this was not true. The resulting lawsuit was settled with the trademark being assigned to Linus Torvalds. Right!
One of the problems with the Zaurus is its software - as a PDA it really doesn't cut it compared to Palm. It's great for a Linux hacker to mess around with, and for War Walking (got Kismet running on mine right now), but for the average user wanting a PDA it's poor. Which is a shame.
Now if I could retrofit Palm software on to it... well... I might use it as a PDA!
There is already an excellent cross platform, Open Source PalmOS synchronization solution that runs on Linux (and Mac OSX and Windows and OS/2 and Solaris and everywhere else) called the jSyncManager.
It has all of the necessary APIs for synchronizing calendars and accessing the handheld Expansion Manager and Virtual File System.
What it needs it some more jConduit plug-ins written for accessing popular Linux applications. However, it has an extensive API and is licensed under the GPL/LGPL, so Palm (or anyone else) could very easily create a Linux-integrated synchronization tool if they so desired.
Brad BARCLAY
Lead Developer & Project Administrator,
The jSyncManager Project.
The actual posts on Engadget about these rumors:
http://www.engadget.com/entry/3746421329807386/
http://www.engadget.com/entry/1234000100021627/
Yes. ::raises hand::
For about ten minutes, every executive wanted one to replace their paper-based Franklin Daytimer, but now it seems that everybody uses their cell phones to do 90% of what they actually used their Palm computers for (address book & schedule reminders), and everybody just brings yellow legal pads to meetings when they want to pretend that they are taking notes and paying attention.
Integrating phone functionality with PalmOS is a priority at PalmOne. Handspring made the (possibly ill-conceived) announcement that it would "only be developing communicators" (PDA+phone devices) shortly before being absorbed by PalmOne. The Treo 650 is widely regarded as being a good device, though I've heard some rumors about poor voice quality.
For me, the holy grail would be decent voice control, a Bluetooth headset, and still no buttons/keypad on the device so it can have more screen area.
It's been about three years since I've seen anybody take notes on a palmtop in a meeting, and if somebody did they would probably be laughed at.
I take notes at meetings using one all the time. Nobody laughs... ;-)
No current phone except the Treo has the horsepower (CPU+memory) of a decent PDA. I'm actually ambivalent about adding phone functionality due to the additional battery drain. I guess the alternative is vastly improved battery technology. For me, the beauty of a PDA is having a computer with me constantly - which translates into an infallible memory plus lots of powerful and entertaining capabilities.
Galileo: "The Earth revolves around the Sun!"
Score: -1 100% Flamebait
In the project that I'm on, I've pushed for (and successfully gotten) Palms used for interfacing to the electronics in the project. They're far, far more useful than laptops for simple interfacing stuff (anything that can be interfaced with RS232, or nowadays USB). Cheaper, more rugged, much more visible in sunlight, and more importantly, far easier to use. Ever try typing on a keyboard in sub-freezing weather with high winds? Uck.
(On a side bad note, do try to keep Palms slightly in the shade. The screens tend to darken significantly with heat from direct sunlight).
Palms have been used for
and lots, lots more. To be honest, part of the reason that I bought a Palm for my own personal use is that I wanted to support them. A cheap PocketPC device is $150. A cheap Palm is under $100.
Plus, really, who wants to program for a Windows device? Palm even has a Linux programming chain, and a Linux simulator for Palm OS.
Palm had to go to graffiti 2 because of a lawsuit over it with Xerox. I think Palm has now succesfully appealed the lawsuit result and so could, if they wanted to, go back to Graffiti 1 if they wanted to.
Why they are sticking with G2, I have no idea. It's a horrible system. Or did the developers never have to write words that end in 't'?
T? You mean words that end in 'l' that metamorphose into words that end in 't'.
Or developers use some strange language where n, h, and u are all the same letter.
Yes, that's what I meant to type. I think my mind is trying to protect me by blocking out the awfulness.
My main annoyances were the l/t confusion, i's and k's.
The *really* brain dead thing was that it actually broke backwards compatibility. With Graffiti 1, every app could assume that a single keydown event produced one unique key. You can't assume that with G2.
Even Palm themselves were caught out by this: just try accessing a menu shortcut that is set as command+k (like the display keyboard command in every app). It's not possible in G2, you get whatever command is bound to command+l instead.
Regarding their software, it looks to me as if their software didn't grow to fit the ARM hardware as fast as it should have, due to the extent of 68K assembler programming in their original platform. Linux is part of their path out of that.
Bruce
Bruce Perens.
Over the years, I've bought a few PDA's, but they've never lived up to their hype for me. Their usefulness was limited for a variety of reasons.
What I want is the holy grail. The single device that I can use for everything. MP3's, PDA, Cell Phone, Digital Camera, etc...
HP has a few nice units coming out that are almost there, but they're missing the crucial part: A hard drive ala iPod.
Give me a PDA with wireless (802.11 + Cell/3G wireless), bluetooth, 10-40GB hard drive (hell, i'd even settle for the 4GB iPod mini hard drive at this juncture), 128MB+ memory, fast processor (200Mhz+), 1.3MP Digital Camera or better (with flash!), sliding minikeyboard that slides over a larger display (kind of like a cross between the Clie NZ90 and the Treo or Zaurus)...
Then make it convenient to carry and use. Obviously you're not going to get all those features into an ultra compact form factor, but something the size of an NZ90 should be doable.
The big problem, of course, is power. That sucker will eat batteries like they're potato chips. So, there needs to be a big, high power battery, and the ability to swap batteries easily without disturbing the applications.
I don't care what it costs. I'd pay it.
If you need web hosting, you could do worse than here
Here's how I solve the problem: replace Graffiti with TealScript. Unfortunately, it's ridiculously expensive for a Palm app, but I love it because I can actually use my own writing, which is actually very minimalist and original-graffiti like anyway -- but different enough that it was driving me crazy. And slowly, Graffiti was destroying my own handwriting. TealScript let me get it back. It's shareware, so you can try it out first (indefinitely, if you're into that).
You know, multisync on Linux handles the Palm fine, and the Palm protocols are standards-based. It seems to me the problem is on the Windows side, possibly in Palm's sync software on that side but definitely on the Windows side.
Bruce
Bruce Perens.
I forgot the tags and more importantly forgot to mention where some of the text was taken from. This is how it should have looked:
" Linux is a trademark owned by William R. Della Croce, an individual, and previously owned by Linus Torvalds, the originator of the GNU code of the same name."
wrong!
"The Linux Trademark suit (1996-1997) Though this has been tried again in other countries, the definitive case over the trademark on "Linux" happenned after an individual named William R Della Croce, Jr of Massachussets fraudulently trademarked the name "Linux", claiming he had made the first use of the name in 1994. Nobody noticed until he sent threatening letters to WGS of Aurora, CO (Linux Mall), Yggdrasil of San Jose, CA (first maker of a Linux distribution on CD) and others. The Linux community provided ample evidence that this was not true. The resulting lawsuit was settled with the trademark being assigned to Linus Torvalds."
from: http://www.linux10.org/history/
Right!
For what it's worth, Palm OS Cobalt already does have full support for multi-threaded programming in the Protein APIs.
They'll keep their apps closed, but the kernel is another story. They don't have any significant advantage by keeping their modified kernels closed, the power is in the apps. In fact, trying to integrate your kernel changes in mainstream is a great idea, it means you don't have to maintain the patches.
My hope is that we'll see palmos engineers in the linux kernel mailing list just like we're seeing SGI/IBM engineers today.
Since Palmsource neglects to document ANY of their changed APIs in the applications, every byte has to be reverse-engineered from scratch. I think we've done a pretty amazing job at creating what exists today, given that we've had NO help, NO docs, and FEW devices to work with.
This kind of reverse-engineering requires real devices, the simulators (which are Windows only, forcing us to buy Windows licenses, just to reverse-engineer an undocumented protocol, so users can sync their Palm devices on Linux).
These devices cost money, lots of money, since every vendor has proprietary extensions which require special handling (Sony has photos in the Addressbook, Palm has cross-midnight calendar functionality, etc.) Since none of us get paid for our pilot-link work, or any Palm synchronization work on Linux for that matter, there isn't a lot of incentive to fund these $400 devices every few months.
And if you had actually read our mailing list, you would see that SD cards work fine now, but Birthdays aren't supported yet, because there are bigger things to address in the codebase first, like working around the chip-level bugs in the T5 and Zire31 devices.
The code for the new Contacts API is already in CVS, but there is nothing in userland to talk to it yet. Its coming, just not right now. I'm not going to introduce any new functionality until we figure out all of the bugs and issues with existing functionality first.
And lastly, pilot-link is the project that comes up with all of this code, from scratch, with the help of some very talented developers. Anyone else who claims compatibility with these devices on these platforms, is using our code in their projects. Period.
Sorry motown, PalmSource made it clear right from the start that they bought BeOS purely for the people - it was just a big pile of brilliant OS developers to them. They never intended to do anything with BeOS.
I suspect they have not released the source code because this would require them to do stuff with it - at least have legal and a handful of developers go through it to make sure they can open all the source - and they will not spare the resource.
It is a pity though.
~~~~~ BigLig2? You mean there's another one of me?
Blame Xerox (http://www.wired.com/news/business/0,1367,47363,0 0.html). They're the reasons they switched to Graffiti 2 to begin with.
s Story.aspx?partner=5150&product=IR&storyid=114652) . So, in the end it's PalmSource's fault, but Xerox started it all :)
Although PalmSource did end up winning in the end, they decided to stick with it because they claim it's easier on users. (http://ir.thomsonfn.com/InvestorRelations/PubNew
I think some Palm OS architecture/history is in order here. Porting Palm OS to Linux will not be a revolutionary step for PalmSource, because Palm OS (at least until version 5 and 6) does not encompass an OS kernel. Palm OS through version 4 ran on the Kadak AMX kernel, and part of the reason it was so limited (no multitasking or threading) was due to license agreements with Kadak. In Palm OS 5, (then) Palm, Inc. ported their OS piece to ARM devices, and started exposing new multithreading APIs available in the kernel (whether the 5.x kernel is AMX or another is unclear to me; Palm has rarely acknowledged it ever used AMX in the first place). In fact, one of the major features of PalmSource's "Protein" APIs is to allow maximum portability of Palm OS applications, regardless of device underpinnings. Ultimately, though it will take a lot of work for PalmSource's programmers, porting Palm OS to run on the Linux kernel should not be terribly hard, because its architecture is designed to be relatively kernel-independent.
Now, for my opinions:
Palm should have based Palm OS 5 (which PalmSource now calls Garnet) on the Linux kernel, and immediately started exposing Linux features through their API layer. The mess that OS 5/Garnet has turned out to be is just sad. And though OS 6 (Cobalt) has some nice screenshots, no Cobalt devices exist, even after it has been available for a year. Palm OS still has neither full multitasking nor a true filesystem. PalmSource's latest stab at a filesystem, NVFS, has caused their only important licensee, PalmOne, no end of embarrassment, and has rendered the Tungsten T5 and Treo 650 almost useless for many consumers. While Palm/Source/One insisted for many years devices like these didn't need advanced features like filesystems and multitasking, in reality they are needed for the applications people want.
And speaking of applications, it is, relatively speaking, difficult to write Palm OS applications. The Windows CE/Mobile (or whatever they're calling it this week) API is a subset of Win32. Writing for QTopia or another Linux-based PDA platform is not unlike writing a normal Linux app. Even writing J2ME apps isn't terribly hard, though the API is limited. Writing Palm OS apps is weird, and confusing. PalmSource has helped a little by making Eclipse their preferred IDE, but Palm apps still work like nothing else, and you can forget porting code between platforms. Thus, there is an advantage to using Linux as the new kernel, since one would hope you would be able to port existing Linux-based code to the new platform, and make calls to it from the Palm OS API layer. This assumes PalmSource doesn't mess things up like they did with NVFS.
Ultimately, however, I believe this move by PalmSource is too little, too late. Had this move been made with OS 5, they could have had something. Now that there are no devices or apps for the current Palm OS version, and the first pieces of Linux won't show up until the next version (OS 7?), I believe device makers and app developers will have lost all interest in the Palm OS platform by the time Palm OS for Linux sees the light of day. Windows Mobile and Symbian will take over the majority of the smartphone market, while a small number of phones and PDAs will use Linux. Meanwhile, the Linux on HP/Dell/etc. PocketPC movement will become stronger, since those devices will be readily available, and there will be a small dedicated core of people to write great software for it (case in point: Opie).
--Mythos
Just download Graffiti1.zip from http://zansstuff.com/palm, read the instructions in how_to.txt carefully, and you will soon be up and running with Graffiti 1 again.
There is a BIG HUGE difference between being able to distinguish from among 50 or so spoken commands and names, and being able to do natural English continuous speech recognition. The first was perfected a decade or more ago. The other is not perfected yet.
"-1 Troll" is the apparently the same as "-1 I disagree with you."
The *really* brain dead thing was that it actually broke backwards compatibility. With Graffiti 1, every app could assume that a single keydown event produced one unique key. You can't assume that with G2.
Actually, that is the whole reason they adopted G2!
Xerox sued them over Graffiti. Xerox has a patent on a writing recognition system called "Unistrokes". Unistrokes is very different from Graffiti, but Xerox claimed in court that the Unistrokes patent gave Xerox ownership over the very idea of an alphabet where every character is a single stroke. A judge ruled for Xerox, Palm appealed, and eventually the case was overturned.
Since Palm didn't know for sure that the case would be overturned, they prudently replaced Graffiti with something else, to limit their liability to Xerox. They HAD to make some letters require two strokes to recognize; otherwise the replacement would also be affected by the Xerox claims.
So, if you hate G2 (as I do -- HATE HATE HATE) then you should blame Xerox, not Palm.
Note that all you have to do is beam Graffiti from an older device (Palm Tungsten T, for example) to your newer device, and you have Graffiti back. I did this on my Tungsten T2, and it works great. Graffiti is so much better than G2.
I dearly hope that the Cobalt devices will have Graffiti as an option. Since Palm won in court, there is no problem to do it.
"based on" can mean a lot of things. Though even taken pretty liberally, I wouldn't agree with the assertion that POS 6 is based on BeOS. There is some BeOS code in there, yes, but Palm OS was not based on BeOS.
So what you've got is a win for PalmSource (they sell more PalmOS), a win for Linux (it gets more devices) and a win for software developers (who need only develop to PalmOS to run on Linux devices).
I doubt the last one will pan out that way. That is, there have been a few proprietary GUI- or VM-layers for Linux over the years. None of them have magically given developers the ability to develop for this one subset platform (say, Palm OS on Linux) and deploy to the superset. The article says that to do a GUI, you'll have to use the Palm OS GUI API. It's not like I can just go download any Linux app that was written for that Amiga runtime and run it. Like Palm OS now, I doubt it'll be something you can just download and install for free- heck, I doubt you'll even be able to buy it and use it to run your Palm OS+Linux apps. It'll be there on a PDA that you bought that came with it, licensed by the hardware manufacturer. And you'll have to pay to upgrade, probably have to buy a new device. Palm doesn't want things to change, they just are trying to find a new angle.
Though, perhaps you could pray to the POS gods that someone writes an X server for Palm OS. At first, I laughed at the idea, but if you have everything written on the Linux side and just use the POS API for the GUI stuff it could be possible. I use an X server on WinCE occasionally for remote access, though usually Windows RDP or VNC make more sense.
Working toward a usable PDA environment in the spirit of Newton OS: Dynapad