32 bit and 64 bit explained
Very often we find ourself thinking:
Will this 32 bit software run on my 64 bit operating system?
or
Will this 64 bit software run on my computer?
Here's a short tutorial which attempts to answer these questions and helps us understand the concepts of 64 bit and 32 bit hardware, operating system and applications.
32 bit systems have been part of the mainstream computing for more than a decade since the time of the 80386. Therefore, most of the software and operating system code written during this time has been 32 bit compatible.
32 bit systems can address upto 4 GB memory in one go. Some modern applications require more memory than this to complete their tasks. This and progress in chip fabrication technology led to the development of 64 bit processors for mainstream computing.
So here comes the problem, much of the software available today is still 32 bit, but the processors have migrated to 64 bit. The operating systems are slowly catching up. Eventually even the applications will catch up. But for now, we have to cope up with all combinations of 32 and 64 bits in hardware, operating system and applications.
You can consider these three factors to be three layers with the processor as the lowest layer and the application as the highest layer as shown below:
To run a 64 bit application, you need support from all lower levels (64 bit OS and 64 bit processor).
To run a 64 bit OS, you need support from its lower level (a 64 bit processor).
A 32 bit OS will run on a 32 or 64 bit processor without any problems.
Similarly a 32 bit application will run on any combination of OS and processor (except a combination of 32 bit processor and 64 bit OS which is not possible). This is usually accomplished through emulation which is an operating system feature, part of all major operating systems.
Device drivers run in parallel to the operating system. Emulation is done at the operating system level, and is available to its higher layer: the application. Therefore, it is not possible to install a 32 bit device driver on a 64 bit operating system.
Answers to common questions
Will a 64 bit CPU run a standard (32-bit) program on a 64-bit version of an OS?
Yes it will. 64 bit systems are backward compatible with the 32 bit counterparts.
Will a 64-bit OS run a standard application on a 64 bit processor?
Again, it will. This is because of backward compatibility.
Can I run W2K and WXP on an 64 bit CPU, and use old software?
Yes, a 32 bit OS (W2K and WXP) will run on a 64 bit processor. Also, you should be able to run "old software" on a 64 bit OS.
However, before I close, let me also quote that many times, a 64 bit software will contain bits of 32 bit code. Similarly 32 bit software (usually very old ones) can have some code in 16 bit. Please be aware that 16 bit code will NOT run on 64 bit OS. This is one reason behind some 32 bit programs not working on 64 bit OSes.
|
Related Links
|
| How Windows 7 / Vista 64 Support 32 bit Applications |
Delicious
Digg
StumbleUpon
Please rate this article


