64bit Windows Operating System Overview


The performance benefits seen from the x64 OS have been substantial. Because of the larger virtual memory space available to the processes. There are 232 possible combinations that a 32-bit address can take (meaning 4GB worth of addressable space). On the x86 operating system, half of that is allocated for the kernel, and the other half is given to user mode processes. Since the addressing spaces of the user mode processes are independent of each other, each process can reference up to 2GB of memory. With a 64-bit addressing space, there is a possibility of 264 unique address combinations (16 exabytes). The x64 OS currently uses 43 bits for addressing, giving the kernel 8TB of addressable memory, and leaving the other 8TB for user mode processes.

WOW64 Layer

WOW64 is the x86 emulator that allows 32-bit Windows-based applications to run on 64-bit Windows.WOW64 launches and runs 32-bit applications seamlessly. The system isolates 32-bit applications from 64-bit applications, which includes preventing file and registry collisions. Console, GUI, and service applications are supported. However, 32-bit processes cannot load 64-bit DLLs, and 64-bit processes cannot load 32-bit DLLs.

Restrictions of the WOW64 subsystem
The WOW64 subsystem does not support the following programs:
• Programs that are compiled for 16-bit operating systems
• Kernel-mode programs that are compiled for 32-bit operating systems

16-bit programs
The x64-based versions of Windows Server 2003 and of Windows XP Professional x64 Edition do not support 16-bit programs or 16-bit program components. The software emulation that is required to run 16-bit programs on the x64-based version of Windows Server 2003 or of Windows XP Professional x64 Edition would significantly decrease the performance of those programs.

If a 32-bit program that requires 16-bit components tries to run a 16-bit file or component, the 32-bit program will log an error message in the System log. The operating system will then let the 32-bit program handle the error.

If there are any 32bit Applications that make use of 16bit binaries (.exe/.dll) and these 16bit binaries (.exe/.dll) need to be copied to the Win64 machine during Migration Process then these applications may stop working on the Win64 machine.

32-bit drivers
The x64-based versions of Windows Server 2003 and of Windows XP Professional x64 Edition do not support 32-bit drivers. All hardware device drivers and program drivers must be compiled specifically for the x64-based version of Windows Server 2003 and of Windows XP Professional x64 Edition.

If a 32-bit program tries to register a 32-bit driver for automatic startup on a computer that is running an x64-based version of Windows Server 2003 or of Windows XP Professional x64 Edition, the bootstrap loader on the computer recognizes that the 32-bit driver is not supported. The x64-based version of Windows Server 2003 or of Windows XP Professional x64 Edition does not start the 32-bit driver, but does start the other registered drivers.

If there are any 64bit Applications that make use of 32/16bit Device Drivers and these 16bit binaries (.exe/.dll) need to be copied to the Win64 machine during migration Process then these applications may stop working on the Win64 machine.

File System Redirection
When a Windows API function to detect the operating system on which you are running, the File System Redirection function maps your 32- or 64-bit files to the appropriate system directory. Any time a 32-bit process attempts to access c:\windows\system32 the WoW64 layer redirects it into c:\windows\syswow64 which contains all of the 32-bit Windows binaries. This prevents a 32-bit process from trying to load a 64-bit binary. Any scripts or tools running in a 32-bit process that is referencing this directory will be automatically redirected to the syswow64 directory.

A new C:\Program Files directory is introduced with 64-bit Windows. The familiar Program Files directory is now reserved for native 64-bit applications. Your 32-bit applications are directed to the new C:\Program Files (x86) directory.

Registry Redirection
Any 32-bit process trying to read or write to HKEY_LOCAL_MACHINE\Software\ gets redirected to HKEY_LOCAL_MACHINE\Software\Wow6432Node\. This allows separate configurations to be maintained for 32-bit and 64-bit processes. Any custom settings or keys set in this node may need to exist in both keys, as 32-bit processes will be redirected to this new branch.


Links
http://msdn.microsoft.com/msdnmag/issues/06/05/x64/default.aspx http://www.acucorp.com/company/newsletter/newsletter_featured/featured_6.php http://msdn.microsoft.com/chats/transcripts/windows/windows_110904b.aspx