Windows XP Professional x64 Edition uses a technology named Windows-on-Windows 64-bit (WOW64), which permits the execution of 32-bit x86 applications. It was first employed in Windows XP 64-bit Edition (for the Itanium), but then reused for the “x64 Editions” of Windows XP and Windows Server 2003.
Since the X86-64
architecture includes hardware-level support for 32-bit instructions,
WOW64 switches the process between 32- and 64-bit modes. As a result,
X86-64 architecture microprocessors incur no performance loss when
executing 32-bit Windows applications. On the Itanium architecture,
WOW64 is required to translate 32-bit x86 instructions into their
64-bit Itanium equivalents—which in some cases were implemented in
quite different ways—so that the processor could execute them. All
32-bit processes are shown with *32 in the task manager, while 64-bit
processes have no extra text present.
Although 32-bit applications can be run transparently, the mixing of
the two types of code within the same process is not allowed. A 64-bit
application cannot link against a 32-bit library
(DLL) and similarly a 32-bit application cannot link against a 64-bit
library. This may lead to the need for library developers to provide
both 32- and 64-bit binary versions of their libraries. Windows XP x64
Edition includes both 32- and 64-bit versions of Internet Explorer 6, in order to allow for the possibility that some third-party browser plugins or ActiveX controls may not yet be available in 64-bit versions.
Older 32-bit drivers and services are not supported by 64-bit Windows, but video and audio codecs such as XviD or OggDS (which are 32-bit DLLs), are supported as long as the media player that uses them is 32-bit as well.
- What are the some feature differences between XP Professional (32-bit) and XP Professional x64 Edition?
The following features are in Windows XP Service Pack 2 but are not supported in Windows XP Professional x64 Edition are:
- IEEE 1394 audio
- SharePoint® Team Services from Microsoft
- OLE DB
- 16-bit applications
- Subsystems and Protocols
- Microsoft DOS
- 16-bit subsystem
- AppleTalk Protocol LAN
- Services for Macintosh
- Data Link Control (DLC) LAN
- Service Advertising Protocol (SAP)
- IPX Router
- Open Shortest Path First (OSPF)
- NetBIOS gateway
- What do I have to do with my 32-bit Windows applications so they will run?
Most 32-bit Windows applications just work. The application does not need to be changed and nothing needs to be configured in the OS.
Occasionally an application may complain that it runs only on Windows 95 or one of the other Windows OSs. The "Compatibility mode" of that program can be modified by opening the program Properties, select the Compatibility tab, and set the "Compatibility mode" to the requested OS. This will "fool" the application into thinking it is running on one of the other OSs. Note this does not always work, see below.
- What are some common Windows 32-bit application compatibility issues?
Some applications require a 32-bit driver. The software can install but the driver can not. For example, most anti-virus software uses a file system filter driver. On x64 all drivers, including file system filters, must be 64-bit. The 32-bit antivirus software can not install their file system filter driver and will not function. Note that 64-bit anti-virus software exists today and other vendors will have solutions later in 2005 or 2006.
Some applications may be coded to only run on a specific version of the OS. If the detected OS is not one of the allowable types the application will not execute. Sometimes adjusting the "Compatibility mode" described above will work around this. If "Compatibility mode" does not work the software vendor must provide an updated application that allows the application to run.
Many application installers include a 16-bit stub to identify the machine type and start a 32-bit install engine. The 16-bit portion of the installer will fail since none of the Windows 64-bit OSs can execute 16-bit code. Microsoft has identified this as a critical blocker to x64 adoption. To overcome this 64-bit Windows detects specific 16-bit installers and transparently instantiates an equivalent 32-bit version if one is available. Note that the 64-bit Windows Installer can seamlessly install 32-bit MSI-based applications on 64-bit Windows.
- WOW64 file and registry redirection, what's that?
Windows XP Professional x64 Edition separates 32-bit and 64-bit system and program files and also maintains separate portions of the registry. This is to support running 32-bit application on the 64-bit OS via WOW64 (Windows on Windows). File and registry redirection is typically transparent to the user and 32-bit applications just work. Redirection is more of a concern for application developers, but a brief description of redirection is provided here.
Microsoft has details on WOW64 on the Microsoft Developer Network web site, where you will find information, for example,on WOW64 implementation details.
64-bit Windows system setup installs and registers 64-bit and 32-bit system files. 32-bit system files are copied to "%windir%\SysWOW64" where they are used with WOW64. 64-bit system files are installed to "%windir%\system32". Yes, the 64-bit system files are in a directory called system32 due to legacy issues.
Applications are typically separated as well. By default, 64-bit applications are placed in "%SystemDrive%\Program Files" and 32-bit applications are placed in "%SystemDrive%\Program Files (x86)" with the addition of x86 to the directory name. Note that these are just default directories and many application installers allow the end-user to specify a custom directory name which is still supported.
Two views of the registry exist on 64-bit Windows: Native and WOW64. By default, a native 64-bit Windows application sees the native registry view, and a WOW64 application sees the WOW64 view. This will separate the 32-bit application state from 64-bit state and provides a safe execution environment for both 32-bit and 64-bit applications.
- What is the memory limit for Windows XP Professional x64 Edition?
Windows XP Professional x64 Edition will support up to 128 GB of RAM. This is a limit imposed by the client OS. (Some x64 versions of Windows Server support larger amounts of memory.) Of course the hardware platform may support more or less RAM. For example, the xw4200 chipset only supports 4GB of RAM so you are limited by the system.
- How much memory is accessible on a system running XP x64, don't you lose some memory to PCI space and other hardware addresses?
The xw workstation can remap the BIOS, PCI space, etc. outside of the space. If a system has 8GB of RAM, Windows XP x64 will be able to access all 8GB. The xw workstation BIOS has a setting that must be enabled to allow for the memory to be remapped.
BIOS Setup | Advanced | Chipset/Memory | Memory Remapping = Enable
Hardware addresses, PCI, graphics address spaces should not conflict with RAM addresses in the virtual address space. It is possible that a system with 4GB of RAM running Windows XP x64 will see 4GB of usable RAM and a system with 32GB of RAM will see 32GB of usable RAM. Of course this depends on the actual configuration of the system and assumes it has been properly configured.
- Can a 32-bit application access more memory when running on XP x64?
In general no, most standard Windows 32-bit applications or processes are limited to 2GB of virtual address space, the same as in 32-bit XP. Windows 32-bit applications that have been built with the /LARGEADDRESSAWARE switch can access 4GB of RAM. The same application running on Windows XP 32-bit with Service Pack 2 is limited to 3GB of RAM so you gain 1GB of address space on XP x64.
Note that a 64-bit application running on XP x64 has 8TB of virtual address space for applications and 8TB of virtual address space for the operating system.
- If a 32-bit application has the same limits on Windows XP Professional x64 Edition, what is the benefit of more memory?
The memory allocation for running multiple 32-bit applications is much better in XP x64 and multiple applications may have full access to 2GB of actual RAM. For example, if a system running XP x64 has 8GB of RAM and several 32-bit applications are loaded, then one or more of the applications could be completely loaded in memory. Conversely, when running Windows XP 32-bit, typically only 2GB of RAM is available for processes which must be shared.
- What are the 3 modes of application execution that are possible on a 64-bit extensions system?
The hp 64-bit extensions capable workstations can execute in three modes, Legacy, Compatibility, and 64-bit.
- Legacy mode refers to running 32-bit applications on a 32-bit OS.
- Compatibility mode refers to running 32-bit applications on a 64-bit OS.
- 64-Bit mode is running 64-bit applications on a 64-bit OS.
- Why are there two Internet Explorers in Windows XP Professional x64 Edition?
Windows XP x64 includes a native 64-bit Internet Explorer and the 32-bit version of Internet Explorer. The 32-bit version of IE is for compatibility with 32-bit plug-ins like Macromedia and Java. Internet Explorer requires a plug-in to be the same "bitness" so a 32-bit plug-in can not be executed by the 64-bit Internet Explorer. As 32-bit plug-ins are the norm, Microsoft has made the 32-bit version of Internet Explorer the default. The 64 bit version of Internet Explorer must be manually executed.