Jim Gettys On Itsy/GNOME/KDE And Small Devices
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."
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).
Sun microsystems has a desktop system called a sunray that does exactly what you describe above. Each person has a card that identifies them. When you want to log out, you just take your card out of the machine (It is hot swappable) When you want to start working again, you just plug the card into any other sun-ray on the same network. Your desktop appears exactly how you left it! In the age of wireless networking, this is an extremely feasible thing, you just make the server maintain state and allow access by anyone with the appropriate credentials. (I wonder how hard this would be to hack into X?)
Mike
--
Mike Mangino
Sr. Software Engineer, SubmitOrder.com
Mike Mangino
mmangino@acm.org
Again, what is good for handhelds is often good for wearables =:-) This sort of research of getting the most out of a small screen, getting the most out of small memory, flash, etc... is all leading to more affordable, less battery intensive wearable systems.
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 =:-)
---
Play Six Pack Man. I
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.
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.
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 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.
Huh??
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.
Hetz (Heunique)
Dunno about bloat, but diskless 3/50's were very popular as X terminals when people got tired of swapping and paging over the network. The SunOS 4.1.x core, with the minimum required to run X and do nothing else, fit quite nicely inside the 4 MB, so once things were running there was no network paging.
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?
what they need to do is grab some surplus ROMs that were used to boot winCE on the winCE devices, and get a working boot of linux on there, so all you have to do is pop the new rom in. I wouldn't think that it is soldered onto the board, because supposedly CE was 'upgradeable' I have yet to pop the RAM out of my nino (which is on top of the ROM--at least i think) to find out.
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...
mov ax, 13h
int 10h
No offense, but I think that an environment for PDAs is best designed specifically for them rather than ported to the desktop, or at least redesigned, an interpretation, something based on another. There are certain limitations on palmtops including speed and screen size. Even if we stuff the fastest processor in there, a screen the size of your pocket still isn't inviting to certain styles of pager displays, and menus. It is best to realize what you are working with. I would love to see either GNOME or KDE ported to handhelds, but for the sake of usability, at least a few things should be modified. It might be usable, but certainly they are not the MOST suitable alternatives, in the form that they are seen on the desktop.
Eh...
X really is that bloated.
;)
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.
pb Reply or e-mail; don't vaguely moderate.
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.)
11*43+456^2
Remember, Wince sucked because it was taking a desktop environment, with all its bloat, and trying to scale it down to a tiny screen. Remember why the Palm was successful? While there were many factors involved, a main one was that its interface was designed for palmtop computers. Different sizes require different paradigms, and as good as GNOME or KDE may be, I don't think they would scale well at all.
--
Friends don't let friends misuse the subjunctive.
man getty
getty - sets terminal mode, speed, and line discipline
--
Linux MAPI Server!
http://www.openone.com/software/MailOne/
(Exchange Migration HOWTO coming soon)
I can't think of any widely used windowing system that would be more suitable for the task. But maybe you have some suggestions?
The idea of a network-based lightweight GUI running on a PDA is solid.
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.
The real DunkPonch is user 215121. Everyone else is Bruce Perens.
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.
DNA just wants to be free...
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?
I love vegetarians - some of my favorite foods are vegetarians.
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 :)
..don't panic
Mr. Gettys is talking about a handheld which has a screen size of a quarter vga device, or about 320x200. While the actual X server and X libraries may fit into ~1MB after squeezing out a little bloat, the X server will still have to allocate memory to represent the display (and any virtual displays). For an 8-bit 320x200 display that comes out to 512k of ram... combine the two and one really consumes about 1.5mb of ram for display; not too shabby since most handhelds today have between 8MB to 16MB of RAM; some ship with even more. Now compare that to your desktop with a 16MB Voodoo 3 card and 4 to 8 virtual screens running at 1280x1024x32 bit and suddenly X looks horribly bloated because the X server has grabbed huge sums of RAM. Well, duh -- what's the X server supposed to do? Think Windows or MacOS could avoid that requirement?
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.
I wrote an NES game that pits a GNOME mascot against a KDE mascot. Play it then tell me what you think.
<O
( \
XGNOME vs. KDE: the game!
Will I retire or break 10K?