Differences between 64bit and 32bit OS on the lower machine-level, instruction sets, SW offerings, and Spectre.
Forum rules
Before you post read how to get help. Topics in this forum are automatically closed 6 months after creation.
Before you post read how to get help. Topics in this forum are automatically closed 6 months after creation.
Differences between 64bit and 32bit OS on the lower machine-level, instruction sets, SW offerings, and Spectre.
Might it be possible for someone on the development team to lend a hand with some of these questions?
Someone intimately familiar with the machine-language instruction sets, and the AMD64 microprocessor architecture?
Who may have been involved, or has experience, creating kernels?
Here's the thing, and I've asked this before, but had gotten too many answers from people who seem to be guessing more than they actually know.
I am well aware that 64bit allows you to use more RAM and Storage, which is fine for servers but irrelevant for most desktops/laptops.
Aside from allowing for more RAM and storage, is there anything else that is changed, in the 64bit version of an OS, versus the 32bit version?
For example:
Does 64bit multi-task better than 32bit? Let's take AMD64 versus the 32bit i386 instruction set in that same processor.
Sub-question to the above: does the OS even take advantage of any 64bit-specific features/instructions, or is it merely capable of addressing more space? (RAM and disk, of course) I am suspecting, of course, for less bugs and problems, that both 32 and 64 bit OSes might be very similar.
Spectre: What happens when you run a 32bit OS on a 64bit processor that has the Spectre vulnerability? Is Spectre still as much a threat then, does it need specific features that the 64bit OS makes available - or is that exploit bypasses the OS and addresses the CPU's internals directly without the support of the OS or despite the OS being 32bit? We don't see the vulnerability in 32bit (i386/i486/i586) processors, but I don't know if that matters on an AMDx64.
We used to be told that if we are not sure, to download the 32bit edition of an OS (besides, with PAE they all address more than 4GB).
Now we're practically only being offered 64bit in most distros. I am interested in reliability, stability and performance.
In my experience, as bits increase, so does sluggishness - not the other way around. You install a (more bits) version of an App, and it needs more system resources than the (less bits) version. (hence my question above, does one multi-task better)
Which is my best bet today?
I am tempted to go Mint 32bit xfce (after having tried Mint 18.2Cinnamon x64 (not everything was ironed out), and 18.3Maté x64 (pauses)), but some of the software that I want, may no be available for 32bit (I think Wickr for example and a CAD software package for sure).
I didn't know what forum to post this under, as it can be considered noobish, but is requesting info from an intimate knowledge of the OS and of microprocessors' inner functionings. When you google this stuff, the only differences everyone talks about, is that memory addressing... which is irrelevant to the common desktop/laptop/workstation. We're not talking about NSA servers here, but just plain old computers we all use everyday.
Someone intimately familiar with the machine-language instruction sets, and the AMD64 microprocessor architecture?
Who may have been involved, or has experience, creating kernels?
Here's the thing, and I've asked this before, but had gotten too many answers from people who seem to be guessing more than they actually know.
I am well aware that 64bit allows you to use more RAM and Storage, which is fine for servers but irrelevant for most desktops/laptops.
Aside from allowing for more RAM and storage, is there anything else that is changed, in the 64bit version of an OS, versus the 32bit version?
For example:
Does 64bit multi-task better than 32bit? Let's take AMD64 versus the 32bit i386 instruction set in that same processor.
Sub-question to the above: does the OS even take advantage of any 64bit-specific features/instructions, or is it merely capable of addressing more space? (RAM and disk, of course) I am suspecting, of course, for less bugs and problems, that both 32 and 64 bit OSes might be very similar.
Spectre: What happens when you run a 32bit OS on a 64bit processor that has the Spectre vulnerability? Is Spectre still as much a threat then, does it need specific features that the 64bit OS makes available - or is that exploit bypasses the OS and addresses the CPU's internals directly without the support of the OS or despite the OS being 32bit? We don't see the vulnerability in 32bit (i386/i486/i586) processors, but I don't know if that matters on an AMDx64.
We used to be told that if we are not sure, to download the 32bit edition of an OS (besides, with PAE they all address more than 4GB).
Now we're practically only being offered 64bit in most distros. I am interested in reliability, stability and performance.
In my experience, as bits increase, so does sluggishness - not the other way around. You install a (more bits) version of an App, and it needs more system resources than the (less bits) version. (hence my question above, does one multi-task better)
Which is my best bet today?
I am tempted to go Mint 32bit xfce (after having tried Mint 18.2Cinnamon x64 (not everything was ironed out), and 18.3Maté x64 (pauses)), but some of the software that I want, may no be available for 32bit (I think Wickr for example and a CAD software package for sure).
I didn't know what forum to post this under, as it can be considered noobish, but is requesting info from an intimate knowledge of the OS and of microprocessors' inner functionings. When you google this stuff, the only differences everyone talks about, is that memory addressing... which is irrelevant to the common desktop/laptop/workstation. We're not talking about NSA servers here, but just plain old computers we all use everyday.
Last edited by LockBot on Wed Dec 28, 2022 7:16 am, edited 2 times in total.
Reason: Topic automatically closed 6 months after creation. New replies are no longer allowed.
Reason: Topic automatically closed 6 months after creation. New replies are no longer allowed.
- catweazel
- Level 19
- Posts: 9763
- Joined: Fri Oct 12, 2012 9:44 pm
- Location: Australian Antarctic Territory
Re: Differences between 64bit and 32bit OS on the lower machine-level, instruction sets, SW offerings, and Spectre.
As far as I'm aware, Linus Torvalds doesn't post here.Timmi wrote: ⤴Wed Jul 04, 2018 2:20 am Might it be possible for someone on the development team to lend a hand with some of these questions?
Someone intimately familiar with the machine-language instruction sets, and the AMD64 microprocessor architecture?
Who may have been involved, or has experience, creating kernels?
Here's the thing, and I've asked this before, but had gotten too many answers from people who seem to be guessing more than they actually know.
[...]
I didn't know what forum to post this under, as it can be considered noobish, but is requesting info from an intimate knowledge of the OS and of microprocessors' inner functionings.
"There is, ultimately, only one truth -- cogito, ergo sum -- everything else is an assumption." - Me, my swansong.
Re: Differences between 64bit and 32bit OS on the lower machine-level, instruction sets, SW offerings, and Spectre.
I haven't used a 32bit desktop OS in 10 years. You are free to be stuck in the past for as long as you can - you don't even need to use a modern OS at all - but your long writeup basically asking for confirmation that progress is bad seems rather weird in this place.
That aside, as catweazel hinted at,
kernel.org > Debian > Canonical > Mint
You are asking at the very wrong end of the chain.
That aside, as catweazel hinted at,
kernel.org > Debian > Canonical > Mint
You are asking at the very wrong end of the chain.
Re: Differences between 64bit and 32bit OS on the lower machine-level, instruction sets, SW offerings, and Spectre.
Not only does Linus Torvalds not post here, I don't see any signs of ANY devs here.Timmi wrote: ⤴Wed Jul 04, 2018 2:20 am Might it be possible for someone on the development team to lend a hand with some of these questions?
Someone intimately familiar with the machine-language instruction sets, and the AMD64 microprocessor architecture?
Who may have been involved, or has experience, creating kernels? ...
And few beginner to intermediate users would understand the answers anyway.
For every complex problem there is an answer that is clear, simple, and wrong - H. L. Mencken
Re: Differences between 64bit and 32bit OS on the lower machine-level, instruction sets, SW offerings, and Spectre.
OP, For one thing you are wrong about desktop and laptop users not needing the memory 64-bit CPUs provide. You also incorrect about Specter and Meltdown exploits not being present in 32-bit CPUs.
There are plenty of tech sites that have explain these topics in detail not to mention Wikipedia.
There are plenty of tech sites that have explain these topics in detail not to mention Wikipedia.
Re: Differences between 64bit and 32bit OS on the lower machine-level, instruction sets, SW offerings, and Spectre.
Gee, I just love the outpouring of sarcasm from people feeling frustrated they don't have an answer to something! And the insolence!whm1974 wrote: ⤴Wed Jul 04, 2018 9:06 am OP, For one thing you are wrong about desktop and laptop users not needing the memory 64-bit CPUs provide. You also incorrect about Specter and Meltdown exploits not being present in 32-bit CPUs.
There are plenty of tech sites that have explain these topics in detail not to mention Wikipedia.
Thanks for hijacking my thread and making it look like it was answered to anyone who would actually have the answers.
OK, first, Meltdown doesn't affect AMD, but Intel. Second, I've read up on Spectre, in several places, and none of my questions were answered specifically, hence why I formulated the question in the first place.
You're acting all high-and-mighty, referring to other sites - did YOU even look at the list of processors?
And even if some different processors are on there, that is irrelevant in this context, as my question pertains to an AMDx64 for example running a 32bit OS, and whether the vulnerability is still as easy to exploit (because if you read up on it, you come to understand that a chain of events, or conditions, are required for it to be a workable exploit - I just don't understand those details).
Lastly, please DO show me a few laptops that CAN take 8 TERRABYTES of RAM, or create and address 16Terrabyte 64bit (not 32bit) partitions, and that the common mortal can afford, and provide a justification as to why that is needed on a desktop/laptop! NOT on a server(!), but a home computer (as in desktop/laptop). In fact, can you meet even one of those conditions?
A laptop that would have the motherboard real-estate to hold sufficient 32GB memory sticks as referred to here: www.howtogeek.com/175443/what-is-the-ma ... -computer/ ...and don't forget, that all we home-users can afford.
Waiting impatiently for your shopping links.
#sarcasm - please stop hijacking my thread.
Re: Differences between 64bit and 32bit OS on the lower machine-level, instruction sets, SW offerings, and Spectre.
I guess I was hoping a mod would escalate, or flag it, refer it to someone.
As they'd know who the team is behind the scenes.
And the mods can reassign a thread into a different section that may be a better fit for the topic.
Re: Differences between 64bit and 32bit OS on the lower machine-level, instruction sets, SW offerings, and Spectre.
I posted this this morning when I was sort of busy and didn't have time to quickly find the right articles for you to read. And keep in mind 32 bit vs 64 bit CPUs is very old news at this point as 64 bit x86 has been around since 2003. And besides, having only 2GB of RAM doesn't cut it anymore.Timmi wrote: ⤴Wed Jul 04, 2018 1:27 pmGee, I just love the outpouring of sarcasm from people feeling frustrated they don't have an answer to something! And the insolence!whm1974 wrote: ⤴Wed Jul 04, 2018 9:06 am OP, For one thing you are wrong about desktop and laptop users not needing the memory 64-bit CPUs provide. You also incorrect about Specter and Meltdown exploits not being present in 32-bit CPUs.
There are plenty of tech sites that have explain these topics in detail not to mention Wikipedia.
Thanks for hijacking my thread and making it look like it was answered to anyone who would actually have the answers.
OK, first, Meltdown doesn't affect AMD, but Intel. Second, I've read up on Spectre, in several places, and none of my questions were answered specifically, hence why I formulated the question in the first place.
You're acting all high-and-mighty, referring to other sites - did YOU even look at the list of processors?
And even if some different processors are on there, that is irrelevant in this context, as my question pertains to an AMDx64 for example running a 32bit OS, and whether the vulnerability is still as easy to exploit (because if you read up on it, you come to understand that a chain of events, or conditions, are required for it to be a workable exploit - I just don't understand those details).
Lastly, please DO show me a few laptops that CAN take 8 TERRABYTES of RAM, or create and address 16Terrabyte 64bit (not 32bit) partitions, and that the common mortal can afford, and provide a justification as to why that is needed on a desktop/laptop! NOT on a server(!), but a home computer (as in desktop/laptop). In fact, can you meet even one of those conditions?
A laptop that would have the motherboard real-estate to hold sufficient 32GB memory sticks as referred to here: www.howtogeek.com/175443/what-is-the-ma ... -computer/ ...and don't forget, that all we home-users can afford.
Waiting impatiently for your shopping links.
#sarcasm - please stop hijacking my thread.
Both Meltdown and Specter have been overblown and the vast majority of desktop users are not affected by this anyway. Here are some sites for you to look up the information:
www.AnandTech.com
www.Arstechnica.com
Re: Differences between 64bit and 32bit OS on the lower machine-level, instruction sets, SW offerings, and Spectre.
Architecturally multitasking doesn't differ much between AMD64 and IA32, i.e., support for isolating and/or switching tasks is basically the same for both architectures, at least big-picture wise (i.e., modulo specific MSR's or syscall/sysret and so on). AMD64 drops support both for hardware task switching (i.e., TSS's) and for segmentation and although these would theoretically count as architectural, in practice both TSS and segmentation were (as far as possible) not used even on IA32, by Linux nor Windows.
However, and certainly since you also mention Meltdown and Spectre, it should be mentioned that ever since Westmere (2010) Intel's 64-bit processors support PCID. I'd myself find PCID to be architectural, but although I'm not up on Ryzen, as far as I'm aware no AMD CPU to date supports it. In that sense you could also want to define it to be implementation rather than architecture.
What PCID is/does is allow for selective flushing of the TLB. This isn't or wasn't always hugely important and Linux only supports it since 4.14 -- but for the Meltdown mitigation (KPTI) it's in fact enormously important; KPTI without PCID means a much more significant slowdown than with. PCID-equipped CPU's in that sense "multi-task" quite a bit better than those without, and the latter certainly includes all 32-bit x86 CPU's, as well as all 64-bit ones in 32-bit mode.
So, you get to pick your answer by alignment with your choice of definition for "architecture".
I snipped it above but it is these days not the case that the memory addressing potential of 64-bit vs. 32-bit is "irrelevant for most desktops/laptops" and has not been for quite some time. I suppose you primarily concentrate on the 4GiB barrier -- 4GiB being 2^32 -- but although even 4GiB is tiny these days also "for most desktops/laptops" the problem is quite a bit worse even.Sub-question to the above: does the OS even take advantage of any 64bit-specific features/instructions, or is it merely capable of addressing more space?
Again related to the Meltdown issue Linux (and, again, Windows) shares an address-space between kernel- and user-space so as to not have to flush the TLB on every entry to and exit from the kernel; on 32-bit historically 3GiB of the 4GiB address space was for user-space, 1 GiB for kernel-space. Clearly in that 1GiB no more than 1GiB of actual physical RAM can be permanently mapped (and in fact a bit less due to other address-space demands) which is to say that if you do have more than 1GiB the remainder is used by the kernel in a non-optimal manner, as highmem, mapping and unmapping pages into kernel-space as needed. Up to 2GiB of physical RAM you can realistically mitigate by adjusting the divide (although you should note that standard distribution kernels do not) but anything over that and the really only sensible standpoint is that 32-bit has EOLed.
As to the Meltdown connection: said sharing is what Meltdown exploits, what KPTI mitigates, and what PCID helps to do so less painfully. KPTI is or will be available for 32-bit as well as 64-bit -- but note that KPTI does not in fact "disable" the address-space sharing; all it does is provide for a, so to speak, censored second set of pagetables to be used by userspace. I.e., no change to the above, still anything above 2GiB or really even 1GiB wants 64-bit.
The above comments on the "merely" from your question; it isn't "mere" and hasn't been for quite some time now.
As to the other part of your question, yes, the OS certainly does take advantage of 64-bit specific features. Of specific ones certainly but perhaps even most importantly, simply of the expansion of general registers. Certainly each individual IA32 general register grows to 64-bit on AMD64, can as such store 64-bit values in registers without them needing to be split over two 32-bit ones (and as such, can sometimes omit locking whereas 32-bit needs explicit locking to keep high and low 32-bit in sync) but very significantly indeed, also doubles the number of available general registers. This means that the compiler can generally generate much better machine code for the same C code on 64-bit than on 32-bit; has much more space to keep values in registers; is less frequently forced to go out to main memory, with all the speed gains this entails.
Both sub-answers together are to say that, yes, AMD64 is not just window dressing on IA32. The differences are quite significant, and IA32 should at this point be considered dead and buried.
We do see the vulnerability on 32-bit. Not on i386, i486 and i586 (Pentium) indeed, but those CPU's are definitely dead and buried. 686 CPU's -- Pentium Pro, Pentium II, Pentium III, Pentium IV -- are the only 32-bit CPU's left that are even remotely relevant and they are vulnnerable. the discriminator wrt. (Meltdown and) Spectre is out-of-order execution, not bitness.Spectre: What happens when you run a 32bit OS on a 64bit processor that has the Spectre vulnerability? Is Spectre still as much a threat then, does it need specific features that the 64bit OS makes available - or is that exploit bypasses the OS and addresses the CPU's internals directly without the support of the OS or despite the OS being 32bit? We don't see the vulnerability in 32bit (i386/i486/i586) processors, but I don't know if that matters on an AMDx64.
Yes, a 64-bit capable CPU in 32-bit mode is every bit as affected as 686 itself; if you run a 32-bit OS on a 64-bit capable CPU you are vulnerable.
I take it you are now referring to a decade ago or so because ever since then proper advise is contrary: use 64-bit unless you for some very definite and well-founded reason can not. Also note, PAE still limits individual processes to 4GiB; image/movie editing would be a type of modern desktop-load that could easily suffer from such. PAE has basically always been an unloved hack by anyone familiar with OS internals and should, again, by now be considered dead as a dodo. The only way it lives on is as having been the original mechanism AMD built upon to create AMD64.We used to be told that if we are not sure, to download the 32bit edition of an OS (besides, with PAE they all address more than 4GB).
Unequivocally 64-bit. Yes, 64-bit code and especially data is bigger than 32-bit code (due to pointers doubling in size) and seeing as how this also means less of it fits in the same amount of L1/L2 cache it could execute a little slower -- but this is quite offset by double number of double-sized general registers, no highmem, and certainly by modern 64-bit CPU's having an additional buttload of cache available in the first place.In my experience, as bits increase, so does sluggishness - not the other way around. You install a (more bits) version of an App, and it needs more system resources than the (less bits) version. (hence my question above, does one multi-task better) Which is my best bet today?
Yes. Other than any technical argument the very practical one of 32-bit support dying out is also excellent.I am tempted to go Mint 32bit xfce (after having tried Mint 18.2Cinnamon x64 (not everything was ironed out), and 18.3Maté x64 (pauses)), but some of the software that I want, may no be available for 32bit (I think Wickr for example and a CAD software package for sure).
No, it is not irrelevant; quite the contrary, as I hoped to have set out in more detail above. And yes, then all the other stuff.I didn't know what forum to post this under, as it can be considered noobish, but is requesting info from an intimate knowledge of the OS and of microprocessors' inner functionings. When you google this stuff, the only differences everyone talks about, is that memory addressing... which is irrelevant to the common desktop/laptop/workstation.
IA32 is a dead horse: those of us who at one point loved it would appreciate if you could stop beating it...
Last edited by rene on Wed Jul 04, 2018 6:20 pm, edited 2 times in total.
Re: Differences between 64bit and 32bit OS on the lower machine-level, instruction sets, SW offerings, and Spectre.
This the crux of the issue given that all new x86 hardware is 64-bit and it is getting to be very impractical for developers to maintain and support their distros for increasing fewer users of old 32-bit computers.
Thanks rene for explaining all the details for the OP. Better then I could do which why I posts those links.
Re: Differences between 64bit and 32bit OS on the lower machine-level, instruction sets, SW offerings, and Spectre.
Thanks. Just noticed I missed commenting on the TSS not existing in long mode (a feature not used by Linux even on 32-bit) so first paragraph slightly edited...
Re: Differences between 64bit and 32bit OS on the lower machine-level, instruction sets, SW offerings, and Spectre.
I never understood what is so great about Vinyl records. Since we can legally purchase and download great sounding music now, why bother?
Re: Differences between 64bit and 32bit OS on the lower machine-level, instruction sets, SW offerings, and Spectre.
For the most part, dealing with incapacity for change by defining stagnation superior. Also see, e.g., the entirety of the Middle East.
Something tells me this thread is about to be moderated though so let's leave it at that. Hope OP found the above to be interesting.
- catweazel
- Level 19
- Posts: 9763
- Joined: Fri Oct 12, 2012 9:44 pm
- Location: Australian Antarctic Territory
Re: Differences between 64bit and 32bit OS on the lower machine-level, instruction sets, SW offerings, and Spectre.
You answered your own question without the need for @rene to take goodness knows how much time to post exactly what you asked for, and without the need to vent your spleen on people who volunteer their time.
Which is my best bet today?
If that is true then the answer is binary. It's either 64-bit or 32-bit. A simple yes/no proposition that can be decided with only two brain cells. If 32-bit doesn't support the software you want then 64-bit is "is [your] best bet today"....some of the software that I want, may no be available for 32bit
"There is, ultimately, only one truth -- cogito, ergo sum -- everything else is an assumption." - Me, my swansong.