How does Windows 98 run 32-bit software? - operating-system

I know Win98 is very outdated at this point but I've been curious about this for a long time.
As far as I know, Windows 98 is an OS that acts as sort of a "shell", running on top of an already existing DOS operating system. However, DOS is a 16-bit OS which cannot natively run software written for 32-bit operating systems. How does Windows 98 do it then? Is it some sort of emulation?

Related

Why is 32-bit called as x86 and not as x32 in operating system architectures?

Why is 32-bit called x86 system and not x32? As an example, Windows uses x86 in System Drive instead of using 32bit. Is there a hidden fact behind that.I'm fascinated to get the answer from the community.
Because it has nothing to do with that :).
They are called x86 because it was based on the 8086 microprocessor made by Intel. This became x86 because a lot of their processors end with 86.
Source: Wikipedia

Is running a Windows on mac the same or very close to running windows traditionally?

It's been my understanding the OS sits on top of the hardware. Is it more or less the same to run windows from a macbook? When installing SQL on a windows partition, does this install similar to an all Windows setup?
I've heard the kernel is the main connector between hardware and basic OS, so would the mac kernel cause potential differences in operation?
Would installing the linux OS also adhere to these rules?
Thanks, and sorry for the simple question.
Generally, you are correct to say that, installing different operating systems on the same hardware would be the same. You will be able to both install Windows and Linux on the same laptop (whether that would be an Asus brand laptop, or HP, or whatever). Once you install an OS on some hardware, and the OS is able to recognize the hardware, and is able to utilize it, then you are in the clear. What's important is to install on OS that is compatible with the architecture of the computer. So if you get a Linux distro that supports x86 architecture, then you would have to install it on hardware that is with a x86 architecture.
Side note: Modern OS's are very smart and they have a wide range of architecture support (list of Linux architecture support, Windows support for ARM, Apple also has a wide range of architecture support).
Since you are asking about a macbook and Windows, then the short answer is: there won't be a problem for you to install Windows on your mac. Apple even gives you Boot Camp to easily do this (there are also quite a bit of recent tutorials on this topic as well).
So the end experience would be almost the same as having Windows on any other machine.
I've heard the kernel is the main connector between hardware and basic OS, so would the mac kernel cause potential differences in operation?
This is true. The kernel is the heart of any OS, but once you have your Windows running, it would be using its own heart and it won't touch the mac kernel. So if you remove your macOS and install only Windows, then only the Windows kernel would be taking control of the Mac hardware. But if you load your macOS, then the Mac kernel would be running and operating on the hardware.
Will Windows run faster on Mac hardware than macOS on its hardware? It's debatable and I would assume not a lot of studies have been made in that sphere. But, at least, it will run.
But what about dual-booting your macbook with Linux? Technically, it is possible (and the principle is the same), but Apple have made restrictions to their firmware, limiting the option of having both a macOS and a Linux distro at the same time. What's so different here than the case with Windows? Well mainly that the firmware of the macbook (the software embedded in the hardware of the laptop) doesn't allow for Linux to be installed. Maybe things have changed, but these are the (not so recent anymore) news I know about (I guess there are still ways of installing Linux on mac hardware).

microsoft.quantum.development.kit qsc.dll error

.nuget\packages\microsoft.quantum.development.kit\0.2.1809.701-preview\tools\qsc\qsc.dll'. Format of the executable (.exe) or library (.dll) is invalid.
How to repair qsc.dll?
Unfortunately, the quantum development kit only works with 64 bits OS (Windows, MacOS, Linux), and it appears that you are using a 32bit version of Windows.
I don't have any good option for you, except to upgrade the OS but I'm not certain there is a 64 bit version of Windows 10 Education.
As a limited option, you can try to execute some simple code in tio: https://tio.run/#qs-core.
I encourage you to create an item about this in https://quantum.uservoice.com/ where most of the feedback for the quantum development kit is gathered.

Running 64-bit Windows and Linux in 32-bit mode

