Mailinglist Archive: opensuse (5130 mails)

< Previous Next >
Re: [SLE] SUSE Linux 10.1 - 32-bit or 64-bit
  • From: "Bryan J. Smith" <b.j.smith@xxxxxxxx>
  • Date: Fri, 19 May 2006 10:57:53 -0400
  • Message-id: <1148050673.2869.178.camel@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
On Fri, 2006-05-19 at 10:29 -0400, Jerry Feldman wrote:
> Again, the binaries built by the compiler use a flat 64-bit model.

>From the programmer's standpoint, but not the object code from what I've
seen. Or let me re-phrase that, there is no guarantee that the object
code that runs on 52-bit PAE will work on future AMD/Intel "flat 64-bit"

> Remember, that the binaries are built for virtual memory and they have a
> full 64-bit memory model.

Again, from the programmer's standpoint -- Application Programmer
Interface (API). I'm not talking about programmer, I'm talking about
Application Binary Interface (ABI) compatibility. Whole different

And you've really over-simplified the compatibility here. It is _not_
easy to create a 52-bit PAE to 32-bit/36-bit PAE translation so object
code of each can link against the other.

> The general purpose register set contains 16 64-bit registers that
> are used for both data and for addresses.

Because you can fit a 52-bit address into a 64-bit register. ;->

> The VM provides the appropriate mapping between the virtual address
> and the physical address.

The model _is_ 52-bit PAE, using *48-bit* addressing -- _not_ 64-bit!
That's the object code last time I checked!

> If a binary is explicitly built for features of a specific chip, it probably
> will not be compatible. This has always been an issue. In general, when
> building an application (or an OS) you build it for the target deployment.
> In the case of x86-64 Linux distros, you build for the generic x86-64, not
> to include specific AMD or Intel extensions.

But x86-64 is _not_ "64-bit flat" in object code.

> This is true. The programmer does not concern himself with the specific
> memory models. The system programmer may be concerned with the underlying
> hardware. The application programmer sees a full 64-bit virtual
> environment, especially if he/she is using a high level language (including
> C).

But C _becomes_ object code.

C is API.
Object code is ABI.

_Huge_ difference!

Bryan J. Smith Professional, technical annoyance
Americans don't get upset because citizens in some foreign
nations can burn the American flag -- Americans get upset
because citizens in those same nations can't burn their own

< Previous Next >
Follow Ups