Python 2.5 WinXP AMD64

Bryan Olson fakeaddress at nowhere.org
Fri Sep 22 16:35:49 CEST 2006


Bjoern Schliessmann wrote:
> Christophe wrote:
> 
>> To be exact, you need a 64bit Windows OS on a 64bit cpu.
> 
> Is there a reason that can be explained in a less-than-2-KB
> posting? :) I mean why Python depends on the processor type that
> much.

The 64-bit version of Python is compiled for 64-bit processors.
32-bit processors don't work the same and won't run the code.

The O.P. has a 64-bit Athlon processor, but is running a 32-bit
OS. The processor emulates its 32-bit predecessor in "legacy
mode", so 32-bit software runs.

Given a 64-bit processor, why can't 64-bit applications run
under a 32-bit Operating System? Because the O.S. provides
the environment in which the application runs. There are
several problems: system calls could be probably be thunked
by a library, but the virtual memory space is a deal breaker.
A 32-bit O.S. deals with 32-bit addresses; it can't support
the address space of a 64-bit app.

Running a 32-bit O.S., the processor stays in 32-bit legacy
mode. Enabling the processor's 64-bit mode is a privileged
operation; the application cannot do it.


Incidentally, the other direction works pretty well: a
64-bit operating system can run 32-bit applications. The
AMD64 architecture, also adopted by Intel, has a
"compatibility mode" for creating 32-bit virtual address
spaces within the native 64-bit address space.

I'm close to the 2KB.
For more, search on "AMD64 Architecture".


-- 
--Bryan



More information about the Python-list mailing list