Is the Agenda VR3 Linux PDA Dead?
An Anonymous Coward writes: "LinuxDevices.com has published a news item about the uncertain future of Agenda Computing and their VR3 linux PDA. According to the article, some members of the Agenda developer community are continuing work on current projects, but many have switched to other projects such as the Sharp Zaurus. Apparently there is an Agenda Germany office which is still shipping the VR3s (including to the U.S.) and which has said that they are continuing VR3 development -- but's not clear whether that means software or device development. Looks like another cool linux device has bitten the dust. Sigh."
How was this groundbreakingly different, and what did it offer over any other PDAs.
Any product that tries to cash in on the "Linux is cool" will find that people are looking for substance, not gimmicks.
I doubt there were many people that considered it a serious player in the world of PDAs.
I am not saying this to start trouble, I believe it just needs to be said.
I think this has nothing to with LINUX. And the GPL is good because how often has it happened that good code was lost because the company went under.
The problem with palmtops is that I have tried and tried to use them. But what I keep going back to is the smallest leanest notebook possible. And many other people think the same way. A Palmtop is in many ways a "toy".
"You can't make a race horse of a pig"
"No," said Samuel, "but you can make very fast pig"
Some people have looked into porting POSE (the Palm OS Emulator) to the Zaurus and other Linux handhelds, so that it could run Palm apps. Unfortunately, POSE needs a Palm ROM image, and those are not freely redistributable. You'd need to have a Palm anyway to get it to work. And the speed would likely be atrocious on a 200MHz ARM chip. It's not full speed even on my K6-II 500MHz.
I had a different idea. The Palm SDK's are available, and there's prc-tools and such for Linux. Why not create an emulation layer for the Palm API, like Wine emulates the Windows API on Linux?
The Palm API is better-documented, and much simpler. It'd probably be fairly easy to get to at least Palm OS 2.0 or so. Then you could recompile Palm apps for a Linux PDA. There would be a speed hit due to redirection, but the underlying processor is much faster; overall I'd think there would be a speed boost.
You'd still need to recompile, but there are lots of open-source Palm apps, and lots more developed with Linux; the developers might have good motivation to quickly port their app to a new platform.
I think the endianess is the same, so that's not a problem. To be legally safe there might need to be a clean-room effort, I'm not sure yet, but this'd be a way to get a lot of apps for, e.g., the Zaurus, and quickly.
PHEM - party like it's 1997-2003!
That's a difficult issue. Take a program that has no heap/stack usage. How much memory does it use while running?
One 4k page, containing either the current instruction, or the target address the current instruction is loading. All the other pages can be dropped by the kernel VM system, and demand-loaded back in when needed. Plus whatever kernel overhead there is to support the task and memory maps.
OK, clearly that's not a useful answer. Any real app that's really eating only one page is thrashing so hard that it won't get anything useful done in a timely manner. But it does get you thinking about what the nature of memory usage is, and possible ways to reduce it.
eXecute In Place support is one strategy. When you build VR3 compressed rom images, you can flag some files as sticky. Through the magic of VM, those uncompressed files are mapped directly into processes, and their code really does run from ROM---no copy in RAM needed. But VR3 ROM is slower than RAM, and you use up more ROM space this way. VR3 hackers have spent a lot of time exploring the tradeoffs here. But there are plenty of other strategies, and some that go deeper into the build process.
For instance, it would be nice if each code page had as much useful stuff on it as possible. If you have a short "hot" function, a long bunch of rare exception handling, and then another short "hot" function, you have to keep the exception handling code paged in even though you're not using it much. It would be better to reorder the hot functions so that they share a page.
You can do some of this with gprof's function reordering profiles and some linker scripts, but I haven't gotten around to trying this on the VR3. I think that some of the approaches to small-device tailoring do require the deep, system-wide approaches the parent article describes.
The Palm, on the other hand, was invented after the designer carried a block of wood around in his pocket for a month, pondering what the PDA should act like. Agenda Computing could have used a good block of wood.