Hi,
alexfru wrote:I have yet to see a hobby OS that would put at least one full gigabyte of memory (virtual or physical) to a good use. I don't get the urge to make a hobby OS 64-bit. Is it hip? Or is it because "yes, we can"? And then there's a plethora of associated issues to solve (quirks of addressing due to 32-bit displacements in instructions, the need to implement multi-level page translation that's not sufficiently regular at all levels, no v86/BIOS, etc). Is it worth it?
I think often it's the opposite - as soon as you choose "64-bit only" you no longer have to care if the CPU supports FPU, or SSE, or CMOV, or INVLPG, or SYSCALL, or PAE, or .... The same happens for the rest of the hardware (e.g. you can forget about ISA cards, assume PCI exists, assume there's an IO APIC, assume ACPI is supported, etc).
Also note that at least half of your "downsides" are likely to be irrelevant. E.g. these people are using higher level languages and compilers (and have no reason to care about instruction encodings), and are writing OSs that aren't crap (and have no reason to care about v86/BIOS other than in a weeny little boot loader), etc.
I also think people only really care about "recent" hardware. For laptop/desktop/server (where everything has been 64-bit for 10 years now) it's reasonable to ignore 32-bit. Unless someone actually cares about small embedded systems (e.g.
Intel's Quark) there's no compelling reason to support 32-bit.
Finally, I'd point out that the biggest benefit of 64-bit is that you get twice as many registers (that are twice as wide), which can make a huge difference to performance in some cases. The additional virtual address space is just a nice little bonus, not a major attraction.
Cheers,
Brendan