How to run a 32-bit program on 64

As we all know very well, there are several editions of Windows 7. There is Home Basic and Advanced, Professional and the most delicious - Ultimate. However, a much more interesting question is which version of Windows 7 to install, 32-bit or 64-bit? What is the advantage of 64-bit and does it exist at all? This is exactly what we will look at.

The main and fundamental difference in 32/64 bit architecture is how much random access memory can be addressed by the processor. In other words, how much memory will the processor get?

Almost every user can safely use Windows 7 x64, since with the release Intel Core 2 Duo, all modern processors support 64-bit mode. The same applies to AMD processors, which have supported 64 bit since 2003. Consequently, any user can install Windows 7 x64, unless he has a very ancient computer.

So why do you need 64-bit Windows 7?

If we delve into the history of 32/64-bit architecture, we will be stuck here for a long time, but I still have to play Battlefield today. So let's say it briefly - memory. RAM. Yes, kids, it's all about her. In a regular 32-bit Windows 7, you can use a maximum of 4 GB of RAM and not a megabyte more. Moreover, the most unfortunate thing is that of these 4 GB, only about 3.3 GB will be actually available.

There is no such thing as too much RAM ;)

Another thing is Windows 7 x64. In this version operating system 4 GB is the minimum that generally makes sense to use. Of course, all programs will be simply beside themselves with happiness if they get so much memory. So you won't even remember that you once used less. In addition, Windows 7 x64 will provide an excellent foundation for the future, because nothing will stop you from then adding 8, 16, 32 GB or whatever will fit into your motherboard.

Is it necessary to upgrade to Windows 7 64-bit?

If you do not plan to use more than 4 GB of memory, then, of course, there is no point in switching. Only starting with 4 GB of RAM and above can you take advantage of all the benefits of Windows 7 x64. By the way, RAM is now so cheap that if you haven’t installed 4 GB yet, now is the time to do it.

Are there any problems with Windows 7 x64?

Well, of course, this is Windows :) Usually there are no such problems, but... you understand. Overall, it's not that bad. Most devices have the necessary 64-bit drivers, and even if they don't, sometimes 32-bit drivers work just fine (but not always).

However, there are also troubles when a device does not work only because a driver has not been released for it specifically for Windows 7 x64, and 32-bit drivers are not suitable. Well...there's nothing you can do, you'll either have to wait for new drivers or refuse to use the device in a 64-bit environment.

What programs do not work in a 64-bit environment? There aren’t that many of them, but there are some that are quite popular. For example, Google browser Chrome used to be slow on 64-bit Windows, but this has been fixed in the latest versions.

Adobe Flash does not work at all in 64-bit browsers, well, it doesn’t want to at all. But this is also not a problem, since you can use a 32-bit browser and enjoy life. Previously and Apple iTunes I wasn’t friends with 64-bits, but those days, fortunately, are a thing of the past.

So what to do? Try switching to Windows 7 64-bit. More memory, more courage - and lo and behold, the era of 64-bit will come faster. In essence, the 32-bit architecture is gradually becoming obsolete, it’s time for the old lady to retire. However, do not forget to read about the main disadvantage of 64-bit systems at the end of this article.

Some companies are completely abandoning 32-bit, at least the same company Adobe. In the new package After Effects CS5 has no support for 32-bit Windows at all! Either use the 64-bit version or sorry-move over.

Let's see what Microsoft has to say about 64 bits.

Microsoft answers frequently asked questions about Windows 7 64-bit

What is the difference between 32-bit and 64-bit versions of Windows 7?

As already mentioned, the 64-bit version allows you to use many times more RAM than the 32-bit version, which only has 4 GB of RAM (in reality, 3.3 GB).

What version of Windows 7 do I have?

Click the button Start, go to Control Panel, click on the link system and safety and then on the link System. In field System below it will be indicated which Windows version 7 you have installed.


Is my computer suitable for Windows 7 64-bit?

To run Windows 7 64-bit, you need a 64-bit processor. You can find out which processor is installed as follows.

Click the button Start and go to menu Control Panel. In the search field located at the top of the window, enter “ counters” and click on the link (You can go to this window as indicated in the previous question).

