Mono required by ubuntu-desktop
Scott James Remnant
scott at ubuntu.com
Wed Aug 2 21:52:39 BST 2006
On Wed, 2006-08-02 at 13:06 -0700, Dan Kegel wrote:
> On 8/2/06, Scott James Remnant <scott at ubuntu.com> wrote:
> > > RAM Requirements
> > > All variants of Edgy will install and boot properly on systems with
> > > at least 32MB of RAM.
> >
> > It's not possible to boot the kernel alone in this on an AMD64, and it's
> > only just possible on an i386.
>
> That's kind of scary.
>
Not especially ... I'd be more scared of somebody trying to use a
(probably multi-core) 64-bit processor with only 32MB of RAM available
to it.
> Anyway, the main thing to do is get
> these numbers out in the open. Recognizing bloat is the
> first step towards fixing it (or at least keeping it from getting worse).
>
Bloat is something very specific though; bloat is when something wastes
memory un-necessarily. Bloat is an application holding multiple copies
of data that's intended to be read-only, etc.
More often than not, memory is being used entirely legitimately.
The interesting thing comes when looking at how something is using
memory, and deciding whether or not that memory usage is acceptable or
not.
For example, take a library or application that employs an in-memory
cache of icons to avoid rescaling them every time; is that bloat or not?
At first glance, it might be, after all we could always do the work each
time -- except that the machines that suffer are the older ones again,
the newer ones probably have the guts to not take a hit, but the older
machines do.
So, ironically, this increased memory usage actually benefits the older
hardware which has less memory to use!
And, going back to the kernel, there's simply the realities of modern
computing. Yesthe ZX Spectrum had only 16KB of RAM, but it also was a
completely static piece of hardware and the entire operating system
could be stored in ROM.
A modern machine begins with a choice of several different processors
(single or multiple processors, each with one or more cores and
different cache arrangements), and gets steadily worse from there! Once
you're up to something "trivial" like the network card, you have a
selection of a thousand different models spanning several different bus
types!
Obviously all this has overhead; it's no use if the kernel doesn't know
how to address the network card, let alone how to route IP packets
through the appropriate layers to it.
This overhead tends to be a lot of linked lists and pointers, which are
twice the size on a 64-bit platform, so your kernel memory usage
doubles! Add in the fact that the average AMD64 tends to be another
degree more complex than a typical P-M (ie. PCI/Express, SATA, et. al.)
and this explains the increased kernel overhead.
Now, don't get me wrong -- I'm all for eliminating wasted memory usage
("bloat") from anywhere it can be found. The smaller and more pert a
binary, the faster it's going to load and run on even the most modern
machine.
But this should not be done with unrealistic measures.
Setting out a goal of minimum memory requirements isn't, in my view
anyway, the right way to do this; it's not going to be attainable, and
even if it were on some architectures, there's no roadmap for getting
there.
The right way to do this is instead to set out to audit the memory usage
of a certain percentage of libraries and applications, and understand
how and why they use memory and whether that can be improved.
(With the icon cache example above, perhaps that should be shared memory
between every process on the system?)
At the same time, I'd also suggest auditing shared libraries to make
sure that they're not placing data in the wrong segment or using data
segment pointers where they can avoid it[0], and simultaneously thus
increasing their load time AND memory usage.
So my recommendation would be to ditch the "Ubuntu will boot (to what,
btw?) in 32MB of RAM" targets and instead go with something like:
- for edgy+1 50% of libraries installed by ubuntu-desktop will be
audited for memory usage
- for edgy+2 100% of libraries will have been audited
- for edgy+3 50% of applications will have been audited
- for edgy+4 100% of applications will have been audited.
Also bear in mind that if an ubuntu-desktop installed application does
require lots of memory, or is just simply too crappy to fix (yes,
OpenOffice.org, I'm looking at you) -- we can always have a derivative
(Xubuntu!) targeted at less capable hardware which ships something else.
I don't see a problem with Ubuntu itself being targeted at computers
purchased within the last year, provided that the usage of the resources
is for a reason[1] and not simply wasteful.
Scott
[0] e.g. char *err_list[] ... this kind of thing is SO BAD, no matter
how many attributes you put before it
[1] even if it's just bling
--
Scott James Remnant
scott at ubuntu.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 191 bytes
Desc: This is a digitally signed message part
Url : https://lists.ubuntu.com/archives/ubuntu-devel/attachments/20060802/04a48d92/attachment-0001.pgp
More information about the ubuntu-devel
mailing list