From: Sridhar Ayengar <ploopster at gmail.com>
Brian L. Stuart wrote:
segmentation structure. Unfortunately, it's
only got 32-bit
addresses. Even in the 60s, the Multics machines had 36.
Pardon my ignorance, but were there any places where the top four bits
were actually used? I mean, I don't believe there was a machine back
then capable of running MULTICS and also having more than 8Gb primary
storage. Wouldn't it be possible to fake it by just chopping off the
four most-significant bits and using the remaining 32?
It's the virtual addresses you really care about. So
the limit of physical memory is really a diffent issue.
The address was used in 2 18-bit parts. The upper part
was the segment number and the lower the offset into the
segment. That meant segments could be no more the 256K
and you could have no more than 256K of them. Because
there was a one-to-one correspondence between files and
segments, that would have limited files to 256K. They
did some "stuff" to get around that, but I don't think
it's what you'd do if you were starting from scratch, or
maybe even doing a fresh port. If you divided the 32-bit
address into a 14-bit segment number and 18-bit offset,
then you could keep the same segment size and the only
limit would be that a process could use no more than 16K
segments.
All in all, it'd be a whole lot more fun to use a 64-bit
machine and divide it into 32 and 32.
BLS