Is it possible to map a process to memory without displaying a kernel?

The OSDev wiki says that:

It is traditional and generally good for your kernel to appear in every user process.

Why is this? Could a process be matched only with memory? What are the benefits of kernel mapping and isn't it a waste of space?

Also, is it possible to access kernel space from user space and why should I do this?

+4
source share
1 answer

It is traditional and generally good for your kernel to appear in every user process.

, , . , , , read pagecache, .

?

​​ . /, , , (.. 3, ). , ​​ , / . (. .)

: PTE "" , ( ) , TLB, CR3 (.. , ). , .

BTW, , , (PML4) ​​PDPTE (/ 1GiB , ). . , .


, ​​ ( ) : 4k VDSO ( ).

, , gettimeofday() getpid(), call (, rdtsc , ) syscall, . 50 100 x86, , / .


?

32- 64- 4GiB . ( 3- 4 VDSO).

( ), Linux ( 1G x86).

i386 Linux , 1: 3, IIRC, , . IDK, 32- x86.

?

, , . , .

x86-64, . 48 - 256 TiB, 128 TiB . , /. ( 52 .). , DIMM, , DRAM, .

2 , 64- . (, zillion /, , , 64- . 32- ​​ PAE . . https://serverfault.com/).

- PAE ( ) 4 32- x86. : yuck, , , 64- . Intel, , 32- .

+10

Source: https://habr.com/ru/post/1687873/


All Articles