13
9/11/13 32-bit and 64-bit explained www.techsupportalert.com/content/32-bit-and-64-bit-explained.htm 1/13 Updated 6. June 2012 - 1:49 by Remah Will this 32-bit software run on my 64-bit operating system? or Will this 64-bit software run on my computer? If you've asked these questions then this tutorial should help you to understand the concepts of 32-bit and 64-bit computing. We'll look at your computer system as three parts: the hardware, the operating system and the application programs. At the end we'll look at some of the common questions people have. 32-bit versus 64-bit As the number of bits increases there are two important benefits. More bits means that data can be processed in larger chunks which also means more accurately. More bits means our system can point to or address a larger number of locations in physical memory. 32-bit systems were once desired because they could address (point to) 4 Gigabytes (GB) of memory in one go. Some modern applications require more than 4 GB of memory to complete their tasks so 64-bit systems are now becoming more attractive because they can potentially address up to 4 billion times that many locations. Since 1995, when Windows 95 was introduced with support for 32-bit applications, most of the software and operating system code has been 32-bit compatible. Here is the problem, while most of the software available today is 32-bit, the processors we buy are almost all 64-bit. So how long will the transition from 32-bit to 64-bit systems take? The main issue is that your computer works from the hardware such as the processor (or CPU, as it is called), through the operating system (OS), to the highest level which is your applications. So the computer hardware is designed first, the matching operating systems are developed, and finally the applications appear. We can look back at the transition from 16-bit to 32-bit Windows on 32-bit processors. It took 10 years (from 1985 to 1995) to get a 32-bit operating system and even now, more than 15 years later, there are many people still using 16-bit Windows applications on older versions of Windows. The hardware and software vendors learnt from the previous transition, so the new operating systems have been released at the same time as the new processors. The problem this time is that there haven't been enough 64-bit applications. Ten years after the PC's first 64-bit processors, installs of 64-bit Windows are only now exceeding those of 32-bit Windows. Further evidence of this inertia is that you are probably reading this tutorial because you are looking to install your first 64-bit software. Your computer system in three parts Now we'll look at those three components of your system. In simple terms they are three layers with the processor or CPU as the central or lowest layer and the application as the outermost or highest layer as shown below: To run a 64-bit operating system you need support from the lower level: the 64-bit CPU. To run a 64-bit application you need support from all lower levels: the 64-bit OS and the 64-bit CPU. This simplification will be enough for us to look what happens when we mix the 32-bit and 64-bit parts. But if you want to understand the issue more deeply then you will also need to consider the hardware that supports the CPU and the device drivers that allow the OS and the applications to interface with the system hardware. What 32-bit and 64-bit combinations are compatible and will work together? This is where we get to the practicalities and can start answering common questions.

32-Bit and 64-Bit Explained

  • Upload
    manas

  • View
    42

  • Download
    0

Embed Size (px)

DESCRIPTION

Understand different bits in Windows OS

Citation preview

Page 1: 32-Bit and 64-Bit Explained

9/11/13 32-bit and 64-bit explained

www.techsupportalert.com/content/32-bit-and-64-bit-explained.htm 1/13

32-bit and 64-bit explainedUpdated 6. June 2012 - 1:49 by Remah

Will this 32-bit software run on my 64-bit operating system? or

Will this 64-bit software run on my computer?

If you've asked these questions then this tutorial should help you to understand

the concepts of 32-bit and 64-bit computing. We'll look at your computer

system as three parts: the hardware, the operating system and the application

programs. At the end we'll look at some of the common questions people have.

32-bit versus 64-bit

As the number of bits increases there are two important benefits.

More bits means that data can be processed in larger chunks which also

means more accurately.

More bits means our system can point to or address a larger number of

locations in physical memory.

32-bit systems were once desired because they could address (point to) 4

Gigabytes (GB) of memory in one go. Some modern applications require more

than 4 GB of memory to complete their tasks so 64-bit systems are now

becoming more attractive because they can potentially address up to 4 billion

times that many locations.

Since 1995, when Windows 95 was introduced with support for 32-bit

applications, most of the software and operating system code has been 32-bit

compatible.

Here is the problem, while most of the software available today is 32-bit, the

processors we buy are almost all 64-bit.

So how long will the transition from 32-bit to 64-bit systems take?

The main issue is that your computer works from the hardware such as the

processor (or CPU, as it is called), through the operating system (OS), to the

highest level which is your applications. So the computer hardware is designed

first, the matching operating systems are developed, and finally the applications

appear.

We can look back at the transition from 16-bit to 32-bit Windows on 32-bit

processors. It took 10 years (from 1985 to 1995) to get a 32-bit operating

system and even now, more than 15 years later, there are many people still

using 16-bit Windows applications on older versions of Windows.

The hardware and software vendors learnt from the previous transition, so the

