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).
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.
Mas vale cholo, que mal acompañado.
it's designed to window across networks. :)
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
"The best laid plans of mice and men gang oft agley..." - ROBERT BURNS
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
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.
sunrays are popping up all over campus--most of the new computer labs being built have a cluster of 'em out front for email and web access. they're kinda cool--just these mammoth flat-screens with a keyboards and mouse attached. my boss described them as "video cards plugged into a network," meaning that they possess no meaningful computational power of their own--they just display the user's activity on the server. this leads to some interesting possibilities: for example, the server admin can take control of all the connected displays and broadcast a system message, or just a subset of the displays (say, the bio building) and change their access level on the network. pretty nifty stuff.
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.
london is drowning and i live by river
So when I'm in my office, I can plug it into an etherport and run the PDA apps on my 21" monitor, and use a full keyboard/mouse, that's why.
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.
The current Slashdot moderation system is made by gay communists!
Yeah, basically. Why does the windows GUI lack network transparency? Because when it was written, current pc's had less than 2meg of ram, to upgrade from dos to windows a lot of people had to buy their very first harddrive. While in those days X/unix was built on much more powerful vax, sparc, etc systems. Even cruddy 386 unix systems (I've got 2 rusty AST/Tandem 386's with VME boards in the closet, they're basically the same as the dos boxes of the time, but had more ram, and bigger drives, and other expensive stuff in them) cost thousands of bucks more than crap 486SX-16 with vga. So all the geeks bought what the could afford and unix was regulated to huge companys and universities, while Gates became the richest human on the planet selling (affordable, semi-usable) crap.
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.
The current Slashdot moderation system is made by gay communists!
I'm eagerly awaiting a source release from Henzai...
I can't wait to see how small they've gotten the GNOME-based framework.
Ken
I agree with the countless posts stating that a full port of X, GNOME, KDE, and the like would be unqieldly and unnecessary for your average palmtop. However, there is a real need for some of the features these standards provide in the portable/appliance/embedded range of systems. Take CORBA, for instance, or a consistent set of Internet protocol libraries, or fast, light XML parsers. Right now, the only folks providing these things are MS and Sun, and neither are sharing the code with anyone. Licensing may be cheap, (or even free) but they're still in the driver's seat.
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.
sqrt(720^2+480^2)/13 inches ~= 66dpi. Then why aren't we printing out books at 72dpi? think BEFORE you put your foot in your mouth.
I have a positive modifier on Troll. When I mod someone Troll their karma should go UP!
Screen size is a compromizing situation. Make the screen large enough for a pretty display... all of a sudden it doesn't fit in the palm of your hand anymore. The Eye glasses thing I think would work, also... maybe low-power projection directly at the eyes (I think I've seen this somewhere). Just stare at the red dot :-)
Blender And Linux Fan
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
Sorry for the soon to be vulgarity of this post, but Rob, plase, will you ban this asshole's IP from posting here temporarily? I'm tired of having to scroll through about 10 page lengths of responses to see just 4 of his. Sorry if anybody wants to mod me down, but I'm tired of this crap!
Glen
Track your fuel economy
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.
Very funny. Kinda reminds me of the old line:
"I'm not vegetarian because I like animals, I'm vegetarian because I hate vegetables."
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.
a pda should probably be thought of more as an embedded device, not as a little desktop computer. what happens if x goes down? a neat little shell prompt with no way of entering commands? i don't think the handwriting recognition sw is going to still work.
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.
london is drowning and i live by river
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)
Many people use top and see the amount of memory used by the X server and think that it is terribly bloated, but that's only part of the story. Want to see what my X server looks like under top? (sorry about the format...)
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...
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
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
Also FatPhil on SoylentNews, id 863
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)
Yes.
Free BeOS, runs from a Linux partition
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.
That would be the way to go. If I could walk into the office and suddenly my bluetooth-enabled PDA automatically starts getting its X feed from the bluetooth-enabled server in the computer room.
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.
In post-9/11 America, the CIA interrogates YOU!
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...
I'd sort of sum it up like this: Because it's there.
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
320x200x1=64k
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).
There are alot of things you can do with a Linux kernel that are difficult/impossible on the alternatives.
The reason they do not up the display resolution is because they want the PDA's to be portable, and to be portable they have to be viewable in conditions ranging almost direct sunlight to complete darkness
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
Forgot to divide by 8 in order to get bytes. You're absolutely right. 320x200x16=1024kbits, or 128kbytes.
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
QNX got it down to 1.44M; why not make X smaller?
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!
I interpreted that as Linux having the advantage that it's not specifically designed to have a tiny memory footprint...but it can if you want it to. :^)
Stating on Slashdot that I like cheese since 1997.
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
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. 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!
Mr. Ska
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?
Hi!
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.
Some of that memory usage you see in, say, top is actually video memory ram. The more video ram you have, the greater the apparent usage because X maps it all and then some. So, on my system, 16MB of the reported 64(!)MB used is actually video ram. (BTW, my system has 64MB ram...I'd like to know how Win4Lin starts up so flawlessly, with as little swapping as it does, if all my system memory is eaten up by X. :^)
Stating on Slashdot that I like cheese since 1997.
Strange he didn't mention Henzai they are aleady working on porting GNOME to PDA's. handhelds.org even has a link to them.
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?