User/Kernel space in linux machine

MySprtlty·2023년 9월 26일
0

Linux

목록 보기
5/10

🏷️User/Kernel space in linux machine

📌1. x86 linux machine

  • virtual address space는 4GB로 구성된다.
  • 하위 3GB는 사용자 모드에서 사용되고 상위 1GB (3GB ~ 4GB)는 커널 모드에서 사용된다.

1. User Space

  • 범위: 0x00000000 - 0xBFFFFFFF (0GB ~ 3GB)

2. Kernel Space

  • 범위: 0xC0000000 - 0xFFFFFFFF (3GB ~ 4GB)
  • 모든 프로세스는 동일한 커널 주소 공간을 공유한다.
    • 진짜로 동일한 커널 코드이다.
    • 즉, process A나 process B가 동일한 system call(exception)을 호출한다면, 그 순간 program counter(x86의 경우 IP) 동일한 logical address를 가리키게 된다.
  • 커널 코드, 커널 데이터, 페이지 테이블, 시스템 레벨 버퍼 등이 이 영역에 위치한다.
  • 커널 이미지는 충분히 작기 때문에 커널 영역 1GB로 충분하다.
    • 실제로는 1GB도 너무 충분히 크기 때문에 모두 매핑되지 않는다.

📌2. x86_64(AMD64) linux machine

  • virtual address space는 2^48Byte로 구성된다.
    • 64bit중 48 bit만 주소 지정에 사용한다.
  • It is divided in half.
    • 128TB for user
    • 128TB for kernel
profile
2Co 4:7

0개의 댓글