Subscribe to our
I have been considering migrating to a 64 bit system with W7. I am currently running the 32 bit evaluation copy(build 7100). My hardware is up to par for a 64 bit system and if I run into any software issues I can install those programs on my other hard drive running 32 bit XP.
My question is this; as an avid gamer who runs multiple programs, music, browser, mmorpg etc, what advantage will I realize other than the ability to address more RAM? Will my graphics be cleaner? Higher frame rates? Will it ease the load on my CPU or increase it?
Your article is very concise and understandable. But, as you can see, I have many more questions I was hoping to have answered here.
What about DOS programs? I have estimating software that will not run under the VISTA environment. Any thoughts?
While DOS programs are not necessarily 16-bit, they are nonetheless subject to the same limitation described above. DOSBox (from www.dosbox.com) is the best solution for running such programs on a 64-bit machine.
Even on 32-bit Vista or Windows 7 (or XP), DOSBox may be a good idea, as the built-in DOS emulation is not always up to par.
Nice article.
But I think you also need to mention that there are actually two types of 64 bit processor.
Intel once had IA 64 CPU first but it didn't handle 32 bit application very well. AMD then came with a new AMD 64 processor with good compatibility with 32 bit applications. and Intel then used AMD 64 bit structure too.
The software developed for Interl IA 64 will be specifically marked as "IA64".
"32 bit systems can address upto 4 GB memory in one go. Some modern applications require more memory than this to complete their tasks."
You might add that most people will never have any interest in running such modern applications.
Yes, there might be some fantastically unnecessary technology coming in the future that everyone will insist on needed, but - dare I say it? - 4 GB of RAM should really be enough for everybody!
Anyone with am modern digital camera will be generating files large at possibly 10 megs. Windows uses 1.5 gigs. Photoshop (just the programme) 1.4 gigs so 2.9 gigs is gone of your 4 gig, leaving 1.1 gigs for manipulating your 10 meg image. Stitch images, or have more than 10 levels of undo enabled and you'll get crashes. Moving to 64 bit with 8 gigs of ram stops you losing work.
4 gb of ram is nowhere near enough for many. Add in vidoe and 8 meg becomes a must
So for the casual user and his or her family photos, extensive image manipulation and a $600 copy of Photoshop is now an absolute must?
I remember when IBM said that about 256K on their AT 286 :)
"More power then anyone will ever need on their desk top"
Are you sure about 256k on on a 286?
I don't have the facts in front of me, but I thought a 286 had a minimum of 640k, and was expandable right up to 2meg or so.
And its predecessor the XT had 512k standard, expandable to a whopping 640K?
I get your point though. I was told from a reliable source once that that the first manned moon mission carried just such a 640K computer.
The thing I find most difficult to understand is that many of the users I've come into contact with insist on seeing most of their memory sitting idle in the tray and install third party software (using memory) to keep this figure as big as possible.
I have a desktop computer that is a core 2 extreme 4MB Ram running Vista 32 bit OS. I also have an HP HDX 18T notebook with a quad core (Q9000) processor 4MB ram with a vista 64 bit OS. When I purchase Windows 7 os can I upgrade my desktop 32 bit os to windows 7 64 bit os? Will I have to uninstall my desktop's 32 bit os before installing the Windows 7 64 bit os?
I'm trying to avoid having to purchase to seprate copies of Windows 7 in leu of getting one copy with 2 licenses. Thanking you in advance for your help. Art Lawing, USMC disabled Veteran
For starters, I doubt you're running with 4MB of RAM.
But in answer to your question, no, you can not do an in-place upgrade from 32-bit Vista to 64-bit Windows 7. However, both the 32-bit and 64-bit versions will be on the same DVD, so you won't have to worry about paying for two versions.
But frankly, doing a fresh install is always a much, much better idea than trying to upgrade a previous installation, though.
Can you recommend any utility programs that will examine a 32-bit program (compatible with 64-bit OS) and identify if it contains 16-bit code which will make it inoperative? I am sure some of my old programs may fall into this category but do not know for certain.
If you remove all programs and clean and defrag your harddrive it worked fine with win 7 install. Microsoft has software which will test for upgrade.
So, how do I know if I have a 32 or 64 system?
Try SIW (standalone version).
Nice job!! VERY good article... it answered most of my questions about 64-bit. You might want to put something about how Vista/Windows 7/Linux 64-bit support 32-bit apps though... the virtualization is fascinating ;)
Hi Abhishek,
Waiting for your comments, Other guests kindly comment is it possible to install OS on Ecternal Hard Drive...
I am, as many, a bit under-educated in the technical end of the tool I use everyday... so please excuse the question. If I understand this correctly it is in possible to run a 32 bit piece of software on my Vista - 64 bit O.S., but yet it tells me there is an incompatability issue and that I must run the S.W. on a 32 Bit O.S.... So how do we go about making it work, since it should work?
Would it be possible for you to point to the software you are trying to use? Vista has compatibility problems with many applications. 32 vs 64 bit is just one of the many reasons why you can face problems while running your applications.
-Abhishek
HI Abhishek,
Very well explained, Thanks. I have question is it possible to install operating system on external hard drive. I have laptop which have AMD Athlon 64 bit Processor as well as 64 bit Vista OS. I have application it's not working on 64 bit vista. So thought of installing OS on external hard drive.
Thanks,
Depu.
32 bit and 64 bit Windows 7 can definitely be installed to and run from an external drive as long as it is an e-SATA external drive, i.e. connects to the PC in question via an e-SATA connection. Simply choose the e-SATA drive as the location for the installation of Windows 7.
Unfortunately, if it is an USB or a Firewire drive then it can't normally be installed and run from them, though I believe there are work arounds that allow it.
Hello Depu,
You can install an operating system on a portable hard drive. Many flavors of Linux specialize in this feature. I am not sure how well Windows supports this option.
I would also advise you to check why your application is not working on Windows Vista. It may be possible that this particular application is incompatible with Windows Vista and therefore you are not able to run it. Did you try running it on 32 bit Vista?
-Abhishek
Great comments and helpful, but what is missing is the how too.... install a 32 bit program since the comtuter does reject it and does not load the program.
Hello,
Thanks for your comment. Could you please elaborate more on what you are trying to do?
-Abhishek
Thank you for your time and effort.
A very informative explanation.
Definitely worth a save ...
Cheers.
gr8 dude...A very good explanation....
Thank you....
Great stuff. Takes a very good teacher to make things so clear for a computer-challenged person like me. :-)
you missed the main point what are the 32 bit operating systems amd 64 bit operating systems among various MS windows/ Linux/ others is not covered
Very clear, even fot me !
Thanks a lot !
This doesn't appear to be true for many 32 bit apps that install drivers: wikipedia entry
Thanks for your comment PsychEroc. I have included your feedback into the article now.
-Abhishek
very vivid and satisfactory artile...
just one question, I m plannng to buy th AMD athlon 64-bit proseesor with windows XP 64 bit edition, will this work ?? and will other general softwares like Adobe photoshop,flash, visual studio, vlc player, antivirus , etc will work on this combination?? Is this combination fine??
I'd suggest going for Windows Vista 64 bit rather than Windows XP 64 bit. Better still, wait till Windows 7 is out and use that. Windows XP 64 bit will be outdated very soon.
All the softwares you mentioned will work on 64 bit OS & processor.
-Abhishek
thank you that helps but how do you use the old 32 bit software if it does contain the 16bit? is there a download patch? or what?
frustrated...
I assume that you are using a 64 bit OS. If that is the case, then some old programs (containing 16 bit) are bound to break down. There is no way to run them on a 64 bit OS.
If you really need to run a 16 bit program, then use a 32 bit OS.
-Abhishek
Nice article but does not do as described and explain what 32bit and 64bit actually means. Neither does it explain its relevance in a PC's architecture or software development.
I guess my only small critism is the title. Great work.
Some very very basic computing terms need defining here.
Bit is a shortened way to write binary digit.
Basically 32 bit means that the highest address (meaning the biggest number) that the processor can hold is 1 less than 2 to the power 32. Just as the highest decimal digit is 1 less than 10 to the power 1 ie 9. The processor can thus address memory providing it does not go higher than 2 to the power 32 which we abbreviate to 4gb.
The next size up is 64 bit.
When Pcs first came out we were still in the days of 8 bit processing!
If any of your software ran as far back as Windows 3.1 ie before windows 95 then it very likely includes some 16 bit processing.
Windows 7 and Vista would likely refuse to install this - it would give a message something like Not a Valid Windows Executable on the setup.exe for it.
Hi,
Thanks for your feedback. This is a good suggestion. I will add another article explaining some of your suggested topics and put a link to it here.
Regards,
Abhishek
Very well explained
Good explanation, thank you!!!
thx dude! this is what i call explanation!
For once someone gave a sweet short, to the point explanation. Thanks!
Very Nice, straight forward - Thanks!
Nice article! im just starting to learn more about the inter workings and terms of the "tech" side of the computer other than the operating. Really helpful
Regarding your response to Q&A #2, is this correct? 32CPU and 64OS?
Confused....thanks
No. A 32 bit CPU cannot run a 64 bit OS.
"To run a 64 bit OS, you need support from its lower level (a 64 bit processor)."
Thanks for pointing the discrepancy in the Q&A.
Regards,
-Abhishek
Thank you! Alot... Finnaly... YESSS. My Long last Quest is Over...
Stares Violently against my Computer, With a Sledge hammer.
well explained thanks
Well done.
Post new comment