new operating systems have been released at the same time as the new

processors. The problem this time is that there haven't been enough 64-bit

applications. Ten years after the PC's first 64-bit processors, installs of 64-bit

Windows are only now exceeding those of 32-bit Windows. Further evidence of

this inertia is that you are probably reading this tutorial because you are looking

to install your first 64-bit software.

Your computer system in three parts

Now we'll look at those three components of your system. In simple terms they

are three layers with the processor or CPU as the central or lowest layer and

the application as the outermost or highest layer as shown below:

To run a 64-bit operating system you need support from the lower level: the

64-bit CPU.

To run a 64-bit application you need support from all lower levels: the 64-bit OS

and the 64-bit CPU.

This simplification will be enough for us to look what happens when we mix the

32-bit and 64-bit parts. But if you want to understand the issue more deeply

then you will also need to consider the hardware that supports the CPU and the

device drivers that allow the OS and the applications to interface with the

system hardware.

What 32-bit and 64-bit combinations are compatible and will worktogether?This is where we get to the practicalities and can start answering common

questions.

Page 2: 32-Bit and 64-Bit Explained

9/11/13 32-bit and 64-bit explained

www.techsupportalert.com/content/32-bit-and-64-bit-explained.htm 2/13

The

general

rule is that

32-bit will

run on a

lower level

64-bit

component

but 64-bit

does not

run on a

lower level

32-bit

component:

A 32-bit OS will run on a 32-bit or 64-bit processor without any problem.

A 32-bit application will run on a 32-bit or 64-bit OS without any problem.

But a 64-bit application will only run on a 64-bit OS and a 64-bit OS will

only run on a 64-bit processor.

These two tables illustrate the same rule:

Table 1 — What is compatible if I have a 32-bit CPU?

Processor (CPU) 32-bit 32-bit 32-bit 32-bit

Operating System (OS) 32-bit 32-bit 64-bit 64-bit

Application Program 32-bit 64-bit 32-bit 64-bit

Yes No No No

Table 2 — What is compatible if I have a 64-bit CPU?

Processor (CPU) 64-bit 64-bit 64-bit 64-bit

Operating System (OS) 64-bit 64-bit 32-bit 32-bit

Application Program 64-bit 32-bit 32-bit 64-bit

Yes Yes Yes No

The main reason that 32-bit will always run on 64-bit is that the 64-bit

components have been designed to work that way. So the newer 64-bit

