
Jim Gettys On Itsy/GNOME/KDE And Small Devices 75
MichaelH writes: "AllLinuxDevices has intervie wed seminal X developer Jim Gettys of handhelds.org. He discusses the fate of the Itsy (and Itsy 2), the GNOME/KDE environments on a palmtop, and some of the challenges of porting X to a compact environment. Handhelds.org is currently driving development for the Compaq iPAQ 3600 series as part of the 'Open Handhelds' initiative."
X is bloated??? (Score:5)
On my RH6.2 distribution, the SVGA server is about 1.7Mbytes. That's code that's optimized for speed, not space, and includes a lot of extensions and features. The full libX11.a is 1.1Mbytes; most of that stuff isn't needed to write applications for a handheld and would never get linked, and could probably even be stripped out. And toolkits like FLTK show that even a reasonably nice toolkit under X doesn't need to take up a lot of space.
I've run X11 just fine on a 4M 80386 machine, less powerful than the handhelds in use today (in fact, less powerful than a Motorola pager). X11 was designed to run on those kinds of environments. It has a number of provisions for dealing with restrictions on simple devices (e.g., backing store is not guaranteed). And it has acquired surprisingly little extra stuff in its core since those days (although there are lots of useful, loadable, optional modules).
Not quite a "me too!" post (Score:1)
I wait for the day when a handheld device is as easy to write on as a piece of paper, yet still has the functionality of a desktop. I want it to also be able to take voice commands and notes that way. Of course, we can forget all of that and leave it behind if I could just put a real phaser on my palm pilot and shoot lasers at people during meetings at work.
Re:X is bloated??? (Score:5)
Xlib has both I18N code and CMS code that should never have been put in it.
I'm going to strip them out into separate shared libraries that only get loaded if an application uses them.
The I18N code is generally replicated independently in toolkits, and the CMS (color management system) stuff is seldom if ever used.
This will preserve binary compatibility, and save at least
- Jim
Re:Why X? (Score:1)
Looking to the future, connected pda's with the ability to do things like xdm and whatnot with other pda's and servers would be a cool toy to play with!
Just a thought... i like to play
Re:Gnome has benefits on handhelds (Score:2)
Mike
--
Mike Mangino
Sr. Software Engineer, SubmitOrder.com
Screen Res - not just a PDA problem (Score:1)
Like many others, I first evaluated Linux on an older system. Being an old system, I can understand that system performance/responsive will not be the best. However, the system could not support above 640x480(old VGA card and/or fix frequency monitor). "Minor" things like not being able to save setting changes really give Linux a bad first impression.
Re:Gnome has benefits on handhelds (Score:1)
i haven't seen the keycard access you're talking about, but that's probably an option the university hasn't picked up on because these terminals are primarily used for ssh into the mailserver for pine, and everybody already has a passwd for that.
Re:Why X? (Score:1)
Or I could run a remote X app on my PDA, with wireless ether you could config your servers from a friken airplane.
IE the (standard) cool shit unix/linux/X gives you in the first place, why hell would you want to lose that especially when PDA's come into play in a places like airplanes, siberia or where ever you can't/ don't want to carry 15lbs of laptop or 100lbs of desktop. Bring up a wireless connection, and your whole corporate network is at your disposal.
Re:X is bloated??? (Score:2)
Re:Bigger is better? (Score:1)
Hell, at that time almost hardly anyone networked pc's. Windows didn't even include the software to do ether at all, let alone telnet or ftp clients.
I've got several vaxen and old sparcs. I've got a IPX with 16meg of ram that runs debian 2.2 quite nicely, even with X. Some of the vaxen I've got have less than 2meg RAM (no sims either just chips in sockets on the mobo), so modern PDA's totaly blow them out of the water, and could easily run their software (CPU-cycle-wise I mean), which even in 1987 could do some cool shit. Load them up with a lean, slightly optimized linux, and watch the magic.
Re:X is bloated??? (Score:1)
> This will preserve binary compatibility, and save at least .5 megabytes...
Well, no, actually.
It'll save memory being mapped into the address space of the process, but if the process never uses the functions called, the pages will never get loaded into RAM.
In other words, if you're not using i18n, in general you won't have any i18n code in memory.
Actually, you might, iff the functions are arranged in a sufficiently bad way in the library; hopefully similar functions are close to each other so that loading, for example, strcpy, doesn't also get you fopen...
Stephen
Re:GNOME is being moved to handhelds already (Score:1)
I can't wait to see how small they've gotten the GNOME [gnome.org]-based framework.
Ken
Portable environments (Score:1)
Linux as a kernel scales down to the handheld pretty well, but WinCE and Java, Micro Edition (with the possible addition of PalmOS) are going to keep running the show so long as they have the only consistent and usable API's for user application development.
The comments about rolling the new, lightweight versions back into the original tree are also quite valid, IMHO. When you're forced to squeeze every bit of performance and memory efficiency out of your code, some pretty amazing things can happen, and there's no reason that those hacks wouldn't be helpful and appreciated in development for other environments. High-volume servers need every free byte and cycle they can get, justs like palmtops.
Re:Density Problems...... (Score:1)
Re:Screen Size (Score:1)
Again, good for handhelds and Wearables =:-) (Score:2)
One thing that would be nice to see sometime soon is somebody who makes PDA/handheld sort of systems, but is open enough about their architecture that people can tweak them (like using eyepiece LCD's instead of panel ones, attatching some sort of serial keyboard/pointer and having it work as the native one would, etc...) then even joe schmoe can get the most out of his PDA by making it a wearable, and the core can have the FSCK optimized out of it for battery life because it'll be an integrated system. I think the cobbed-together-ness of most homebuilt wearables is the biggest battery drain, and most commercial wearables now are incredibly expensive, aminly due to ridiculous markup.
If somebody would design a handheld open enough to tinker with, i think all these multitudinous birds would be killed with one stone =:-)
Re:And the topic of the day is: MDMA (Score:1)
Re:Screen Size (Score:2)
In any case, the reason why you aren't seeing handhelds with eyepieces is that they are still too expensive. When the prices come down, you'll probably first see them on digital cameras. There are also some tricky UI issues.
OT: Your sig (Score:1)
"I'm not vegetarian because I like animals, I'm vegetarian because I hate vegetables."
Re:You heard it here first... (Score:2)
In some places, the X11 code explicitly traded code size for speed on RISC machines (e.g., loop unrolling, etc.), so those are obvious places to make it smaller if you need to squeeze.
Beyond that, there are probably some things that can be cleaned up, and it's good that someone looks at them. But please don't get melodramatic: the savings aren't going to be earth shattering, and they don't have to be. The standard X11 server isn't all that bad. I used to run X11 on a 4Mbyte 80386 (under SVR3) and even that worked just fine; a handheld is going to be faster than that.
Perhaps you are looking at the VSZ and RSS columns in ps? Those are big (64Mbytes on my machine), but they include the shared memory used for the frame buffer and I/O, as well as a lot of internal buffers.
window manager overhead (Score:2)
I was originally planning on just making another glib Citizen Kane reference, but since this thread is nothing but trolls, I thought I'd at least say something meaningful about the article.
"Handhelds need a window system, and inventing a new one seems very boring to me" muses Boss Jim Gettys. Umm, maybe, but I'm dubious about the prospect of not refining one of the most important parts of the handheld experience because it involves a certain amount of gruntwork.
Gettys also notes that "X11 was developed on VAX 11/750's with 2 megabytes of RAM". True, but there are plenty of fundamental differences between an early VAX and a handheld, even if both have similar amounts of RAM.
Gettys says he is "willing to spend memory on toolkits if they recover as much memory by making a set of applications smaller". That may be a sensible strategy with something with the scope of a handheld, but I'm not sure X is the ideal candidate -- X was originally designed as a "do everything" protocol, and that means plenty of extra overhead to implement such frills as a window manager or widget set.
I'm reminded of the recent discussion [slashdot.org] about the desirability of reusable components in an OS - how they're great when they work properly, but that they can introduce all sorts of headaches when versions of different applications get out of sync with one another. You'd think that reusable components would be a natural approach for handhelds, but then again, I've seen Windows CE handhelds crash often enough that I'm still a little suspiscious.
As for the possibility of adapting Gnome or KDE to handhelds, I'm not holding my breath. I've finally become a Gnome convert, but it took a Pentium III with 128MB to convince me.
Re:PDA Interface (Score:1)
besides, i want the apps on a pda to be transparent. the palm comes close, but i still find myself wondering how to do something (admittedly arcane) from time to time ("i have this class on monday, tuesday and friday all quarter. how do i put that in there with out doing it manually 30 times?") just porting over desktop linux apps to 160^2 is asking for trouble. i want an electronic piece of paper that clears itself after every use and remembers what i wrote down on it so i can access it later in the same state. i don't want or need to play doom, (well, i don't need to, anyway) or have the thing run a window manager. even web browsing seems like a bit much to ask. just pop/imap would be sufficient.
Re:And how much video RAM is in your desktop??? (Score:2)
320 Pixels X 200 Pixels and 1 byte for every pixel (8 bit colour, remember?) = 64K!
Even if you give 16 bit colurs, then the number jump to 128K! - how did you get the 512K figure?
Look at very old EGA cards and way-older VGA cards - there was 64k only.
Where most of the memory usage comes from (Score:1)
PID USER PRI NI SIZE RSS SHARE STAT LIB %CPU %MEM TIME COMMAND
5422 root 0 0 200M 200M 1100 S 0 0.0 728.5 0:54 X
Obviously my server is not 200 Meg in size and using 728% of my memory. Try running your X server under "strace" and grep for the "mmap" calls. You will likely see the server memory mapping the card's video memory into its address space. So if you have a 64 Meg video card and the server maps it all (or even more as mine does) it will look huge, but counting memory can be deceptive...
Nope. (Score:1)
Re:And how much video RAM is in your desktop??? (Score:2)
I really don't understand why so many people want to insist that X is so horrible because it's {bloated|slow|too network transparent to be efficient (!)|doesn't enforce UI policy}. I think that some of these people are only interested in games (which apparently run quite nicely), streaming video, or insisting that everyone's UI act the way they want THEIR UI to.
Jim Gettys & crew were absolutely on the money. I'm amazed that in these days of the Internet (back then, there were something like 300 hosts on the *ARPA*net, and Project Athena was just starting to take off), hand held (and smaller) devices that anyone would even CONSIDER a display that is NOT network transparent. For the people who insist that direct graphics access is the way to go, giving arbitrary user applications direct access to the hardware is suicide (not to mention not all that portable).
For those people who note that no one with any sense would play Quake with the raw display bits going over the network, of course not. But what does that have to do with the price of RAM?
MIPS (Score:2)
What does anyone else think about this? I like the larger display, and the sound capability of the CE devices, which is why i bought one... wish it wasn't running windows though...
PDA Interface (Score:4)
You heard it here first... (Score:3)
It's scary to think that a reimplemented version of X for a hand-held computer would be equivalently functional and so much less bloated to warrant folding it back into X.
...I guess no one has wanted to rewrite some of that code for a long time, and I can't say I blame them.
Of course, I'll laugh my ass off when I find out that "Windows 2005" is actually "Windows CE 5.0"...
---
pb Reply or e-mail; don't vaguely moderate [ncsu.edu].
Screen Size (Score:4)
Wouldn't it make sense to solve this problem with hardware? Why can't we put high-density LCD's (1-inch square at 800x600 pixels or higher) in an eyepeice to create a nice resolution display that appears to be a 21" monitor to the eye? Is it that the LCD's haven't reached that density?
Please don't responds with a thousand headgear links, I know they're out there. I'm just wondering why major vendors aren't perfecting this into a super-small lightwieght single-eye peice and shipping it with handhelds as the main display (which would make the handheld smaller, too.)
One for the marketting department (Score:1)
What is the currently unsolved problem to which these are the solution?
As an aside, my desktop screen is too cluttered in Gnome/KDE already - what's a tiny handheld screen going to be like with huge technicolour icons and stuff littered all over it?
FatPhil
Wrong approach? (Score:3)
--
For more information (Score:3)
getty - sets terminal mode, speed, and line discipline
--
Re:Screen Size (Score:1)
Re:Why X? (Score:1)
Re:Why X? (Score:2)
I can't think of any widely used windowing system that would be more suitable for the task. But maybe you have some suggestions?
Re:You heard it here first... (Score:1)
Well, X *is* a framebuffer; the windowing is optional; therefore, it should be exactly as good at 160x160 graphics as everything else--that part just depends on the pixels you push. Heck, play crappy movies fullscreen with DGA.
Now, X might be somewhat large and cumbersome for a handheld, but the remote display options and the compatibility would still be cool...
---
pb Reply or e-mail; don't vaguely moderate [ncsu.edu].
The idea is solid (Score:3)
However, few knowledgable hackers can use "lightweight" and "X" is the same sentence and keep a straight face.
As we start seeing broadband access in more homes, the ability to "remote control" your desktop machine (or even your home network) will become highly coveted. A networkable wireless PDA is well-suited to this task.
So, while the network capabilities of X are useful here, the multi-window interface and overall bulk of the software will cause this particular approach to fail. Expect to see a smart someone keep the good parts of this idea and build something entirely new with it.
Re:PDA Interface (Score:2)
Bluetooth it! (Score:1)
The only software that would need to run on it would be the kernel and an X server. All the X clients could be handled by the more powerful server which could run applications for several PDAs (all the administrators, managers, programmers...) This seems like it would work really well, at least to me. What might tie up a PDA's simple processor would be less than a blink to a Sparc or a P3-550.
nope, XFree86 ate our driver support (Score:2)
Until we start seeing accelerated graphics drivers (KGI exists, but it hasn't really been "adopted") for something more general than XFree86 servers, you won't see any serious graphical environments adopted on Linux besides X. Handheld _or_ desktop.
Although... in the case of handhelds, it's certainly quite possible to get by on just the framebuffer, so I dunno.
Re:Screen Size (Score:1)
Re:Why X? (Score:1)
Essentially, by using X you get the same thing Apple got when they bought NeXT or all those workstation companies got when they decided to use BSD instead of writing their own OSes -- a stable, tested product. X has been around damn near forever. Yes, perhaps it's overkill to an extent, but X works.
Now the real question is whether X is the right tool for the job, but I don't think that's much of an issue either. X is a GUI toolkit, not a GUI per se. The real issue is what *lcewm (hypothetical LinuxCE window manager) will look like when it's done.
/Brian
uh, I don't think so. (Score:1)
320x200x8=512k
320x200x16=1024k
I assumed 8 bit color. If you're assuming 16 bit color, or 65k colors, it's going to eat 1MB of RAM, not 128k (which would be a 2bit or 4 color display).
Re:Bigger is better? (Score:1)
Density Problems...... (Score:1)
I once read that the normal human eye cannot differentiate between the sharpness of a (720X480) 13 inch TV Screen and a 11 inch TV screen of the same resolution because the 13 inch TV screen showed the highest density of pixels that the human eye can see without magnification
Whoops! My bad. (Score:1)
Re:uh, I don't think so. (Score:1)
X bloat anecdotal evidence (Score:1)
I think strongARM based handhelds like the iPAQ probably exceed this machine's capabilities in every category except i/o (it had multiple SMD disk interfaces, SCSI, and a VME bus for slow stuff, if I recall correctly). I don't see why X wouldn't work quite nicely on the iPAQ if you had an appropriate toolkit that worked well with the 320x200 screen resolution.
iPAQ specs: http://www.compaq.com/ products/handhelds/pocketpc/H3650.html [compaq.com]
QNX (Score:1)
I don't think the problem should be shrinking the whole X system down, it should be redesigning X completely for their specific needs. Maybe if someone concentrates on redesigning it we can all benefit by a less bloated X system. Rock on!
Re:Bigger is better? (Score:1)
Re:Screen Res - not just a PDA problem (Score:1)
I have an old monitor and have the exact same problems. Why don't more Linux apps query the current display size and size themselves appropriately? I guess most developers are blessed with monster monitors (probably even flat-screen LCD panels <grumble>).
Why X? (Score:4)
Why are we moving the X Window System to laptops, palmtops, PDAs, etc.? It's not meant for that - it's designed to window across networks. The core APIs are 15-20 years old, and it's humongous overkill to try to implement it for a simple display (IMHO, of course).
Is anyone out there even thinking of an alternative to X for those of us who want a GUI, but don't want to drag along 15 years' of backward compatibility, inherent networking assumptions, and layered APIs?
Re:Screen Size (Score:1)
The only issue I can think of here would be cost, which is probably why they did it that way originally. But I'm sure a vendor would want to sell the coolest little handheld ever, for however much they can charge, so I'd love to know what the other issues are... Anyone? Power consumption?
---
pb Reply or e-mail; don't vaguely moderate [ncsu.edu].
Re:You heard it here first... (Score:1)
Keith Packard's frame buffer code is now in XFree86 4.0.1: the text of a full function X server is a smidgen over 600Kbytes on the iPAQ. I'll be putting the screws on the X libraries in the next month or two, and save another 500Kbytes there. Keith and I believe we can get a basic X environment into something like a megabyte...
Which appeared in the text twice. So how come my version still takes about 10 times that much? I guess I should go download XFree86 version 4! I'm really impressed, actually, that this rewrite didn't require hobbling it in some way to customize for the small screen.
Re:Screen Size (Score:1)
And what makes you think that major vendors aren't working on making this more practical? Just because it's not here right now? These things take time. There are a lot of people working on it, and maybe one day it will be a reality, but for now we're stuck with current technology.
Re:You heard it here first... (Score:3)
Ever look at the xterm source [clark.net]? Right there at the beginning of main.c is this wonderful comment:
* W A R N I N G
*
* If you think you know what all of this code is doing, you are
* probably very mistaken. There be serious and nasty dragons here.
*
* This client is *not* to be taken as an example of how to write X
* Toolkit applications. It is in need of a substantial rewrite,
* ideally to create a generic tty widget with several different parsing
* widgets so that you can plug 'em together any way you want. Don't
* hold your breath, though....
When I frist saw that a couple of years ago, I immediately switched to rxvt [rxvt.org].
Re:You heard it here first... (Score:1)
However, there are lots of good examples of how this can happen: check out rxvt, for example. It's a reimplementation of xterm, without some features that apparently no one uses. As one of the original X applications, I'm sure that xterm has suffered a lot from bloat, maybe even more than xclock and xload.
And yes, I have yet to use an XFree86 server on my machine that can take up, say, less than a megabyte. Maybe after this, we'll be able to really take the QNX challenge!
---
pb Reply or e-mail; don't vaguely moderate [ncsu.edu].
Gnome has benefits on handhelds (Score:4)
I do a lot of embedded programming (settop boxes, so they're got a little bit more power than the devices here, but...) and one of the things that's a problem is finding a good, fast way to communicate between applications and processes that doesn't result in a mess. CORBA is one good solution for this, and gnome makes heavy use of these principles in it's design.
What would be really useful is a transportable environment that makes use of these design principles, and since there's a lot of work done and lessons learned with Gnome, and the code is open - go GPL - there's a great opportunity for linux to become more widespread. The linux kernel itself is stable, it's not the smallest, but that's not as big an issue as you might think.
JG: Gnome and/or KDE are more than just a particular application set: they are really application frameworks. These frameworks are applicable to handhelds, even if some of the particular applications need significant change for handheld use. For example, I believe we need a hand-held specific window manager, but some parts of the panels these systems provide may be useful, as well as the toolkits. Many/most applications will need some or extensive rework for the 1/4 VGA screens we're seeing on the new crop of handhelds.
I think what's being poked at is the idea of taking Gnome, making a Gnome-Lite(tm), maybe trimming down GTK or something for a widget set, and then using that as a base to develop more applications on. Obviously, as is, nobody is talking about running full-fledged gnome apps or environments!
He doesn't make much mention of PalmOS, which is a bigger problem for these kinds of initiatives than he might think. PalmOS has TREMENDOUS third-party developer support. This is what's beating back the WindowsCE devices - the sheer volume of nifty applications you can get for the Palm. A new device will have to contend with this, and the sheer utility of that third party software library combined with the Palm is a MAJOR force to be reckoned with.
The other potential benefits include being able to develop code once and deploy both on handhelds and desktops with little or no trouble, and interoperate well with other network devices and a developer's desktop. This isn't true for either WindowsCE or PalmOS..
WindowsCE does, I believe, make it easier because they're still using some subset of MFC (correct me if I'm wrong). This is what he's talking about doing with Gnome (or KDE), but basing the handheld device on a much more fundamental level with the desktop OS. A noble goal, but I don't think that it's going to affect this generation of devices. I don't want to run desktop stuff on a handheld. I want to run handheld stuff on a handheld, that makes me more productive! That's the point, right? I think the third-party software support on the palm is evidence of this.. I don't know that there's that much overlap. Maybe in the future if the handheld device plays a much more fundamental role with the desktop, perhaps as a "mobile virtual desktop", where you plug your device in and start working right where you left off, on whatever machine happens to be nearby. Until then :)
Re:You heard it here first... (Score:1)
Best screen is no screen (Score:1)
How would you like your Palm Pilot, or other PDA (if there are any other non-Palm PDA's worth mentioning) to be half its size, display in full colour, and do it in high resolution with the equivalent of a 17" or 21" monitor? The answer, my friends is VR goggles [wizbang.com]. Just think - instead of ever having to take it out of your pocket, just slip the goggles on.
Admittedly, there would be the problem of how to in put data, how to power the goggles, and carrying around goggles that are 5x the size of a typical Palm... but it's a really cool idea!
Re:Why X? (Score:1)
Re:Why X? (Score:1)
Berlin. It sucks, but it's an X alternative..
Bigger is better? (Score:1)
Am I reading this wrong, or is he saying that Linux is better than Microsoft because it is bigger!?
So MS Word is good because it is huge and has a ping-pong game built in?
And how much video RAM is in your desktop??? (Score:2)
Really, this whole complaint about X being bloated is overblown. We used to call X terribly bloated on Sun 3/50 workstations (back in '87-'88 or so) with 4MB of RAM. Well, we were right. But with modern hardware this is simply a non-issue. You want tiny? Go buy yourself a C-64 and run GEM.
Re:Again, good for handhelds and Wearables =:-) (Score:1)
If you look at the iPAQ H3600 spec on handhelds.org, you'll find that the internal
connectors are documented: if you want to
do head mounted displays, or drive some other
display, happy hacking.
- Jim
Still a little off (was: Re:Nope.) (Score:1)
Re:Why X? (Score:2)
Certainly, hardware may go this way, but software does not.
The theory of relativity is dated.. but do we consider it 'ancient'? No. Certainly, we have found some small variations in it.. but it's still extremely important and valid.
Why should software be any different?
X has done nothing but improve for 15 years.
GNOME is being moved to handhelds already (Score:1)
Re:X is bloated??? (Score:2)
GNOME vs. KDE: the game (Score:2)
<O
( \
XGNOME vs. KDE: the game! [8m.com]
Re:You heard it here first... (Score:1)
(I really don't want to start all this again, but...)
I assume that most people mean it's a code bloat - most people consider that X suffers from structure bloat and hacks (ie the time honoured example of vector fonts, and it doesn't have enough primitives). Many of X's ability to send low-fi versions of it's display across networks are terminally flawed unless you're dealing in a simplistic application. X, thesedays, is essentially a framebuffer- and as that it does the job poorly.
I'm sure that there are people who do work from home over a T1 using X, and i'm sure it's good for the job, but that's like saying your C64 is an excellent word processor. The job can be better done.
GGI is good. Berlin is good. X is good enough.
Re:Gnome has benefits on handhelds (Score:1)
Funny that you would mention that - we had a bunch of ancient Wyse terms in school that could do that too - X really isn't necessary for that :) I know, I know - some people do more than ssh+pine, but it was funny the way you said it.
Re:You heard it here first... (Score:1)
Argh! I meant `I assume that most people don't mean it's a code bloat`
Re:You heard it here first... (Score:1)
Unfortunately neither X nor BeOS is good for 160x160 graphics. Very few windowing environments look good like that because it's hard to window at 160x160! Maybe what they need to do is port GGI [ggi-project.org] and create a basic set of apps for that framebuffer system. Remember, you heard it here first...