Home > OS >  Why Linux said process need 4 g space? Instead of 5 g, 6 g?
Why Linux said process need 4 g space? Instead of 5 g, 6 g?

Time:09-17

Recently saw "under normal circumstances, the Linux system, the process of 4 gb of memory space is divided into two parts -- -- -- -- -- - the user space and kernel space" more confused is why it is 4 g space, is it 32 bit? This is a virtual address or physical address? Good confused, don't know what a great god can help under the science

CodePudding user response:

32 is the biggest space of 4 g

CodePudding user response:

32 bit CPU platform that provides the virtual address space of 4 g, 4 g virtual address space, the kernel space is divided into 1 g and 3 g user space; All processes share 1 g kernel space, each process using your 3 g user space alone

CodePudding user response:

Is not to say that must be 4 g, should be a maximum of 4 g,,

CodePudding user response:

On a 32-bit machine, each process of 4 g, the CPU will die, the program can be used is generally low for 3 g, is within the operating system for approval, as for the program itself can be used in low 3 g how much, that's programming decision,

CodePudding user response:

Refers to the process's address space is a virtual address, or even on the machine only put 1 gb of memory chips, its virtual address space for each process is 4 gb, in which the application USES low 3 gb (each process exclusive own 3 gb), the operating system using a 1 gb space (sharing the same 1 g kernel space)

4 gb of this calculation is made on hardware register and Address bus digits, due to the register and Address bus x86_32 system is 32 bit, so the addressable space to 2 ^ 32=4 gb, but if you enable PAE (Physical Address Extension, Physical Address Extension), extending the Address line from 32-bit to 36, can be addressed ^ 2 is 36=64 gb of Address space

If is x86_64 architectures on the computer, because too much 2 ^ 64 said address space is too big, so most of the manufacturers only USES 64 - bit CPU registers, but does not use a 64 - bit address bus and generally is 48, the virtual address space of 2 ^ 48=256 TB, the divisions of virtual address space of the Linux is equally divided, user space: 128 TB, kernel space: 128 TB, due to the kernel space to expand, so usually x64 Linux, there is no the high memory area, the concept of all permanent memory can be mapped to a kernel space
  • Related