In the window Counters and Productivity Tools click on the link Display and print detailed information about your computer and system performance.


Find in a new window Additional Information field


Is it possible to upgrade Windows 7 32-bit to 64-bit?

No, such an update is not available. You can only upgrade 32-bit Windows 7 to another edition of 32-bit Windows 7. In turn, in a 64-bit environment, you can only switch between different versions Windows 7 64-bit. In other words, you will have to uninstall Windows 7 32-bit to install the 64-bit version.

Another option is to install Windows 7 64-bit on a different partition hard drive or to another HDD, if there are several of them on the computer.

Is it possible to run 32-bit programs on a 64-bit computer?

Most 32-bit programs will run on 64-bit Windows 7. There may be various exceptions antivirus programs and firewalls, as well as some drivers for hardware devices.

As for drivers, as a rule, drivers created for the 32-bit version will not work in 64-bit Windows version 7. Let's say you are trying to install a printer or other device for which there are only 32-bit drivers. Alas, as a rule, such a device will not work normally, so you will need updated drivers specifically for Windows 7 64.

What are the main advantages of 64-bit Windows 7?

Of course more memory. Because a 64-bit operating system has more RAM at its disposal, it can perform several tasks more efficiently. running programs and allows you to switch between them faster.

I have a 64-bit version of Windows 7, do I need 64-bit drivers for it?

Yes, we do. Because, as we already said, 32-bit drivers will not work fully or partially in 64-bit Windows 7. Install 64-bit drivers or throw your old printer with 32-bit drivers out the window (just kidding).

Well, we hope you have realized all the advantages of Windows 7 64-bit, stocked up on more RAM and are ready for new achievements.

The main disadvantage of any 64-bit version of Windows

Have you already overclocked to install Windows 7 64-bit? You're doing everything right, but there's one last thing you need to know.

What is the main problem with any 64-bit version? Not in it at all, but in... the legacy of the 32-bit world. So you installed Windows 7 x64, filled it with a lot of memory and are proud of yourself. However, what's next? What about the programs that will be used?

And this is the main problem. In order to take full advantage of Windows 7 x64, it is necessary that the programs you use were originally released in the 64-bit version. Otherwise, all programs for the 32-bit version work in a 64-bit environment in emulation mode.

And the emulation mode is slower than if the 32-bit program ran in its native Windows x32.

Do you understand what we are talking about? That's why the 64-bit era still won't come. Because there are far fewer 64-bit programs than we would like, and 32-bit programs operate in a less efficient emulation mode.

How many games are released in 64-bit version? Do you know many of these? How many popular programs? That's the same - there are not many of them. The situation is improving, but...it will be another year before the number 64 comes into its own.

As a result, 64-bit systems are now used by either enthusiasts or professionals working with design programs like Photoshop, 3D modeling programs like Max/Maya/Houdini, and other specialized products. And all because these products are released in a “native” 64-bit version.

Well, nevertheless, the 64-bit era is coming. This means exciting 64-bit porn, even bloodier 64-bit games and 64-bit beer with chips to boot)

We'll show you how you can make your computer run faster by upgrading to the 64-bit version of Windows 7.

Almost every user can easily turn a modern PC into a real “car”. After installing the operating room Windows systems 7 in the 64-bit version, the computer starts to work faster, more stable and safer.

Today, almost half of all PCs sold with G7 preinstalled are equipped with a 64-bit version of this OS. But for all other users working with 32-bit operating systems from Microsoft, switching to the double-bit version is justified. We will tell you what advantages you will have after this, how to prepare for modernization, what problems may arise and how to solve them. In this case, you will need a package of 64-bit programs located on our DVD. It contains numerous drivers for printers, scanners, video cards and other useful utilities. We will also demonstrate how to attach old hardware to the new operating system, for which new drivers are no longer released. In addition, you will learn how to install software that is not compatible with 64-bit Windows.

Transition: Tangible Benefits


The most important advantage of 64-bit systems is the ability to use a large amount of RAM. Depending on the OS version, the user will have access to up to 192 GB instead of 3, supported in the 32-bit version. Daniel Melanchthon, technical advisor at Microsoft, clearly recommends: “If you have more than 2 GB of RAM, switch to the 64-bit version of the OS and don’t think about anything.”


