페이징루틴에서 _swapper_pg_dir 이 뭔가요?

jyj9782의 이미지

root@testbed:~/kernel# grep "_swapper_pg_dir" * -r
boot/head.S:.globl _swapper_pg_dir,_pg0

페이징할때요 _swapper_pg_dir 이 많이 이용되는데요.

이건 뭐죠? 다른덴 정의안되어 있는데, 유일하게 위에 정의가 다거든요.

.globl 하고 저렇게 정의하는게, 무슨의미인가요?

_pg0 은 레지스터인데왜 앞에 _를 붙였죠?

sailingship의 이미지

Q1:_swapper_pg_dir
A1:kernel에서 사용하는 Page Table.

Q2:.qlobl 정의는?
A2:Linux에서 Pageing은 Linear Address에서 Physical Memory 로 mapping시
CR3와 Global Directory의 Page Global Dirctory를 지칭.

아시겠지만, 리눅스에서 선형주소=| Global Directory | Middle Directory | Tables | OFfset |

Q3:_pg0은 레지스터인데 왜 앞에 _를 붙였죠?
A3:_ 쓰기는 kernel level에서 사용함을 나타내는 정의.

p.s:저도 공부중 입니다. 더 좋은 댓글이 있으면, 저도 많이 도움이 될 것 같습니다. ^^;