On the problem that 32-bit operating system can support up to 4G memory

on this question, I understand it like this:
1 to be exact, 32-bit CPU should support up to 4G memory
because 32-bit CPU has 32 address buses, each line 0 or 1, a total of 2 ^ 32 possibilities, 2 ^ 32 memory addresses, each memory address corresponds to 1 byte of content, so it is 4G
2 because the 32-bit operating system itself is only designed for 32-bit cpu, so under 32-bit systems, even 64-bit CPU, Only 32 address lines work
is this the limitation of the operating system, 32-bit operating system, only addressed to 32-bit?
do I understand correctly?
Thank you all


No.

Intel's 32-bit CPU, has 36 address buses (instead of 32), the maximum addressable memory space is 2 ^ 36 = 64G , and the available address space is 4G . 8086 of 16-bit systems use 20 address buses.

even if the 64-bit CPU, address bus is 46, the largest addressing address is 2 ^ 46 = 64T .

so, this is not determined by the bus, but by the operating system . Even on Windows systems, more than 4G RAM, can be used through PAE. As for why it is disabled by default, the main reason is that Windows needs to be compatible with previous versions, especially drivers.


combined with virtual pages, the operating system itself has broken this limit. 4G should refer to the memory addressing limit of a single process. I'm sorry. I kind of forgot.


the answer on the first floor is very standard. Like a

MySQL Query : SELECT * FROM `codeshelper`.`v9_news` WHERE status=99 AND catid='6' ORDER BY rand() LIMIT 5
MySQL Error : Disk full (/tmp/#sql-temptable-64f5-1bdc2db-312fb.MAI); waiting for someone to free some space... (errno: 28 "No space left on device")
MySQL Errno : 1021
Message : Disk full (/tmp/#sql-temptable-64f5-1bdc2db-312fb.MAI); waiting for someone to free some space... (errno: 28 "No space left on device")
Need Help?