Why does a 32-bit OS support 4 GB of RAM?

前端 未结 13 2006
不知归路
不知归路 2020-12-08 04:18

Just reading some notes in a purdue lecture about OSs, and it says:

A program sees memory as an array of bytes that goes from address 0 to 2^32-1 (0

相关标签:
13条回答
  • 2020-12-08 05:06
    1. 32bits can represent numbers 0..2^32 = 0..4,294,967,296
    2. 32bits can address up to 2^32Bytes (assuming Byte-size blocks)
    3. 2^32Bytes is the max size

    2^32B = 4,194,304KiB = 4,194MiB = 4GiB

    0 讨论(0)
  • 2020-12-08 05:07

    Because each byte of memory has to have an address. In a 32-bit operating system, an address is 32 bits long; thus, there are 2^32 possible addresses, which means there are 2^32 bytes = 4 GB.

    0 讨论(0)
  • 2020-12-08 05:08
    2 ^ 32 = 4 * 1024 * 1024 * 1024
    

    That, in bytes, is the definition of 4 GB. In other words a 32-bit register as a memory pointer can address 4 GB of memory and no more.

    0 讨论(0)
  • 2020-12-08 05:11

    Because is the amount of different memory addresses (in Bytes) that can be stored in a Word.

    But, in fact, that's not always true (in most of cases it isn't), the OS can handle more physical memory than that (with PAE) and the applications can use less than 4GB of virtual memory (because part of that virtual memory is mapped to the OS, 1GB in Linux and 2GB in Windows, for example).

    Another scenario where that doesn't apply is if the memory was addressed by Words instead of Bytes, then the total memory addressable would be 16GB, for example.

    0 讨论(0)
  • 2020-12-08 05:13

    As previously stated by other users, 32-bit Windows OSes use 32-bit words to store memory addresses.

    Actually, most 32-bit chips these days use 36-bit addressing, using Intel's Physical Address Extension (PAE) model. Some operating systems support this directly (Linux, for example).

    As Raymond Chen points out, in Windows a 32-bit application can allocate more than 4GB of memory, and you don't need 64-bit Windows to do it. Or even PAE.

    For that matter, 64-bit chips don't support the entire 64-bit memory space. I believe they are currently limited to 42-bit space... the 36-bit space that PAE uses, plus the top 8-bit addresses,

    0 讨论(0)
  • 2020-12-08 05:15

    Mainly due to 32bit OS chosing to support only 2^32-1 addresses.

    If the CPU has more than 32 address lines on the FSB, then the 32bit OS can choose to use a paging mechanism to access more than 4GiB. (For example Windows 2000 Advanced Server/Data Center editions on PAE supported Intel/AMD chips)

    0 讨论(0)
提交回复
热议问题