Upload
manas
View
42
Download
0
Tags:
Embed Size (px)
DESCRIPTION
Understand different bits in Windows OS
Citation preview
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.
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.
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?
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
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
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
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,
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
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)
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
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
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
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