[Desktop_architects] 64 bit desktop

Brooks, Phil phil_brooks at mentor.com
Mon Nov 28 15:23:32 PST 2005


Hi,

I am primarily a user of the desktop system as a commercial application
developer, and have one issue that has caused me a fair bit of pain over
the last year.  That is the issue of the 64 bit/32 bit interoperable
desktop.    

64 bit centric distributions
----------------------------
The distributions that I am aware of (mainly Suse and Redhat) have taken
a 'full port' strategy for their desktop distributions i.e. a 64 bit
system has a 64 bit desktop and all applications and tools contained in
the distribution are 64 bit if possible.  This is in contrast to the
model that Sun and HP used for 32/64 bit support on Solaris and HP-UX
where a 64 bit system used a primarily 32 bit desktop with 64 bit
libraries and interfaces available for tools that needed them.

I am not sure where the preference for 64 bit native desktop came from -
possibly from the work that was done on the Itanium processor where
bringing up a 64 bit environment without a lot of support for the chip's
32 bit capabilities was seen as preferable at the time.  

I haven't used Windows-64, so don't know how they tackled this
particular issue.

64 vs. 32 on the desktop
------------------------
The main problem with the 64 bit desktop preference comes from
applications that support dynamically loaded 'plug-in' type modules that
are loaded dynamically using a facility like dlopen.   It is difficult
to manage applications that require plugin modules that are only
available in 32 bit when the underlying facilities are only available
(or only easily installed) as 64 bit applications.  The simplest example
of this issue is with Firefox (distributed as a 64 bit executable on the
64 bit desktop) that can not use 32 bit plugins like MacroMedia Flash
player.

Progress with more recent distributions
---------------------------------------
More recent distributions like RedHat 4 and Fedora Core 4 make it easier
to install 32 bit versions of applications like Firefox beside or in
place of the 64 bit version, but it still requires getting additional
rpms that aren't included by default.  To get that far, you have to know
what you are trying to do in the first place.  I think that many
non-developer users that might give up on this issue and simply accept
either no Flash, or switch to Windows rather than figure out why they
can't get the Flash plugin to install and work.

The issue with Firefox can be solved fairly completely on more recent
RedHat distributions by removing the 64 bit Firefox and installing the
32 bit Firefox.  The issue becomes more murky when one considers a
scripting language that supports dynamically loaded plugins.  In that
case, most plugins will easily live in a pure 32 bit world.  Some,
however, may require the 64 bit address space or integer size.  Then it
is not so simple to say just uninstall the 64 bit version of Python and
install the 32 bit version.  Both really need to be there.

Why 64 in the first place?
--------------------------
I have wondered what the rationale for the pure 64 bit desktop is in the
first place.  It seems to me that on a machine that supports 32/64
execution as well as the Opteron/EM64T, that most applications that
don't have an explicit need for 64 bit numbers or address space would
prefer to remain as 32 bit applications.

How to solve this
-----------------
Is this even an issue that needs to be solved?  I believe it does.  I
want a 64 bit execution environment now because I work on an application
that requires 64 bit execution environment, so I need a 64 bit
compile/debug/execute environment.   Nothing else I do currently
requires 64 bit execution. Certainly, I represent a pretty small portion
of desktop end users. However, we have already reached the point where
just about any moderate to high end hardware purchase has 32/64
capability.  As specialized mainstream applications like games, video or
photo editing etc. come to rely on 64 bit capabilities, more and more
regular desktop users will want to run an OS that is capable of
supporting 64 bit execution.  When they do, I hope that they will not
have to go through the troubles I did when I loaded my first 32/64
desktop environment. I think that the distribution standards groups like
LSB need should specify some rules governing 32/64 systems.  They should
be something like:

o 32/64 systems need to provide all 32 bit LSB application interfaces.
o 32/64 systems need to provide 64 bit LSB interfaces for (X,Y,Z)*
o 32 bit plugins should run on a 32/64 system no questions asked, no
modifications necessary
o 64 bit plugins might require some specific action (like running a tool
from a specific
  location or with a special path setting)

*(X,Y,Z) is some specific subset of LSB interfaces (maybe all of them,
but maybe not).

The motivation for these rules is:

o the user of a 32/64 desktop should never lose functionality compared
to a 32 only desktop.
o Any application that runs on a 32 bit distribution will run on a 32/64
distribution without modification.

I am not sure where to put this in the context of the meeting, but I
think it is an issue that causes problems now and will become more
important with time.  I have not prepared any specific remarks for the
meeting, but can do so if it is desired.

Phil Brooks
Sr. Software Engineer
Mentor Graphics Corp.




More information about the Desktop_architects mailing list