I need to test my C code for 32- and 64-bit versions of Windows (XP and 7) and Linux. But I have got access only to their 64-bit installations.
Question: Is it possible to use some boot-time settings or other hacks to run/emulate these OSes in 32-bit mode? If not, is there any other way to test the portability of my C code?
Note: The C code in question is not a full-fledged application but rather a .dll/.so file.
Neither Linux nor Windows 64Bit can run as 32Bit OS. Also, while you can run 32Bit executables on the 64Bit OS, it is not quite the same as running the same under a 32Bit OS. But it might work as a quick screening test. Besides, you certainly want that to work as well, right?
Your choices are full multi-boot setup, using VMs (might hide/expose bugs), being content with the emulation layer or running the other OS's on different hardware.
BTW: If you have Windows 64Bit, the license allows you to run 32Bit instead and vice versa. Anyway, you might want to check different language versions as well...

Question about 32-bit / 64-bit systems

Firstly, what is this called? Is this the system's "platform"? If I want to know if a system is 32-bit or 64-bit, do I ask what "platform" it is?
Next, is what I wrote below correct:
-A 64-bit processor can run a 64-bit operating system or a 32-bit operating system (with a loss of efficiency).
-A 32-bit processor can run a 32-bit operating system only.
If I want to know if a system is 32-bit or 64-bit, do I ask what "platform" it is?
"Platform" is an overloaded term that can mean a great many things. It can mean the CPU family: x86 platform, IA-64 platform, x86-64 platform, ARM platform, MIPS platform, SPARC platform, etc. It can mean the underlying operating system: Windows platform, Linux platform, Solaris platform, etc. It can mean a combination of these: Wintel platform (Windows + Intel). It can mean specific distributions: Debian platform, Slackware platform.
If you want to know if a system is 32-bit or 64-bit, ask if it's 32-bit or 64-bit. And make sure that you also check the CPU for compatibility for your purposes. ARM cores are 32-bit too, but you can't run Windows on them (at this time). SPARCs can be 64-bit, but you won't be running your copy of Microsoft Office on it, I'd wager.
A 64-bit processor can run a 64-bit operating system or a 32-bit operating system (with a loss of efficiency).
This depends very much on the processor. Intel's IA-64 chips can't run 32-bit operating systems because they don't really have 32-bit instructions (if memory serves). About the only way you could run a 32-bit OS on one is if you emulated a 32-bit CPU of some sort. This would suck performance-wise.
On the other hand the x86-64 chips can run 64-bit OSes or 32-bit OSes with no loss of performance at all for the latter (when compared to a pure x86, I mean). I'm running a 32-bit version of Ubuntu, for example, on an x86-64 chip without difficulties. Of course the 64-bit system will run faster than the 32-bit if the underlying software was written to take advantage of the expanded capabilities! (You'd be surprised how little it matters for most day-to-day tasks, though.)
A 32-bit processor can run a 32-bit operating system only.
Again, it all depends on the processor. An x86 (not x86-64) can run 32-bit OSes, but can also run 16-bit OSes right down to plain old MS-DOS. On the other hand, ARMs tend to be 32-bit only. (There are some ARM cores that have 16-bit instructions, but most do not, again if memory serves.)
I'd strike the part about "with a loss of efficiency". 64 bit processors can run 32 bit OS's just fine; with exception to Itanium which require special OS builds.
Efficiency has nothing at all to do with it.
To give a partial answer: 32-bit or 64-bit is part of the architecture. I guess it is part of the platform too, but you're more likely to make an expert think of the 32/64-bit distinction by talking about architecture.
Honestly, if you want to know whether a system is 32-bit or 64-bit, just ask, "32-bit or 64-bit?"
Assuming we mean on bare metal, the second statement is true. The verity of the first depends on the processor architectures. IA-64 processors cannot run IA-32 operating systems without emulation, whereas EM64T processors can.
If you want to know if a system is 32-bit or 64-bit, you could ask what "bitness" it is.
Whether the statements about 64-bit and 32-bit processors running 64-bit and 32-bit operating systems are true depends entirely on which processors and operating systems you are talking about. You won't have much success running Windows XP on an 64-bit Alpha or SPARC processor.