linux 64bit 의 메모리 체계에 대해서 질문 있습니다.

trymp의 이미지


linux 32bit 에서는 메모리를 관리할 때, user/kernel 을 memory split 으로 나누어서 사용하고 있는데요.

그래서 한 프로세스가 보게 되는 가상메모리가 User:3G/Kernel:1G 이면 user 프로세스가 최대 3GB 까지

가상메모리를 사용하는 것으로 알고 있습니다 그리고 DMA, Normal, HighMem 이라는 3개의 zone 으로

메모리 구역을 나누어서 관리하는 것으로 알고 있습니다.

linux 64bit 에서는 kernel 과 User 가 쓰는 가상메모리를 어떤 식으로 나누게 되나요?

메모리 관리 체계가 어떻게 다른지 알고 싶습니다.

고수님들의 많은 조언 부탁드립니다.

익명 사용자의 이미지

말로 설명하기는 복잡하니 잘 설명되어 있고 도식화되어 있는 링크를 첨부하겠습니다.

https://blogs.oracle.com/nilsn/entry/kernel_address_space_layout_on

http://www.cnblogs.com/bittorrent/p/3448489.html

http://lkml.iu.edu/hypermail/linux/kernel/1003.3/00582.html