user space 크기 선택
커널을 빌드시 3가지의 VMSPLIT 옵션에 따라 user space가 달라진다.
- 주로 PC 리눅스에서는 3G 옵션을 사용하고,
- 임베디드 리눅스에서는 3G 또는 2G 옵션을 사용한다.
- 1G 옵션은 거의 사용되지 않는다.
user space를 크게할 때의 장단점
- 장점: 사용자 application에서 사용할 수 있는 가상 메모리 공간이 더 커진다.
- 단점: NORMAL ZONE의 공간이 작아 HIMEM ZONE의 사용이 많아져 메모리 access의 속도가 저하된다.
메모리 공간 할당은 아래 두 시스템에서 추가적으로 이해가 필요하지만 32bit ARM만 이해하기로 한다.
- 32bit ARM with LPAE
- 64bit ARM
¹) NORMAL ZONE: kernel space에 존재하며, 물리 메모리의 direct 매핑이 가능한 영역.
²) HIMEM ZONE: kernel space에는 선택한 일부 공간만 존재하며, 물리 메모리의 direct 매핑을 할 수 없어 반드시 일부를 선택하여 사용할 수 있다.
ARM 64에서는 어떤가요?
arm 64bit 커널의 경우 커널과 유저 가상 주소의 크기는 같게 설계하였습니다.
그리고 그 크기는 컴파일 타임에 결정되며 최소 매핑 단위(4K, 16K, 64K)별로 다음과 같은 크기를 지원합니다.
– 64G (16K Page, 36-bit)
– 512G (4K Page, 39-bit)
– 4T (64K Page, 42-bit)
– 128T (16K, 47-bit)
– 256T (4K, 48-bit)
– 256T (16K, 48-bit)
– 256T (64K, 48-bit)
– 4P (64K, 52-bit)
더 자세한 내용은 다음 url을 참고하시기 바랍니다.
http://jake.dothome.co.kr/pt64/
감사합니다.
감사합니다!
좋은 하루되세요. ^^