It was probably too much to hope that all Linux vendors would take the
same approach to their distributions for AMD's 64-bit x86 chips and
Intel's forthcoming 64-bit x86 chips, or x86_64. While the major
commercial vendors (SUSE, Red Hat and Mandrake, to name a few) are
shipping mixed distributions for x86_64, the recently-announced Debian
x86_64 port is a pure
64-bit distribution without 32-bit libraries.
A pure 64-bit distribution has the advantage of being simpler, and of not
having to worry about multiple versions on libraries and such.
Thus, while other distributions have relegated the 64-bit libraries to an
alternate location, such as /usr/lib64, the Debian project
ships with 64-bit libraries in /usr/lib and avoids the
problem of rewriting package creation rules to install libraries in
/usr/lib64 or a similar situation. However, this results in
a system that is unable to run 32-bit x86 binaries.
The original plan for Debian's x86_64 port was to be similar to sparc64,
where the default is 32-bit applications and libraries. However, the
tide turned in February, and multiarch support was put on the back
burner. As Goswin von Brederlow explains:
There was an attempt at doing a mixed port but the resistance by the
dpkg developers and the community in general was too big to get it under
way, esspecially with the sarge release looming over our heads. A full
mixed port means changing every single library package and affects
probably all packages. That's nothing one wants to do before sarge.
So instead of going full 32/64 bit mixed mode amd64 in one big step
pure64 was started to get 64 bit support fully available with minimum
impact to sarge. Merging is multiarch support for mixed 32/64 bit is now
step 2 planed for after sarge at the earliest.
This may not end up being a big problem, even for those users who need
to run 32-bit x86 applications.
As John Goerzen points
out, it is possible to run 32-bit binaries in a chrooted
environment:
The only reason I can see for even bothering to support 32-bit
applications at all is for binary-only proprietary software. And that
is not such a concern; it takes all of about 10 minutes to set up a
32-bit chroot with debootstrap to run those things in.
Some have voiced
concerns about Debian being incompatible with other x86_64
distributions. Since LSB-compatibility should be the main concern, we
wondered whether Debian, or any other Linux distributions, were
compatible with the LSB specification for x86_64 chips. Stuart Anderson,
lead developer of the LSB written specification, told LWN that none of
the distributions currently meet the LSB specification, but for obvious
reasons:
That's because there has not yet been an official release of the LSB for
that architecture. There is a draft, and it will get released in the
very near future, but because it hasn't been, distros have not yet had a
chance to certify.
Anderson did say that a distribution can be LSB-compliant, without
running 32-bit binaries, since the specification covers only x86_64. He also said that they are working on a "multi-arch" specification, "but it's not really far enough along to say anything specific."
In general, I think a 64 bit distro should be able to support a 32 bit
runtime in parallel. It just does so as supporting two specs, and not a
single one that mandated both 32 & 64.
No doubt, it will be some time before x86_64 support is uniform across
all the various Linux distributions. The hardware is not yet in wide
enough use to truly force distributions to standardize, and it's
entirely possible that the 32-bit problem will disappear as x86_64
hardware becomes commonplace.
(
Log in to post comments)