We tested what benefits a faster operating system architecture actually brings. To do this, 32- and 64-bit Windows 7 were installed on two PCs with Intel Core 2 Duo E6600 processors, and then resource-intensive programs were installed: graphics editor Photoshop CS5, 7-Zip archiver and Mediacoder universal converter. These applications loaded the computers with work, and we monitored the speed demonstrated by the latter.


Additionally, we ran both the 32-bit and 64-bit versions of each program on a 64-bit OS. Thus, three results were obtained that clearly demonstrate that in Windows with a 64-bit architecture, the corresponding software editions work faster than 32-bit editions. The speed increase is up to 15% (more accurate data can be found in the sidebar on the right).

At the same time, the advantages of a 64-bit OS are associated not only with increasing the computing power of the PC, but also with minimizing risks to its security. The fact is that a computer with a more powerful operating system is not susceptible to attacks such as SSDT-Hooks of the new generation of viruses. These malware choose the exact moment between the antivirus scan of the executable code and place the malicious code on the victim computer.

Programs: possible problems



Windows program 7 Upgrade Advisor will show whether your computer can work with a more powerful architecture of the new operating system Not every PC is suitable for installing an OS with 64-bit architecture, but, as a rule, any computer under three years old can work with it. However, before starting the installation you should run the free utility Microsoft Windows 7 Upgrade Advisor to check compatibility. It will clearly demonstrate whether your PC’s hardware is suitable for upgrading to a 64-bit OS. We remind you that the upgrade is justified if the computer has more than 2 GB of RAM.

If the amount of RAM exceeds 4 GB, then switching to a more productive version of the OS is simply mandatory - this will allow you to use the full potential of the computer.


The online database PCIDatabase.com will allow you to determine the manufacturer of a particular product or find all the information about peripheral devices ah, as well as drivers for them If the PC is actively used by you in professional activity, you should definitely make sure that you have 64-bit versions of the programs that you need in your daily work, or at least that the existing 32-bit applications are compatible with the new operating system architecture.

Most 32-bit utilities work fine in this environment, but there may be speed issues. Our testing showed that the 32-bit version of Photoshop CS5 renders photos significantly faster on a 32-bit OS than on a 64-bit OS. But in the last maximum speed work demonstrates 64-bit Photoshop. Today, the installer of this program offers both installation options, since not all add-ons are compatible with the 64-bit version - many filters and plugins do not yet function in it. Even Internet Explorer does not work perfectly on a 64-bit OS: not all add-ons are available. For example, Adobe has not yet published the final version of the Flash plugin for the 64-bit browser, nor has Apple published the final version for QuickTime. In this regard, even after switching to an OS with a new architecture, it is better to leave old version browser.

Microsoft itself is forced to deal with compatibility problems Office package. It has reached the point that the software giant does not recommend using the 64-bit edition of this product. It is best to install the 32-bit version on a system with 64-bit architecture. Microsoft specialists justify this as follows: many add-ons are focused on the 32-bit edition of the program, and this can cause problems when synchronizing smartphones with Outlook. In addition, 32-bit Office controls, as well as plugins and VBA, will cause additional hassle for the user. If you use this package only in conjunction with compatible 64-bit applications, then everything works stably. But anyway, using 64-bit office suite in the appropriate environment does not provide significant advantages - except perhaps large tables Excel will calculate a little faster. But Word and all other applications consume so few resources that in the case of them you are unlikely to notice that the amount of RAM has increased. More detailed information O latest version package Microsoft Office you will find in the article “Trying on the new Office 2010” in CHIP No. 9 2010 on page 120.

If you are dealing with a program that categorically refuses to work in a 64-bit environment, there is a way out: using virtualization tools, install the XP version in Windows 7 (more details at the end of the article).

Hardware: what could be the catch?



Information about uninstalled drivers and hardware IDs is available in the Manager Windows devices In principle, if your hardware is not older than three years, there should be no difficulties in using it. Most printers, cameras, and other peripherals today have 64-bit drivers that provide flawless performance on a high-performance operating system.

However, when using older scanners, sound cards and other products, even those that worked under Windows control XP, problems may arise. The fact is that there are no updated 64-bit drivers for such devices, since manufacturers have stopped supporting them. However, there are ways to revive such “antiques” so that you don’t have to rush to buy more modern models.

