But AArch64 (or ARM64) and AMD64 did bring a lot more on the table than just larger address space. More registers, and a performance boost by just being better suited for the modern CPU core design.
Also, FWIW, security people can get real bothered that ASLR doesn't do much in 32-bit systems.
So, I think starting around 2GB DRAM, it's probably a "big enough" system to justify a 64-bit OS.
Provided you are not bothered by highmem. https://www.realworldtech.com/forum/?threadid=76912&curposti...
But why should Linus, even in 2007, use Win9x in the 21st century?
There is the x32 ABI - 32-bit pointer length, but the AMD64 ISA. I don’t think it ever saw significant adoption though.
I still think it's pretty safe to say 64 bit is the future, and will be for a long time (if I live long enough for 128 bit processors to become defacto or even widely necessary I'll be truly shocked).
If you're writing really space-optimised code, you can pack pointers closer together.
https://www.tech-faq.com/address-bus.html
My newish AMD laptop: `grep 'address sizes' /proc/cpuinfo`
address sizes : 48 bits physical, 48 bits virtual
Looks like 36 bits wide is already plenty for anything typical, up to 68 GB: >>> f'{2**32:>30_}'
' 4_294_967_296'
>>> f'{2**36:>30_}'
' 68_719_476_736'
>>> f'{2**40:>30_}'
' 1_099_511_627_776'
>>> f'{2**48:>30_}'
' 281_474_976_710_656'
>>> f'{2**64:>30_}'
' 18_446_744_073_709_551_616'The size of memory space is not necessarily aligned with the bit width of the CPU. There are a lot of 32 bit systems that can use much more than 4 GB of RAM. And there are no 64 bit systems I know of, that are even theoretically able to use 16 exabytes (16 million TB) of RAM.
AFAIK ARM32 is still the norm for embedded systems. And there is still a place for 8-bit microcontrollers.