systems are backward-compatible with the 32-bit systems (which is the main

reason most of us haven't moved to 64-bit software).

An example of backward compatibility is Windows 64-bit. It has software called

WOW64 that provides compatibility by emulating a 32-bit system. See the

article How Windows 7 / Vista 64 Support 32-bit Applications if you want to

know more. One important point that is made in that article is that it is not

possible to install a 32-bit device driver on a 64-bit operating system. This is

because device drivers run in parallel to the operating system. The emulation is

done at the operating system level so it is available to the higher layer, the

application, but it is not available to the device driver which runs on the same

level.

Hardware virtualization is the exception to the rule

Another question many people have is whether a 32-bit system can run 64-bit

software. As more people are looking to use 64-bit Windows they are wanting to

try it out on their existing systems. So we are getting more questions about

whether they can run it on their 32-bit processor or under their 32-bit OS.

Following the general rule, we would expect that you cannot run 64-bit

software on a 32-bit system. Except that there is one exception called

virtualization.

Virtualization creates a virtual system within the actual system. Virtualization

can be achieved in hardware or software but it works best if the virtual machine

is created in the system hardware. The guest operating system is not aware

that there is a host operating system already running. This is the way that a

64-bit operating system can think that it is running on 64-bit hardware without

being aware that there is a 32-bit operating system in the mix.

Page 3: 32-Bit and 64-Bit Explained

9/11/13 32-bit and 64-bit explained

www.techsupportalert.com/content/32-bit-and-64-bit-explained.htm 3/13

Tables 3 and 4 illustrate the result. Provided that the virtual machine can

actually be created and isolated by the virtualizing software then the host OS is

effectively removed from the equation, so I've grayed it out. We can now apply

the general rules for a non-virtualized system to the three remaining layers.

Table 3 — What is compatible if I have a 32-bit CPU and software

virtualization?

Processor (CPU) 32-bit 32-bit 32-bit 32-bit

Host Operating System 32-bit 32-bit 32-bit 32-bit

Guest Operating System 32-bit 32-bit 64-bit 64-bit

Application Program 32-bit 64-bit 32-bit 64-bit

Yes No No No

Table 4 — What is compatible if I have a 64-bit CPU and software

virtualization?

Processor (CPU) 64-bit 64-bit 64-bit 64-bit

Host Operating System 32/64-bit 32/64-bit 32/64-bit 32/64-bit

Guest Operating System 64-bit 64-bit 32-bit 32-bit

Application Program 64-bit 32-bit 32-bit 64-bit

Yes Yes Yes No

Before you hurry away to try running 64-bit in a virtual machine, you must

check that your computer BIOS supports hardware virtualization. If it does not

then hardware virtualization will not work even if the CPU does support it.

Emulation of the 64-bit CPU is not an option

All the feasible configurations that we have looked at so far have the

processors (CPUs) running software that use the instruction set that is native

to that processor. Running 64-bit software on a 32-bit processor doesn't work

because the 64-bit instructions are not native to a 32-bit processor. But what if

I could emulate a 64-bit processor using 32-bit software?

It is theoretically possible but practically impossible to emulate a 64-bit

processor while running software on a 32-bit processor. Even if you can get

non-native 64-bit emulation to work, the virtual machine that duplicates a 64-

bit CPU would run very slowly because every 64-bit instruction has to be

trapped and handled by the emulator. 64-bit memory pointers also have to be

converted to work within the 32-bit address space.

Furthermore, my understanding is that the x86 (32-bit) processors used in PCs

and Apple Macs are not able to completely emulate the x64 (64-bit) instruction

set. Some 64-bit instructions cannot be trapped by the emulator. This causes

the system to crash when the x86 processor tried to run those x64 instructions.

Answers to common questions about 32-bit and 64-bit systems

Will a 64-bit CPU run a 32-bit program on a 64-bit version of an OS?

Yes it will. 64-bit systems are backward-compatible with their 32-bit

counterparts.

Will a 64-bit OS run a 32-bit application on a 64-bit processor?

Yes it will. Again, this is because of backward compatibility.

Can 64-bit applications contain 32-bit code?

Yes, many times 64-bit software will contain portions of 32-bit code.

Similarly 32-bit software (usually very old programs) can have some code in 16-

bit which is why those 32-bit applications will usually fail to run properly on a

64-bit OS.

Can 16-bit applications or code run on 64-bit systems?

No, as we said previously. 16-bit code will NOT run on 64-bit OS because the

designers did not provide backward-compatibility. This is one reason why some

32-bit programs will not work on 64-bit operating systems.

Can a 64-bit CPU with a 32-bit host OS run a virtual machine (VM) for a64-bit guest OS?

Page 4: 32-Bit and 64-Bit Explained

9/11/13 32-bit and 64-bit explained

www.techsupportalert.com/content/32-bit-and-64-bit-explained.htm 4/13

Yes. It all depends upon the level of virtualization.

With software virtualization it is hardly likely to work, or if it does work it may be

very slow.

Hardware virtualization will need to be supported by the CPU (e.g. with Intel-VT

or AMD-V) and the BIOS.

Answers to common questions about 32- and 64-bitWindows

Can I run Windows 2000 and Windows XP on a 64-bit CPU, and use oldsoftware?Yes, a 32-bit OS (Windows 2000 or XP) will run on a 64-bit processor.You

should also be able to run older 32-bit software on a 64-bit OS.

Is a Windows Vista or Windows 7 license key valid for both 32-bit and 64-bit versions?Yes, unless you have an OEM version. If it was installed on your computer when

you bought it and you only have one Windows disk then it is almost certainly an

OEM version and you will have to buy the other bit version if you want it. If you

have two disks, one for 32-bit Windows and one for 64-bit Windows, then you

have a non-OEM version so you get to choose which bit version you will use

without having to buy another license. See Microsoft Answers for a discussion

of these issues.

Remember, if you have only bought one license then, even if you have both bit

versions on disk, you are only licensed to install and run one version on one

computer.

How do find out if my system is 64-bit?

Microsoft provide resources to help you find out such as FAQ on 32-bit and 64-

bit Windows and Taking the mystery our of 64-bit Windows.

I recommend that you look at downloading SecurAble from Gibson Research

Corporation (GRC) which will tell you if you have a 64-bit processor with the

useful features of hardware DEP and hardware virtualization.

How do I migrate my 32-bit system to 64-bit Windows?

There is no upgrade path from 32-bit to 64-bit Windows only from 64-bit

Windows. You will almost certainly have to do a clean install of your 64-bit

operating system, copy back your data files, and reinstall your 32-bit

applications.

If you want to keep your old install then you can try dual booting or

virtualization.

How do I run 32-bit software once I have installed 64-bit Windows?

Windows 7 64-bit provides a 32-bit compatibility mode called WOW32 (Windows

32-bit on Windows 64-bit) that should run most if not all your applications. See

How Windows 64-bit supports 32-bit Applications.

If you have 32-bit application you want to run from the Command Prompt then

you need to use the WOW64 version of cmd.exe. At the Start Menu select Run

and enter the following command. Note that the %systemroot% variable points

to your Windows folder so this will work even if Windows is not installed on C:

drive:

%systemroot%\SysWOW64\cmd.exe

If your application won't run under Windows 64-bit then try XP Mode, Windows

Virtual PC, or other virtualization solution. Be aware that XP Mode reduces your

system security and so it should be used as a last resort.

How can I tell if my application is 32-bit or 64-bit?

There are a number of indicators of the bit type for your program but they are

not definitive as you will see if you use guidelines like the following.

Windows installs your programs to these folders on your system drive:

'\Program Files' for 64-bit programs

'\Program Files (x86)' for 32-bit programs

In Task Manager, 32-bit processes will usually have a suffix of '*32' and 64-

bit processes will not.

The reason that these indicators cannot be relied upon relates to the way 64-

bit Windows installs software. 64-bit install packages usually install 64-bit

applications or a mixture of 32- and 64-bit components but can even install only

Page 5: 32-Bit and 64-Bit Explained

9/11/13 32-bit and 64-bit explained

www.techsupportalert.com/content/32-bit-and-64-bit-explained.htm 5/13

32-bit components.

What determines where a component is installed is the registry setting for that

component rather than the setting for the install package. Windows also

assumes that all components are 32-bit unless told otherwise. This means that

a 64-bit component not flagged as 64-bit will install to 32-bit folders and 32-bit

registry keys but will execute as 64-bit.

You can, with the necessary knowledge, find the information yourself but there

are better solutions:

Run a system information or audit tool such as Belarc Adviser. Just be

aware that most of these types of applications are helpful but not definitive

e.g. SIW, MSINFO.

I recommend running the PowerShell script from Auditing 32-Bit and 64-Bit

Applications with PowerShell which will list all installed applications and their

bitness. Just remember to run the 64-bit script to get all versions as the

32-bit script will not have access to the 64-bit portions of the registry.

If you want more detail about the modules used by a program then try

Dependency Walker, which is also part of Microsoft development tools such

as Visual Studio and Visual C++.

As with other software running under 64-bit Windows you will get the best

results if you run the 32- or 64-bit version of Dependency Walker that

matches the application you want to check. Remember that Windows 64-bit

restricts access to the relevant 32-bit or 64-bit portions of the registry.

What are the differences between Windows 32-bit and 64-bit?

I've chosen to highlight the physical and logical differences between each

version of desktop Windows as shown in Table 5. This table illustrates the

progressive improvement of Windows 64-bit and indicates that Windows has a

long way to go before it exhausts the capabilities of 64-bit processors.

Many of the limits in the 64-bit versions of Windows are design choices rather

than limitations of the 64-bit CPUs. The number of physical processors is the

most obvious as Windows Server editions support many more.

Hardware is also limited by design. For example, while 64-bit AMD and Intel CPUs

use 64-bit memory pointers, the supporting chipsets only use a 52-bit physical

address space (4 Petabytes) and a 48-bit virtual memory space (256

Terabytes). This is presently more than sufficient because Windows 7 64-bit

only allows 192 GB of physical memory and 16 Terabytes (44-bits) of virtual

memory.

Table 5: Physical and Logical limits for Windows Versions

Numbers in parentheses indicate extended settings that are not the default

and require compatible hardware

Version: XP Vista 7

Version Bits: 32 64 32 64 32 64

System:

Physical

Processors2 2 2 2 2 2

Logical

Processors32 64 32 64 32 256

System Cache 1 GB 1,024 GB 1 (2) GB 1,024 GB 1 (2) GB 1,024 GB

Physical Memory 4 GB 128 GB 4 GB 128 GB 4 GB 192 GB

Virtual Memory 4 GB16,384

GB4 GB

16,384

GB4 GB

16,384

GB

Kernel 1 (2) GB 8 GB 2 GB 8 GB 2 GB 8 GB

User Process:

Physical Memory 2 (3) GB 2 (4) GB 2 (3) GB 8 GB 2 (4) GB 8 GB

Virtual Memory 2 (3) GB2 (8,192)

GB2 (3) GB

2 (8,192)

GB2 (4) GB

2 (8,192)

GB

Note 1. I have used Gigabytes (GB) for consistency even though it would be

convenient to convert 1,024 GB to 1 TB.

Note 2. I've excluded the first 64-bit version of Windows XP (2002) because it

has a different architecture. It used Intel Itanium (IA-64) CPUs which had an

x86 processor built-in for compatibility. It was replaced by AMD's 64-bit

architecture (x86-64) which extended the x86 instruction set and worked so

Page 6: 32-Bit and 64-Bit Explained

9/11/13 32-bit and 64-bit explained

www.techsupportalert.com/content/32-bit-and-64-bit-explained.htm 6/13

Average:

Average: 4.4 (483 votes)

Your rating:

Your rating: None

well that it has been licensed by Intel and other chip makers. The name is

commonly shortened to x64 as it is the most common 64-bit CPU type today.

Related Links

How Windows 64-bit Supports 32-bit Applications

Best Free Windows 64-bit Software for software that runs on Windows 64-

bit.

Best Free Virtualization Solutions provides a good background to

virtualization.

Help with terminology

What is 64-bit?

What is 32-bit?

What is a byte?

What is a bit?

Article type: Tutorials / How-tos

Login or register to post comments Printer-friendly version

COMMENTS

by exus69 on 10. April 2013 - 7:00 (106951)

Excellent article :) I think there's a small mistake in the following para.

