• Architecture & Register
프로세서, 메모리, 입출력 등의 시스템 구성
• Linux Memory Layout
주소 공간을 여러 영역으로 분할
커널 영역 (Kernel Space):
커널 공간은 운영체제의 핵심 부분으로, 운영체제 커널이 실행되는 메모리 영역. 이 영역은 일반 프로그램이 직접 접근할 수 없고, 특권 명령이 필요. 보안을 강화하기 위해 사용자 영역과 분리되어 있음.
사용자 영역 (User Space):
일반적인 응용 프로그램이 실행되는 메모리 영역입니다. 이 영역은 사용자 프로세스들이 동작하며, 각 프로세스는 독립적으로 자신의 메모리 공간을 가짐.
스택 (Stack):
함수 호출 및 지역 변수 저장에 사용되는 메모리 영역. 함수가 호출될 때마다 스택 프레임이 생성되고, 이전에 호출된 함수의 정보와 지역 변수가 저장.
LIFO 방식으로 동작
힙 (Heap):
동적으로 할당된 메모리를 관리하는 영역.
FIFO 방식으로 동작.
메모리 매핑 (Memory Mapping):
메모리 매핑은 파일이나 장치를 메모리에 연결하는 방법을 나타냅니다. 이를 통해 파일이나 장치에 접근하는데 사용되는 메모리 영역을 생성할 수 있습니다.
프로세스 실행 및 데이터 저장 등에 사용
• Calling Convention
caller가 전달할 argument를 stack에 push
callee prolog
callee epilog
caller가 call과정에서 사용한 stack 정리