커널 virtual address & 1GB physical memory에 관하여 질문...

sunnyncom의 이미지

커널에서 메모리 관리에 대해 궁금한 사항이 있습니다.

32비트 시스템일때 Virtual address space가 3G/1G로 나뉜다는 건 알겠습니다.

kernel space 1G(0xC0000000 - 0xFFFFFFFF)는 physcal address와 다이렉트 맵핑된다고 하던데,

그럼 실제 1GB의 physical 메모리를 가졌다면, kernel space 1GB가 완전히 1:1로 맵핑이 되는건지요?

만약에 그렇다면, Memory-mapped IO address space하고는 어떻게 구분이 되는건지요?

익명 사용자의 이미지

linux kernel 이라는 가정하에

> 32비트 시스템일때 Virtual address space가 3G/1G로 나뉜다는 건 알겠습니다.
>

꼭 그렇지도 않습니다.

> kernel space 1G(0xC0000000 - 0xFFFFFFFF)는 physcal address와 다이렉트 맵핑된다고 하던데
>

헛소문입니다.

익명 사용자의 이미지

없네.

익명 사용자의 이미지

> 그럼 실제 1GB의 physical 메모리를 가졌다면, kernel space 1GB가 완전히 1:1로 맵핑이 되는건지요?
>

그럴리가요.
MMU 가 없는 CPU 용의 커널이 아니면 그런 경우는 없습니다.

> 만약에 그렇다면,
>

그렇지 않습니다.

> Memory-mapped IO address space하고는 어떻게 구분이 되는건지요?
>

구분하지 못합니다.

sunnyncom의 이미지

제 질문의 내용이 부족했나 보네요...
3G/1G로만 나뉜다는게 아니라...... 그런 경우에 예를 들어 질문을 드린 겁니다.