Please correct me if I am wrong. The original is as follows:

"One important point that is made in that article is that it is not possible

to install a 32-bit device driver on a 64-bit operating system. This is

because device drivers run in parallel to the operating system. The

emulation is done at the operating system level so it is available to the

higher layer, the application, but it is not available to the device driver

which runs on the same level."

The corrected one, which I think should be is as follows:

"One important point that is made in that article is that it is not possible

to install a 32-bit device driver on a 64-bit operating system. This is

because device drivers run in parallel to the operating system. The

emulation is done at the application program level so it is available to the

higher layer, the application, but it is not available to the device driver

which runs on the same level."

Login or register to post comments

by Remah on 11. April 2013 - 5:48 (106981)

"The emulation is done at the operating system level" not at "the

application program level". This is because the emulator has to

intercept operating system calls. If the emulator were an application

program then it would not normally have sufficient privilege to

interfere with the operating system or to supervise other application

programs.

Login or register to post comments

by Alerocks (not verified) on 10. November 2012 - 5:41 (102102)

Thanks for the info, it helps me alot.

Login or register to post comments

Page 7: 32-Bit and 64-Bit Explained

9/11/13 32-bit and 64-bit explained

www.techsupportalert.com/content/32-bit-and-64-bit-explained.htm 7/13

