Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
×
Hardware

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."
This discussion has been archived. No new comments can be posted.

Jim Gettys on Itsy/GNOME/KDE and Small Devices

Comments Filter:
  • by jetson123 ( 13128 ) on Wednesday August 02, 2000 @08:54AM (#885921)
    A big fraction of the articles here is about how "bloated" X is supposed to be. If people keep saying it enough, I guess everybody will start believing it. But the facts are different.

    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 agree with what you said. I personally use a palm pilot, which while it is somewhat primitive, it is better than CE because it is geared more towards writing than typing. It has a software keyboard that sucks and eats up half of your screen, but if you learn to write in "grafitti" then using it becomes a lot easier. I think that the ultimate goal should be somewhat disconnected from how the PC works. I do not want to run linux on my handheld computer, just because linux in it's current for is for desktops and servers. I want something that emulates the functionality of some desktop applications (email, web browsing, a writing pad, spreadsheet, etc) but that is where the similarities should end. On CE it is fairly useless to have the start menu in a way similar to the various windows OS's. I would think that it would wear down that corner of your screen a lot more than anywhere else, and the bottom left corner is somewhat inconvenient for a left handed person like me to need to click all the time.

    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.

  • by jg ( 16880 ) on Wednesday August 02, 2000 @09:02AM (#885923) Homepage
    Exactly...


    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 .5 megabytes...
    - Jim

  • 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 :)
  • 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
  • Ever try using X on a 640x480 screen? It's a major pain, many of the GUI interfaces and control panels do not adjust to the resolution and the the "ok" and "cancel" buttons more often than not appear offscreen.

    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.

  • 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.
  • I was referring to the PageWriter 2000X [motorola.com]. It is based on a 68000 and Sun+Motorola were showing them at JavaOne 1999 (and probably 2000 as well). I forget the exact specs, but the JavaOne version had more than 4Mbytes of memory and ran at a decent clock speed. The retail versions have less available memory, but are still pretty powerful.
  • 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.
  • > 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

  • I'm eagerly awaiting a source release from Henzai [henzai.com]...

    I can't wait to see how small they've gotten the GNOME [gnome.org]-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.
  • 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 :-)

  • 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 =:-)
  • 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!
  • The screen resolution on the iPaq is higher, I believe (320x200?).

    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."

  • I don't know what you are running, but XF86_VGA16 3.? is about 1.74M of "text" (code) on RH6.2 Presumably, the PDA version throws out quite a number of features.

    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 [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.

  • 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.

  • 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.

  • 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...
  • by maynard ( 3337 )
    Gee, and here I thought they put memory on the video cards so you don't need to use system memory.
    You thought wrong. Videoram exists to increase bandwidth from the video accelerator chip to framebuffer RAM. One must still allocate system RAM to represent the many things which don't live in framebuffer space. For example: minimized windows, additional desktops, application shared memory, etc etc etc. In addition, since X lives in userspace, it allocates memory to represent the framebuffer as well.
  • 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...
  • by Dungeon Dweller ( 134014 ) on Wednesday August 02, 2000 @07:50AM (#885948)
    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.

  • by pb ( 1020 ) on Wednesday August 02, 2000 @07:46AM (#885949)
    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 [ncsu.edu].
  • by photon317 ( 208409 ) on Wednesday August 02, 2000 @07:51AM (#885950)
    One of problems he mentions is that of small screen size, because many apps simply don't work well in a 160x100 pixel environment.

    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.)


  • 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
  • by MostlyHarmless ( 75501 ) <artdent@[ ]eshell.org ['fre' in gap]> on Wednesday August 02, 2000 @07:56AM (#885952)
    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.
    --
  • by FascDot Killed My Pr ( 24021 ) on Wednesday August 02, 2000 @07:47AM (#885953)
    man getty

    getty - sets terminal mode, speed, and line discipline

    --
  • I've been wondering about that too. However people could end up trying to do other things while reading the lastest slashdot news :) If someone had just one eye covered they might thing that they could go driving or something stupid like that. (Yes some people are really that stupid) Also there would probebly be problems with radition given off by the screens being that close to they eye and developing something weird (like the cancer from cell phones) Erik
  • Yes [trolltech.com].
  • X11 originated on machines that were less powerful and had less memory than the iPaq or Itsy (I used to run it on a 4Mbyte 386). The core protocols haven't changed in a decade and there isn't any significant dead wood due to backwards compatibility. And I would think that network transparency is particularly useful for a little portable device; one big problem I have with my PalmPilot is that I can't just pop its applications up on my desktop.

    I can't think of any widely used windowing system that would be more suitable for the task. But maybe you have some suggestions?

  • Hmm. That second challenge sounds more interesting; I know that there is a free flash player for linux, but the only realplayer code I ever found really sucked. It could decode older streams at 14.4 and 28.8, I believe. Using the vendor-supplied versions would bloat things, but it's possible; just find the oldest version. For web browser/mail client/java, well, it's time to hack mozilla, since it has components that can be removed...

    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].
  • by DunkPonch ( 215121 ) on Wednesday August 02, 2000 @08:34AM (#885958) Homepage
    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.
  • Well, as far as toolkits are concerned, I agree (and so does the article). But X11 is mainly a remote graphics library, and it adapts just fine to whatever screen size you want to use with it. If anything, its pixel-accurate rendering and low level control, which make it an occasional pain to toolkit implementors, are an advantage in such an environment.
  • 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.
  • 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.

  • Oh my god! You can get cancer from a Cell Phone? Maybe that's why my ear has turned a bright shade of purple, and always seems to fall off at the most inappropriate times...
  • 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.
  • Ehm, 8 _bit_ colour, not 8 byte. (SCHWEET! :-) not.). This 320x200x8bits=512kbits=64kbyte.
  • Lots of people are saying that X is too bloated to ever work on a handheld. Well, in the late 80's I admin'd a Sequent S27, which had 4 processors (16MHz 80386's) and 16MB of memory running "Dynix" which was a 4.?BSD based UNIX. We had 4 Visual x-terminals and about a dozen serial terminals running off this thing. The users were running vi, tex, xdvi, ghostview, and emacs.

    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]

  • by mach-5 ( 73873 )
    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. :^)
  • 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>).

  • by Coz ( 178857 ) on Wednesday August 02, 2000 @08:06AM (#885973) Homepage Journal
    *sigh*

    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?

  • What are you talking about? Most games designed for the IBM PC Jr. should look just *fine* even reduced to 160x100! Why, I bet Leisure Suit Larry I would still look excellent. ;)

    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].
  • No kidding. From the article:

    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.

  • The answer is simple: cost. I'm sure it would be possible to create a small LCD with that kind of resolution, but the cost would be enormous. Do you really want to pay several thousand dollars just for a display? I didn't think so...

    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.
  • 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. :)

    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].
  • Well, I'd hope they had a separate .c file for driver-specific code. Any changes they made that get folded back would have to be more general.

    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].
  • by xtal ( 49134 ) on Wednesday August 02, 2000 @08:37AM (#885979)

    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 :)

  • Yeah, but the window management sucks. You could hack up a full-screen window manager, but that would probably suck.
  • I have an even better idea.

    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!

  • I got VNC on my winCE device just because its the closest thing I can have to running X on CE. Its slower than hell on my CE's 19.2 modem, but its better than nothing.
  • The core APIs are 15-20 years old, and it's humongous overkill to try to implement it for a simple display When X was designed, it was designed to run on simple display devices far less powerful than the modern PDA. X ran well and was a very powerful GUI in the days of 386-16 and 512K. It should be even better on the 50mhz/4M devices of today!

    Berlin. It sucks, but it's an X alternative..
  • For general consumers, I think the potential benefits are that Linux brings a whole set of facilities that are minimal or missing in current proprietary OS's used on handhelds. These systems [i.e. not Linux] were built to run in tiny amounts of memory, and as Moore's law continues to drive the industry, we are very rapidly moving toward handhelds much more like the iPAQ (32 meg of RAM, 16 meg of Flash). We want to ride this curve with modern technology, not systems intended for tiny memory space.

    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?

  • 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.

  • 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

  • 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. :^)
  • Not that I disagree, but why do you assume that because something is 15-20 years old that it is 'outdated'?
    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.
  • Strange he didn't mention Henzai [henzai.com] they are aleady working on porting GNOME to PDA's. handhelds.org even has a link to them.
  • Actually, your 386 is probably significantly more powerful than a motorola pager...
  • I wrote an NES game that pits a GNOME mascot against a KDE mascot. Play it [gte.net] then tell me [mailto] what you think.
    <O
    ( \
    XGNOME vs. KDE: the game! [8m.com]
  • (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.

  • 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.

    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.

  • assume that most people mean it's a code bloat

    Argh! I meant `I assume that most people don't mean it's a code bloat`

  • The QNX challenge is BS. It's basically a framebuffer and web browser. Take the BeIA challenge: a working system with web browser, flash, java, realplayer, and mail client in 8mb.

    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...

E = MC ** 2 +- 3db

Working...