If you can't find a driver for Windows 7, an option created for previous version OS - e.g. Windows Server 2003. But at the same time, it must be written specifically for the 64-bit version of the system.

Sometimes even if the drivers are compatible with the OS standard installation can be problematic: in some cases, Windows checks the installation file and rejects it as not matching the current version of the system. You can work around this limitation by running the installation in compatibility mode for previous versions of Windows.

Another way to get out of this problem is to find a driver for a device of the same type as yours.

For example, if your printer is compatible with PCL or PostScript, try using a driver from HP. Accurate information about the component manufacturer can be found as follows. From the Start menu, click right click Click on the “Computer” item and select “Properties” in the context menu. In the window that opens on the left, find Device Manager and launch it.

Confirm the administrator rights request. In the device catalog, look for those marked with a yellow triangle with exclamation point(this means that drivers for them are not installed). In the “Properties” context menu on the “Details” tab, select “Hardware ID” from the drop-down list. Here you will see the four-digit manufacturer designation (Vendor-ID) and device number (Device-ID). Using this information on the resource www.pcidatabase.com, you can determine the developer of a particular product. As a rule, manufacturers post suitable drivers on their websites.

Difficulties may arise if network printer connected to a computer running Windows 7 64-bit. In this case, a 32-bit PC on that network will not be able to select this printing device. The solution may be to install a 32-bit printer driver on a 64-bit operating system. But this is not always possible and only works if it is possible to unpack the installation package and install the driver via an INF file. Owners of NAS servers or routers with a USB port can solve the problem faster by connecting a printer or scanner to these devices.

Virtual Windows XP: how to run any program in a 64-bit environment

Some applications and devices do not work on 64-bit operating systems.

We will demonstrate how to activate old hardware without up-to-date drivers or use programs that are initially incompatible with the “seven”.

Using XP in a Windows 7 environment. Owners of Windows 7 versions “Professional”, “Corporate” and “Ultimate” after installing the OS have the opportunity to simply activate the XP mode integrated into it.

If you have “Start” or “Home” installed, additional software will come to the rescue. Free program VMLite XP Mode, available on our DVD, allows you to run Windows XP applications in the “seven” without any problems.

You won't even notice that in background You are running an XP machine.




Free utility VMLite XP Mode allows you to easily integrate XP applications and legacy hardware into Windows environment 7 Installation procedure
. You will need the VMLite XP Mode utility, as well as licensed Windows XP. The program, of course, allows you to download a full version of this OS from the Microsoft website, but owners of the “Starter” and “Home” editions are better off not doing this, so as not to violate the license agreement. The point is that loading previous version Only users who purchased the “Maximum” or “Professional” version of the operating system are eligible.

After installation, you will receive a full-fledged Windows XP, in which you can install any programs and drivers as usual. The VMLite XP Mode utility starts in the usual way- through the “Start” button and the “All programs” item. Files are exchanged between the two operating systems via a network drive; when you click on it, the folder structure of your host computer will be displayed.


Before getting into the topic of developing code for 64-bit programs, let's dwell on the issue of backward compatibility of 64-bit versions of Windows with 32-bit applications. Backward compatibility is achieved through mechanisms implemented in WoW64.

WoW64 (Windows-on-Windows 64-bit) is a subsystem of the Windows operating system that allows you to run 32-bit applications on all 64-bit versions of Windows.

The WoW64 subsystem does not support the following programs:

  • programs compiled for 16-bit operating systems;
  • Kernel-mode programs compiled for 32-bit operating systems.

Overheads

There are WoW64 differences depending on the processor architecture. For example, a 64-bit version of Windows designed for Intel processor Itanium 2 uses WoW64 for emulation x86 instructions. This emulation is very resource intensive compared to WoW64 for architecture Intel 64, since it switches from 64-bit mode to compatibility mode when executing 32-bit programs.