by Mamta (not verified) on 9. November 2012 - 6:55 (102056)

Hi,

Recently I have purchased a dell laptop of 2nd gen/i3/2gb/500gb/DOS

specification,where the architecture is 32 bit.Im confused about the fact

whether buying a 32 bit system has greater disadvantages over a 64 bit

system & whether installation of programs like windows XP & running linux

based applications is possible or not.Will I be at a loss in terms of scope of

operation & installation?????Plz help..

Thanks in advance,

Mamta

Login or register to post comments

by Remah on 9. November 2012 - 10:07 (102061)

This is not a support forum so you will need to check your system

compatibility at intel.com and dell.com.

As far as I know, all 2nd generation Core i3 processors are 64-bit, Dell

only sells them with 64-bit Windows 7, and Windows XP will not install

on them except in a virtual machine.

Personally, I would not replace Windows 7 so I would install other

operating systems, such as XP and Linux, by multi-booting or running

in virtual machines.

In general, if your system has 4GB of memory/RAM then 64-bit

Windows will make better use of it. I don't recommend downgrading

your system but if your concern is backward compatibility then 32-bit

Windows might be more compatible.

Login or register to post comments

by Mamta (not verified) on 16. November 2012 - 5:45 (102389)

Thanks a lot.....Your suggestions are really helpful.

Login or register to post comments

by Mirza Abbas Ali (not verified) on 3. November 2012 - 19:13 (101811)

Dear Sir I purchased a H.P. Lap Top which has 64-bit system. Further I

purchased on line Microsft Office Professional HUP 2010 one month ago.

Till date Microsoft is not able to solve my problem instead they are

running me in a Marry Go Round they send me 2 Files 32-bit and one 3rd

file 64-bit and I had been sending them the snipe shots of the Error

message & My system details but they are ignoring to my e mails. I am

not a computer litrate,of at least by reading the Error message I can

figure out that Microsoft has to send me all 3 files of 64-bit to install on

my new lap top and run the system but I fail to under what is wrong with

Microsoft why they are not understanding my ERROR message could you

please reply me to my e mail. [Email address removed for safety reasons -

please post requests for support in our forum]

http://www.techsupportalert.com/freeware-forum/general-computer-

support/

Login or register to post comments

by Remah on 6. November 2012 - 6:20 (101939)

Sorry but I can't help you. We do not provide any support for paid

applications as this site is dedicated to freeware. Even if it was free

software, your issue is too specific to address in these comments and

you would have to post on our support forum.

Login or register to post comments

by Roger Beltz (not verified) on 18. October 2012 - 0:05 (100938)

Your article explaining 31-bit / 64-bit architecture is very good, however,

Page 8: 32-Bit and 64-Bit Explained

9/11/13 32-bit and 64-bit explained

www.techsupportalert.com/content/32-bit-and-64-bit-explained.htm 8/13

you have neglected one important aspect in respect to computers and

