Unsolved mysteries: X in 1Mb

I must first apologize for the short span of silence over the last few days; the end of the month brought a few real-life issues that needed resolved.

When last I typed, I mentioned that python script that encapsulates the memory usage for a machine, organizing it into a neat bundle. As someone mentioned, and as htop confirms for me, memory use by X is exceptionally slender for this machine — topping out around 1Mb or so.

I don’t know why that is, but I do have some theories … none of which I am in a position to authoritatively prove or disprove. My own observations though, tell me a few things.

First, the size and weight of X is going to change with each distro, since the method for building it is going to differ with each. That’s sort of a “cop-out” answer, if I am correctly paraphrasing some of my American friends, but it is probably a safe bet that Xorg in Crux is probably going to be less demanding than in Ubuntu, just as an example.

And I can probably suggest that compiling a custom version of X, with flags appropriate to the hardware (which is what I usually do) is going to run easier than a generic one too. That might be a bit weak for a reason, but you never know. Or at least, I never know. 🙄

But also keep in mind that X in that post is a year-old version. Over the past year, X has incurred a lot of bloat — or what I would call bloat — and that too can come into play. It’s almost preferable to me to run an outdated version of X than to put up with hal and dbus and so forth, on an old machine.

After that, I should probably mention that I comment out some of the modules from my xorg.conf file, although I don’t know what effect that has on the running size of X. A 13-year-old graphics card doesn’t have much use for things like glx, so I take those out of play.

In addition, I know that the memory footprint for X differs from machine to machine, which says to me that hardware comes into play too. The amount of space taken up by X on my Inspiron is quite a bit more than the Pentium, although it can do more too.

But if hardware is a factor, so is how you use the hardware; a screen resolution of 800×600 seems to require less space than one twice as large. That was one of the things I tried as a test measure a few months ago, when I originally noticed the ultralight X in action.

And I suppose if all of those other things can influence the size of X, then perhaps the driver you use, and even the kernel you build could likewise be factors. I don’t doubt for a second that the proprietary nvidia driver on my Inspiron is chunkier than any of the open-source ones, and whether or not my custom kernel comes into play … I can’t be sure.

Like I said: I am no expert, and I’m not in a position to test or even troubleshoot any of these theories. (And to be honest, I’m only obliquely interested in finding out the answers.) There is a chat channel for X at #xorg on freenode, as well as the hardware-specific driver channels at #ati and #nvidia. And of course, the mailing lists are an option too. Anyone who answers will be far more qualified than me.

But if you do find out how X can squeeze into 1Mb, please explain. I have some floppy discs in the closet, and I find it amusing that they could apparently hold graphical system on them, with space left over. :mrgreen:

10 thoughts on “Unsolved mysteries: X in 1Mb

  1. Duncan Snowden

    It amazed me too, and I was about to comment, but after a few moments’ thought came to much the same conclusions. And for what it’s worth, my desktop machine (1280×1024 on a rather elderly Radeon 9200) shows around 60Mb for X, my Aspire One (1024×600, Intel 945) around half that, which, along with my use of GLX, Xft, etc., would tend to support them.

    And of course, don’t forget the older generation of machines: Amigas got along quite happily with only 0.5Mb in total. They did it by using smaller displays (640×256, or so) and lower colour depths with palette mapping (6 bits-per-pixel at most, on the older ones, often only 3 or 4).

    1Mb is still pretty impressive for X, though. 🙂

  2. mulenmar

    I remember reading somewhere that the memory usage reported for Xorg often includes the total video memory available, and sometimes part of the memory used by other programs (clients of the X server). On such an old computer, and with such light programs, those factors might be causing the 3.5″ HD floppy-esuqe space usage.

    You might want to get tips from someone who knows a little more of what they’re talking about, though. 🙂

  3. Mikachu

    If you’re looking at the RSS column, the answer is simple: The RSS column only shows swapped-in memory usage, ie most of your x server is swapped out to disk.

  4. the_englishman

    Thanks for your posts and feedback. You definitely have one of the best Linux blogs out there.

  5. Pingback: An X for every application « Motho ke motho ka botho

  6. Pingback: Buying a name « Motho ke motho ka botho

  7. Pingback: Ubuntu 9.10 at 120Mhz, 80Mb « Motho ke motho ka botho

  8. Pingback: A Windows XP-ish Debian at 120Mhz « Motho ke motho ka botho

  9. Pingback: X and Openbox in 12Mb « Motho ke motho ka botho

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s