This question already has answers here:
Why can an executable run on both Intel and AMD processors?
(2 answers)
Closed 2 years ago.
I hope this isn't the dumbest question ever, but on my journey to learning about creating an OS, I thought about this and no amount of research is getting me anywhere.
How is it, when you install Windows on your computer, it just works, regardless of the underlying processor?
Let's say you have a 32-bit copy of Windows. How is it able to be run on every 32-bit CPU if the architecture is different per CPU? I see alot of resources saying bootloaders (where your OS starts booting), are written in assembly (which is tied to your processor instruction set). In that case, why is a Windows 32-bit OS able to run on Intel x86 as well as AMD?
For example, if I wrote a bootloader in x86, I can eventually make an ISO and boot it as my "primary" OS. But wouldn't that be tied to the CPU I wrote it for? So if I was a big company, how would I make my bootloader work for other CPUs?
Thanks! Sorry if it's a vague or repeated question, but I honestly could not find the answer.
"32 bit Windows" only runs on PC's with X86 32 bit processors. Windows includes drivers for various motherboards and devices, and can install drivers from CD or USB for devices not already supported by drivers included with the Windows install.
Some versions of Windows can run on multiple platforms, but require a Windows built specifically for that platform. The most common case of this is current versions of Windows that are either 32 bit (runs on X86) or 64 bit (runs on X86 X64). Windows NT 4.0 has versions for Alpha, MiPs, PowerPCs and PCs in 32 bit mode. XP was the first Windows to have a X64 version, and it can also run on Itanium. Windows 10 has versions for ARMV7 and ARM64 in addition to its 32 bit (X86) and 64 bit (X86 X64) builds.
Related
I was curious about the ARM32 architecture (the 32-bit only version) and it's future: according to the wiki page, the Windows 8 variant Windows RT was ARM32, but it is deprecated now.
Windows 11 seems it will be ARM64-only.
What about devices released in-between?
I could not find any information/statistics related to this.
As far as I know ARM64 can run ARM (32-bit) applications, but one developing a system driver or working low-level has to support both platforms.
For comparison as far as I know, majority of current android phones are 64-bit already and with the 32-bit architecture having the 4GB limitation, logic would dictate, that outside of niche scenarios we should not really see 32bit-only ARM systems.
Anyone has any information regarding this?
There is absolutely no reason for MS to release ARM32 version:
No chip vendor is launching high end ARM32 chips
aarch64 is vastly superior to aarch32 while not much more expensive for licensees (if at all)
aarch64 is NOT backward compatible.
Why would MS want to fragment their Windows eco system more than necessary?
I just spent all day loading up my new windows 8 laptop with all my dev tools. Only to find out that my OS version was the 32 bit version.
When I tried to run the emulator for my windows phone 8 app I got an error saying I needed "Hyper-V". Apparently "Hyper-V" is only available on the 64 bit version.
I have a two part question. How do I develop using my current 32 bit OS and dev tools? From what I'm reading I can still test with a registered phone. Any information on how to do this?
The other question is, do I bite the bullet now and upgrade to the 64 bit OS (which is a reformat and re-installation of everything)?
Thanks
I would bite the bullet and upgrade to 64 bit now. The full system requirements for Windows Phone 8 development are here. Besides needing 64-bit Windows 8 Pro or higher to use the Windows Phone 8 emulator, the other "gotcha" is needing a processor that supports Second Level Address Translation (SLAT).
PCs that support SLAT are Intel-based processors that start with i (e.g., i3, i5, i7, i9) or any CPUs based on the Nehalem, Westmere, or Sandybridge micro-architectures.
To determine if your machine supports SLAT, perform the following steps:
Download SysInternals/TechNet CoreInfo at http://technet.microsoft.com/en-us/sysinternals/cc835722
Run "coreinfo -v"
If you have "*" next to "EPT", you should be good. If you have a "-" next to EPT, your processor doesn't support SLAT.
If you hace a Windows Phone 8 device you can "unlock" it and deploy and debug apps in it, so you can keep your 32 bits OS.
Otherwise, you need to format and install a 64 bits version of Windows 8.
Hi everyone :) am a newbie to develop applications for Mac. My questions are regading to different OS architectures in Mac and am greatly confused in this. Kindly bear with me if my questions are very cheap. Thank u all:)
I know that there is 32 bit support for 10.6(SnowLeopard). I would like to know if there is 32 bit support for 10.7(Lion)??
I have a 64 bit machine. I want a 32 bit 10.7 on it. How would i do so??
I have a 32 bit iMac and I have 10.6.8 in it. I have built an application on it; the application uses a user developed library which is also 32 bit. Now I carry on this application to another Mac machine which has 64 bit processor with 10.7(Lion). Will I be able to execute the same application as such in 10.7(Lion)?? I was not able to do so.
OS X uses a binary format that can support multiple architectures (e.g. 32- and 64-bit Intel, as well as PowerPC, etc) in a single executable or library. Most of the binaries and libraries in Lion are dual-architecture 32&64-bit Intel. So, yes, there is 32-bit support in Lion.
There is no such thing as 32-bit Lion; it's a dual-architecture OS. It can boot the kernel in either 32- or 64-bit mode, and run programs in 32- or 64-bit mode. Unlike most other OSes, it can even run programs in 64-bit mode under a 32-bit kernel. Whenever you run a program in Lion, it checks what architectures the program includes and what the CPU is capable of, and picks the "best" mode to run that program in.
There's no obvious reason this shouldn't work. If you were trying to use a 32-bit-only library from a program that was running in 64-bit mode, or a 64-bit-only library from a program running in 32-bit, it would fail. But if the program is 32-bit only it'll obviously run in that mode, your user developed library is 32-bit, and all of the libraries supplied with the OS are 32+64-bit.
There are a few things that might cause your 32-bit program to fail under Lion. First, does it depend on any libraries other than the one you mentioned and those supplied with the OS (e.g. libraries compiled locally by something like MacPorts, Fink, or Homebrew)? If so, those libraries might've been compiled 64-bit only. IMO libraries should always be compiled for all relevant architectures to avoid this sort of problem, but that's not the default.
Another possible source of trouble is if your program isn't really a program, but something that loads into another program (e.g. a plugin of some sort, screensaver, etc). In that case, your plugin needs to support whatever mode the program that'll load it is running in. You can actually get this issue with Java programs, since the java runtime will start in 64-bit mode (when the CPU supports it) in Lion.
Telling us more about your program and what specific error you get would probably help a lot...
Just a simple question: Is there any way to run a program compiled under a 64 bit Windows environment (with mingw64) on a 32 bit machine? Any DLL or any compatibility layer which I can use?
If you are talking about a 32-bit processor, then no. But if you are running a 32-bit OS on 64-bit hardware, then you can do it with VMWare. A 64-bit guest can run on a 32-bit host, if the hardware supports it.
Bochs should do the trick, but you'd need another copy of Windows to run in the virtual machine. (Some editions of Windows include additional licenses for virtual machines, so you might be in luck.)
Performance would probably be very poor.
No you cannot do this. The other direction is possible through an emulator, e.g. on Windows it is called WOW64.
It is standard practise on platforms that still have large install base of the 32-bit versions of the OS to ship either just a 32-bit version, or both 32- and 64-bit versions.
I can recommend VirtualBox for this purpose, you can download the free version and it's easier to use than VMWare. However you will need a 64bit installation CDROM, and storage space for a full system install, and if you are installing Microsoft Windows they will expect you to pay for a license key.
Also your CPU needs to support both 64 bit mode in the hardware, and the vt-X/AMD-V features (most of them do). It's a bit slower, although mostly that seems to be the display that slows it down, not the internal program calculations. This is NOT an emulation, the CPU is really running native 64 bit, but VirtualBox fakes the hardware devices (display, disk, network, etc) so the result is not as nice as running normally. 3D graphics acceleration is available, but it has limitations.
An easier option is simply to hire an online Virtual Machine by searching for someone offering 64 bit versions of Windows Server (there are plenty). Usually they will offer connection over Remote Desktop, typically you can pay by the month. Upload your programs, run what you want, then delete it when you are finished and cancel the service. The service provider handles installation, licensing, hardware, etc.
hey that was a problem that gave me a headache for a while but i solved it. I had windows 10 32 bit but when i opened system in control panel it said that "32 bit architecture, 64 bit processor." lookup some websites and your hardware must have a few things which you can check in CPU-Z( lookup some webpages for this) its necessary. Then export your folders,documents, softwares in an external hard drive..now download the windows 10 64 bit iso file and boot it.ands viola! you got 64 bit architecture ( i also recommend upgrading ram atleast minimum 4 gb) or the other way is to install 64 bit guest in VMware ir another virtual machine software...gud luck
No, It is not possible...........
I'm limited to ObjectAda 7.2 for particular reason. Do i need to install a 64 bit OS (Win 64x in my case) to write and run such programs?
Is your goal just to write multi-threaded programs in Ada that can run concurrently on the multiple cores?
It depends on how your compiler handles Ada tasks, but IIRC that compiler maps Ada tasks to Windows threads, so it should work just fine with a 32-bit OS. The program itself probably wouldn't generate any different code for a 64-bit Windows than for 32-bit. To get any different, you'd need a 64-bit version of the compiler (which probably won't be OA 7.2). Aonix's current datasheet for OA doesn't even say anything about Vista or Win7 support.
You might consider going 64 bit to get more than 3 Gig of accessible RAM, but I don't think it will help your Ada code any.