operating systems - a Mac computer. Contrary to misconception, their are

millions of Mac users (who, I might add) would NEVER own a PC). If you

are going to delve into discussion about operating systems and specific

models of computers, Apple/Mac computers should definitely be included

in the discussion........and, I might also add, before discussing Mac

computers and Mac operating systems, one should conduct extensive

research into Mac products to insure one is getting all the facts correct.

Login or register to post comments

by Remah on 18. October 2012 - 6:31 (100961)

Thanks. If you have comments about specific points in the article then

I'd also like to hear them.

When I have the time I expect to add sections for other operating

systems and hardware platforms. The highest priorities would be the

proliferating mobile platforms and the continuing development of

UNIX/Linux variants such as Android. But Apple PCs might get done

first because of the similar Intel-based hardware.

I definitely want to make the article less Windows-centric but that

focus is a practical necessity to reduce my workload. If I didn't have

the Windows FAQ section then I would be continually answering many

common questions in the comments.

This is neither unfair nor biased. The difference in PC market share is

an order of magnitude. Windows generally has at least 80% of

worldwide PC sales and users whereas Apple typically had less than

5%. In the US, Apple has been around 10% for many years and I'm

sure that it has finally reached 5% worldwide. Linux PCs are further

back at somewhere around 2-3%.

Login or register to post comments

by sri (not verified) on 5. October 2012 - 4:14 (100305)

good information

Login or register to post comments

by Midhun (not verified) on 22. September 2012 - 13:04 (99595)

Presentation of information is so good.

Highlighting the key differences is good.

Keep up the good work

Login or register to post comments

by Remah on 23. September 2012 - 1:11 (99626)

Thanks all for the compliments. There is still room for improving the

existing article and I will be adding more info later this year.

Login or register to post comments

by Gilson Chapple (not verified) on 11. September 2012 - 19:17 (99124)

The very best information I have ever come across on the subject.

Concise, and well written so that even a novice can understand.

This guy can write a bit!

Brilliant!

G.C.

Login or register to post comments

by Shylesh (not verified) on 4. September 2012 - 9:27 (98736)

Thanks a lot. Now I understood clearly the difference between 32 and 64

bit systems. I tried to increase the RAM of MySQL server from 4GB to 6GB,

thinking that, it will boost the performance, but system itself was not

Page 9: 32-Bit and 64-Bit Explained

9/11/13 32-bit and 64-bit explained

www.techsupportalert.com/content/32-bit-and-64-bit-explained.htm 9/13

recognizing the change, because it is 32 bit system. Your article is

wonderful. Thanks :)

Login or register to post comments

by Remah on 4. September 2012 - 11:41 (98742)

You may be able to use Physical Address Extension (PAE) to address

more than 4GB in Linux and Mac OS X.

PAE increases the address size from 32-bits to 36-bits or more so you

could use 64GB or more. Your system BIOS will usually support it if it

displays the correct total of 6GB RAM.

Windows 32-bit uses PAE but locks in the 4GB limit. There are utilities

that remove this limit but I don't recommend using them as Pushing

the Limits of Windows: Physical Memory explains.

If you're running MySQL on Windows then can use Address Windowing

Extensions (AWE) which is supported by MSQL. AWE increases the

maximum size of a user process from 2GB to 3GB which is what I have

indicated in Table 5 of this article. It would give a 50% increase in

addressable RAM for MySQL but you will find that it should give a

greater increase in the memory available to your MySQL application.

Running MySQL on Windows with 4 GB of RAM explains this in more

detail.

Just remember it doesn't work on all editions of 32-bit Windows, it

prevents MySQL using Windows pagefile, and you have to recompile

MySQL.

Login or register to post comments

by Pd (not verified) on 28. August 2012 - 8:31 (98400)

Really A very well scripted Article. Thank you for sharing.

But still I have a confusion related to i7-2860qm it comes with only 64 bit

supported. I understand its required 64-bit OS now question is that can I

run 32bit or any old applications on 2860qm processor with 64 bit OS.

Thanks

Login or register to post comments

by Remah on 28. August 2012 - 8:57 (98402)

The i7-2860qm is just another Intel 64-bit processor. The processor

itself is backward compatible with 32-bit and 16-bit code but the

operating system will determine what you can actually run.

Windows 7 64-bit will run most 32-bit applications but will not support

32-bit device drivers or any 16-bit code.

Login or register to post comments

by DaveJB (not verified) on 21. August 2012 - 20:45 (98078)

Thanks for this great article.

I have a question. As I'd learned, the machine code contains a statement

code, and the address with interpreting flags or anything. Now I see that

64 bits architectures use 64 bits wide address "path", I don't know how

wide the address bus is. But: if 64 bits words are used for reaching

billitrillibits of RAM, I would really like to know how long the address code

