Re: bloatware

Jim Howard <[email protected]>
Newsgroups gmane.comp.xfree86.forum
Message-ID <[email protected]>
> Anyone who claims X is bloatware simply has no idea what they are 
> talking about.  People who scream the loudest also tend to be 
> those who have never used oprofile and similar tools to actually 
> *measure* real runtime metrics.  They also are the ones who tend 
> to complain that X doesn't have more features such as 
> translucency, etc.

There is room for disagreement about this (if not always for X itself), but I
do have some idea what I'm talking about.  I've run releases of XFree86 for 9
years, downloaded several source releases, built from source, wrestled with
installation and configuration issues, various apps, etc.

I was also the guy who figured out what the problem was with the Mach VM in
BSD, that was causing it to thrash swap to death when large requests were
being used by X clients.  To do this I ran not only user-level measurment
tools, but also BSD's ddb in-kernel debugger.

[If you're curious about that problem:  The X server calls realloc() on each
request buffer after use to reduce it to 8K.  But the Mach VM was keeping all 
of the pages from each original allocation in the object cache, where they 
were never used again.  Causing the VM to drop the deleted pages from
the object cache fixed the problem.]

And I do NOT complain about X needing more features.  However, I and many
others have pointed out that X tends to suffer in terms of size-per-feature. 
I've always been amazed how big the server is, when at bottom about all it
does, rendering-wise, is draw lines and fill rectangles.  Sure there's more
to it than that, but as a driver person you must know.

Now don't launch into an elaborate explanation of what else is in the server.
That might just possibly be part of the point. ;)


> Adding more features while also making the runtime memory usage 
> of the X server smaller are rather mutually exclusive goals.  For 
> those who require a minimalist X server, there is kdrive.

Well, certainly those are mutually exclusive goals.  That's why it's an issue
that needs to be considered.

I'm looking into kdrive.  Unfortunately, there's not much information (I did 
find a 3rd party howto somewhere).  Also, it seems crazy to download the 
whole source tree just to build kdrive (I did anyway, because I'm curious).

But why is "require" a condition for kdrive?  You might turn it around the 
other way.  Earlier mainstream X servers were much smaller, including 
accelerated ones.  Who "required" that anything be added?  I once ran an S3 
server that already seemed outrageous at ~1.3M; by 3.3.x I couldn't build 
anything smaller than nearly twice that; and in 4.x, the "backbone" that just 
starts up and can't even run without loading a slew of modules is about the 
same size as that first S3 server -- and none of these servers does anything 
that any of the others doesn't.

And it's not just about binary size, it's also about source tree size.  And
it's not just about the server, it's about the whole installation.  And it's
not just about XFree86, it's about what you have to pile on top of it to get
a useful system going....

It just doesn't seem to have been a goal or priority for X, from the 
beginning.  If anything, the opposite.  (Memory pricing was important in the
profit profile for workstation vendors, you know.  The incentive was in the
other direction.)

But I also think where people want bloatware, they should have bloatware.  So 
for me it's a problem worth pondering (if not getting ponderous with).


> I wont bother going into details about the X server *not* 
> actually using much memory at all, and the fact that most people 
> claim X is huge and bloated by basing their assessment on the 
> broken and misleading output of programs like top and ps though.

Alright then, I will.  The text segment (program code) is demand-paged, i.e., 
only pages (4K on x86) that are actually executed in a program are actually 
read from disk into RAM.  So a program's code can look larger on disk than 
the memory that actually gets occupied by it when run.

And measurement tools don't give a realistic picture of shared library
usage, which also definitely makes things look more alarming.

You do have a good point about that, but I wouldn't go so far as to say "not 
much memory at all".... ;)

Anyway, I don't expect to win on this issue, I haven't yet.  I tried in BSD
land, and kernel builds that were once under 500K with stuff you didn't need 
are now 2 to 3 times larger without stuff you do need.  And kernels are not
demand-paged, either.  Projects just can't seem to resist those last few 
kitchen sinks in every room.

I wonder if you noticed my point about harm to the advantage of open source 
over proprietary systems, though.  Windows has evolved into bloatware as 
well, but if the only other advantage people find in open source is source 
code that is so sprawling as to be useless to them, then the cost advantage 
may also seem less compelling.


> -- 
> Mike A. Harris


-- Jim Howard  <[email protected]>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.