WoW64 on Intel 64 architecture (AMD64/x64) does not require instruction emulation. Here, the WoW64 subsystem emulates only a 32-bit environment, due to an additional layer between the 32-bit application and the 64-bit Windows API. In some places this layer is thin, in others not so much. For an average program, the loss in performance due to the presence of such a layer will be about 2%. For some programs this value may be higher. Two percent is not much, but keep in mind that 32-bit applications run slightly slower under a 64-bit Windows operating system than in a 32-bit environment.

Compiling 64-bit code not only eliminates the need for WoW64, but also provides an additional performance boost. This is due to architectural changes in the microprocessor, such as an increase in the number of general purpose registers. For an average program, you can expect anywhere from 5-15% performance gain from a simple recompilation.

The advantage of a 64-bit environment for 32-bit programs

Due to the presence of the WoW64 layer, 32-bit programs run less efficiently in a 64-bit environment than in a 32-bit environment. Still, simple 32-bit applications can benefit from running them in a 64-bit environment. You probably know that a program compiled with the /LARGEADDRESSAWARE:YES key can allocate up to 3 gigabytes of memory if the 32-bit Windows operating system is launched with the /3gb key. So, the same 32-bit program, launched on a 64-bit system, can allocate almost 4 GB of memory (in practice, about 3.5 GB).

Redirects

The WoW64 subsystem isolates 32-bit programs from 64-bit ones by redirecting file and registry access. This prevents 32-bit programs from accidentally accessing data from 64-bit applications. For example, a 32-bit application that runs DLL file from the %systemroot%\System32 directory may accidentally access a 64-bit DLL file that is incompatible with a 32-bit program. To avoid this, the WoW64 subsystem redirects access from the %systemroot%\System32 folder to the %systemroot%\SysWOW64 folder. This redirection helps prevent compatibility errors because it requires a DLL file that is built specifically to work with 32-bit applications.

More details on redirection mechanisms file system and the registry can be found in the MSDN section "Running 32-bit Applications".

Why is it impossible to use 32-bit DLLs in a 64-bit program? Is there a way around this?

It is impossible to load a 32-bit DLL from a 64-bit process and execute code from it. Impossible due to the design of 64-bit systems. Basically impossible. Neither tricks nor undocumented ways will help. To do this, you need to download and initialize WoW64, not to mention the structures in the kernel. In fact, you will need to turn a 64-bit process into a 32-bit one on the fly. This topic is discussed in more detail in the post "Undocumented functions; Loading 32-bit DLLs into a 64-bit process." The only thing that can be recommended is to create a surrogate process and interact with it using COM technology. This is discussed in the article "Accessing 32-bit DLLs from 64-bit code".

But loading resources from a 32-bit DLL into a 64-bit process is not difficult at all. This can be done by specifying the LOAD_LIBRARY_AS_DATAFILE flag when calling LoadLibraryEx.

Gradual withdrawal of support for 32-bit programs

It is quite natural if Microsoft encourages the transition to 64-bit systems by gradually abandoning support for 32-bit programs in a number of versions of the Windows operating system. Of course, this will be a very slow process. But still, the first steps in this direction have already been taken.

Many administrators know about the relatively new installation and operation mode of the server version of the operating system called Server Core. This is the mode that participants in the "Windows vs Linux" wars have been talking about for a very long time. One of the arguments of supporters using Linux on the server it was possible to install a server OS without GUI(GUI). But now such an opportunity has appeared in Windows Server. Installation in this mode allows you to get only command line no user interface.

This feature (installing Server Core) appeared in Windows Server 2008. But Windows Server 2008 R2 introduced an innovation that brings the 64-bit future closer. At Windows installation Server 2008 R2 (Server Core) support for running 32-bit applications has become optional. Moreover, by default this support is disabled. And when trying to launch a 32-bit application in Server Core mode, the user will receive a message about the impossibility of launching. Of course, you can add support for 32-bit programs:

start /w ocsetup ServerCore-WOW64

In normal (Full Installation) mode, 32-bit applications are launched by default, but in Server Core they are not.

The trend is obvious. Over time, it will become increasingly rational to create 64-bit versions of applications, since they will be able to function on a larger number of operating system versions.

Additional Information

An interesting source of information on the WoW64 system is Alexey Pakhunov's blog: http://blog.not-a-kernel-guy.com/. Alexey is an employee of Microsoft and is directly involved in the development of the WoW64 subsystem.