is, and generally what are contained is that. I guess that "current 64-bit

processors are generally limited to 40-bit physical address space" could

mean that the statement code is stored on 16 bits and the address on

40/48 bits, but at this case the memory range is only 2^40 bytes high.

Briefly: how does a 64 bits machine code sturture looks? I couldn't fine

any answer for this anywhere.

Login or register to post comments

by Remah on 22. August 2012 - 1:35 (98094)

Page 10: 32-Bit and 64-Bit Explained

9/11/13 32-bit and 64-bit explained

www.techsupportalert.com/content/32-bit-and-64-bit-explained.htm 10/13

As I responded to the earlier question, your question falls outside the

focus and the main audience of this article. Even so I'll address some

important points that other users may find relevant.

I suggest that you start with

http://en.wikipedia.org/wiki/AMD64#Virtual_address_space_details

because it summarizes operating modes with the sizes you are

interested in.

Machine code and assembler are the lowest level computer languages

where each instruction/statement corresponds to an operation of the

processor. Each instruction/statement has an operation (op) code and

various operands (typically none to three). The operands specify the

data to be operated on and the data itself. Machine code uses binary

instruction codes and binary data. Assembler uses mnemonic codes

(e.g. MOV means move) and data is represented in higher-level forms

such as hexadecimal. Higher level languages use more complex

instructions that have no parallel with the instructions used in the

processor.

There is no normative/universal format for machine code or assembler

code. It can vary between different processor families and between

generations of the same family. The same applies to 64-bit

processors.

Processors are normally designed to minimize overheads and costs and

to maximize speed. It is a waste of computation power and in increase

in complexity to process at 64-bits when a lower power will do. So 64-

bit processors do not have to use 64-bit addresses or data. That is

why 64-bit processors currently limit physical memory to 48-bits

because that is more than enough at present.

Where processor designs use such lower powers then there will usually

be a plan to migrate/scale to higher powers (i.e. more bits). The

Wikipedia link provides a good visual example of how virtual memory

addresses can transition from 48-bit to 64-bit.

Login or register to post comments

by DaveJB (not verified) on 22. August 2012 - 15:44 (98150)

Eeeh...I'm not sure that my question is which you replied to.

Thank you for your help about assembly languages and

mnemonics, but I had written several programs in that in an earlier

time. I would have liked to know only a general example about 64

bit CPUs - and you choose as you wish -, that if the word size is

64 bits to have the ability to address such a giant memory area,

then is the statement code also in a 64 bits long word

automatically, or the 64 bits word usually includes the statement

code, too. But I don't bother you with this, thank you for your

advice about Wikipedia, I will continue there. Hi.

Login or register to post comments

by Remah on 22. August 2012 - 20:53 (98165)

???

Although the background comments are for those not familiar

with machine code, I clearly state that the

instruction/statement code is separate to the operands. The

wikipedia link then gives the operand and address sizes for

AMD64 processors. With a 64-bit address in long mode there is

no space for the op code. So logically the AMD64 instruction

set is not limited to a 64-bit word. This means that the

instruction set is variable rather than fixed length.

It is possible that you are trying to look at current processor

technology through an old technology lens. Processors used to

execute machine code one for one but that is no longer the

case. Multistage processing provides for instructions to be

preprocessed: broken down into smaller micro instructions,

combined into larger macro instructions, and even executed in

a different order (out of order).

This link provides more info:

http://en.wikipedia.org/wiki/X86#Basic_properties_of_the_architecture

Page 11: 32-Bit and 64-Bit Explained

9/11/13 32-bit and 64-bit explained

www.techsupportalert.com/content/32-bit-and-64-bit-explained.htm 11/13

(Edited with additional comments and link)

Login or register to post comments

by TK (not verified) on 18. August 2012 - 15:00 (97906)

I remember back in the day where windows 3.1/3.11 had win32s shim that

permitted 32-bit applications to run in conjunction with pre-existing parts

of the OS which operated in 32-bit mode whilst other parts operated in

16-bit mode and the prevailing wisdom was if one could keep software and

OS in 32-bit mode context one would get greater over all performance...

My question is: are Intel and AMD 64-bit x86 CPU's capable of similarly

switching context say in a 32-bit kernel driver into 64bit mode to address

otherwise inaccessable RAM in 64-bit mode and then be switched back to

32-bit mode when returning back to 32-bit mode before handing back to

the OS? I suspect in user mode it would be dissallowed and highly

undesirable to swith CPU context but in kernel mode with interupts

disabled for the duration could it be done?

Login or register to post comments

by Remah on 19. August 2012 - 4:54 (97946)

Comparisons with Windows 3 are largely irrelevant because the latest

versions of Windows operate so differently. It is much the same for

the CPUs. The transition from 16-bit to 32-bit involved the move from

