←back to thread

1311 points msoad | 3 comments | | HN request time: 0.207s | source
1. Dwedit ◴[] No.35394801[source]
> 6GB of RAM

> Someone mentioning "32-bit systems"

Um no, you're not mapping 6GB on RAM on a 32-bit system. The address space simply doesn't exist.

replies(2): >>35394865 #>>35400033 #
2. jiggawatts ◴[] No.35394865[source]
Windows Server could use up to 64 GB for a 32-bit operating system. Individual processes couldn't map more than 4 GB, but the total could be larger: https://en.wikipedia.org/wiki/Physical_Address_Extension
3. muyuu ◴[] No.35400033[source]
It actually happened. With paging and bigger word sizes, which were common in 32 bit systems even with hardware acceleration.

A 32bit address space only means you have 4GibiAddresses, which do not need to be pointing to single bytes. In fact the natural thing to do in a 32 bit system for a structure like this is moving 32bit words, which actually means you're addressing a 16GB space, flat. And then there's segmentation.

For instance the 286 had a 24bit address showing for 16MB in direct addressing mode and 1GB via segmentation (what back then was usually referred to by virtual memory)

The 386 had a 32 bit address width and its MMU allowed access to 64TB in virtual mode and 4GB in protected mode.This was indeed one of the reasons Linux was not made 286-compatible. Its protected mode was only 1GB and segmented rather than 4GB flat, so Linus didn't have to deal with XMS or EMS for a chip that was becoming obsolete soon anyway. But the 1GB space was there, and at the time that was plenty.