본문 바로가기

computer

가상메모리 접근 권한

유튜브 널널한 개발자님 운영체제 수업 '가상 메모리 접근 권한'을 요약합니다.

 

프로세스는 코드와 데이터 영역으로 나뉜다.

 

데이터 영역은 스택, 힙, 정적(static)으로 구분되고 정적 영역의 문자열 상수는 코드 영역과 유사하게 관리된다.

메모리는 페이지 단위로 권한비트를 통해 RWX (421)로 권한이 관리된다.

Page table에 권한비트 + 프레임 번호를 기록하는 체계이다.

 

데이터 영역의 스택, 힙, 정적 영역의 전역변수는X가 없이 RW-로 관리가 되고

코드 영역과 정적 영역의 문자열 상수는 읽기권한만 있는 R--로 관리한다.

 

운영체제는 Data Execution Prevention(DEP) 기법을 통해 시스템을 보호한다.

데이터 영역에 실행 코드가 있더라도 실제로 실행이 되는 원격코드실행을 OS수준에서 방지하는 것이다.

 

포인터를 통해 메모리 주소에 접근하여 직접 값을 할당하는 경우에도

해당 영역이 읽기 전용이라면 Page fault를 반환한다.

 

 

Reference

https://youtu.be/d_S2QGQ_rBo