real mode (the only mode for the original 8086 CPU) to protected

mode (with multitasking, code levels and memory protection).

Windows 3 needed to maintain compatibility back then but Microsoft

later removed 16-bit and real-mode support even though the CPUs still

provide such backward compatibility.

The result is that the transition to 64-bit Windows looks a lot

different. In particular, the Registry (first implemented after Windows

3) is a central design consideration such that Windows 64-bit uses

emulation of 32-bit code so it can maintain a common repository.

Windows now restricts 32-bit code to run only in user mode thereby

avoiding the issue of 32-bit kernel drivers (kernel, supervisor or master

mode runs unrestricted whereas user, restricted or slave mode runs

with less privileges and more supervision).

Your main question is beyond the scope of this article and is too

technical for the majority of our readers. However it is worth clarifying

that any "32-bit kernel driver" won't be able to work in 64-bit mode

unless it has 64-bit code: by definition it must be 64-bit. As you point

out mode switching is unattractive because of the performance hit

from switching the CPU whether between 64-bit and 32-bit mode,

between 32-bit and 16-bit mode or between protected and real mode.

[I've edited this response to improve clarity]

Login or register to post comments

by sagar antala (not verified) on 15. August 2012 - 10:16 (97737)

hey.. i have windows 7 home basic 64 bit license version and i5

proccessor DELL laptop.

i want to install 32 bit windows 8 preveiw.. i also have cd of windows 7 to

reinstall in future..

can it damage my laptop or license??

can i install 32 bit instead of 64 bit??

if it possible then in future can i reinstall my old cd of windows 7 as 64

bit??

plz yaaar!!! i am confused .. plz help me..

Login or register to post comments

by Remah on 15. August 2012 - 22:20 (97763)

Yes, you can install 32-bit or 64-bit Windows on a 64-bit processor.

This will not damage your computer.

Yes, you should have no problem reinstalling your Windows Home Basic

Page 12: 32-Bit and 64-Bit Explained

9/11/13 32-bit and 64-bit explained

www.techsupportalert.com/content/32-bit-and-64-bit-explained.htm 12/13

64-bit at a later date as you can install and reinstall any version you

like provided it meets Microsoft's license requirements. This article

looks at technical issues and does not address licensing so you should

always get Microsoft to answer such questions, for example, at:

http://windows.microsoft.com/en-NZ/windows7/32-bit-and-64-bit-

Windows-fr...

As you are talking about reinstalling Windows 7, I suggest that you

install Windows 8 Preview in a dual boot configuration. This means you

can use your current version of Windows 7 and the new version of

Windows 8 on the same computer. Each time you start-up your

computer you will be able to choose which version to run.

To setup a dual-boot configuration you need a separate disk partition

which can be created during Windows 8 Preview setup. There are

many articles that tell you how to do it so read them first, e.g.:

http://www.afterdawn.com/news/article.cfm/2012/03/01/quick_guide_to_inst...

Login or register to post comments

by Anonymouse (not verified) on 12. August 2012 - 17:29 (97612)

May I suggest another heading:

Should I use/download the 32-bit or 64-bit version of X application with

my 64-bit OS?

I realise this may often depend on the individual program, but broadly

speaking this seems to depend on the general interoperability

characteristics of the program class.

For example, a 32-bit uninstaller application will not be able to remove 64-

bit applications. However, a 64-bit browser will not work with 32-bit

plugins/addons.

Login or register to post comments

by Remah on 15. August 2012 - 22:32 (97764)

Good suggestion. Thanks for reminding me of this issue. I have

thought about it but haven't had the time to do it.

If I do it it will be in the companion article How Windows 64-bit

Supports 32-bit Applications.

Login or register to post comments

by Fingrapyro (not verified) on 9. August 2012 - 10:52 (97456)

Can I virtualize a hardware backwards? As in can I make my 64-bit

operating system emulate 32-bit. I have a really old software which won't

even install because it cannot run on 64 bit (it is older than 32-bit but I

am uncertain what bit is it actually working at)

Login or register to post comments

by Remah on 16. August 2012 - 12:39 (97789)

Sorry for my slow response - I don't know how I missed your question.

Yes, in general you can run 32-bit or less software on a 64-bit system

as Table 4 illustrates. Just remember that getting old software to run

on newer systems can be easy but is sometimes very difficult or not

possible at all.

Login or register to post comments

1 2 3 4 5 6 7 next › last »

Gizmo's Freeware is Recruiting

We are looking for people with skills or interest in the following

areas:

- Mobile Platform App Reviews for Android and iOS

Page 13: 32-Bit and 64-Bit Explained

9/11/13 32-bit and 64-bit explained

www.techsupportalert.com/content/32-bit-and-64-bit-explained.htm 13/13

- Windows, Mac and Linux software reviews Interested? Click here