-
운영체제 1주차 5CS/운영체제와 시스템 2021. 7. 26. 23:00
시스템 콜도 인터럽트의 일종-> 코드에 강제로 인터럽트 명령을 삽입하여 CPU가 이를 실행하게 하기 때문.
시스템 콜 코드 방식
eax 레지스터에 호출하고 싶은 시스템 콜 번호를 넣고, ebx 레지스터에는 인자값을 넣고, 소프트웨어 인터럽트 명령을 호출하면서 0x80값을 넘김
OS는 부팅시 IDT에 인터럽트의 번호와 실행코드를 가르키는 주소를 기록. 0x80 -> system_call()과 같은 정보가 기록되어있다.
프로세스 구조
Code : 컴파일된 소스코드 저장 영역
Stack : 함수 안에서 선언된 지역변수, 매개변수, 리턴값, 리턴 주소 등등이 저장됨. 후위선출 사용
Data : 전역변수가 저장되는 영역. bss와 data로 나뉘는데 bss는 선언만 된 변수가, data는 초기화가 된 변수가 저장된다.
Heap : 동적 데이터 저장
스택과 힙은 유동적이고 데이터와 코드는 고정 사이즈
프로세스와 연관된 레지스터 : PC(다음 실행할 주소 저장), SP(스택 프레임 최상단 주소),eax(리턴값),ebp(에러났을때 참조)
스택 오버플로우 : 스택의 주소값을 조작하여 해당 주소로가 해커가 함수를 실행시키는 해킹 기법
'CS > 운영체제와 시스템' 카테고리의 다른 글
운영체제 2주차 2 (0) 2021.07.28 운영체제 2주차 1 (0) 2021.07.27 운영체제 1주차 4 (0) 2021.07.23 운영체제 1주차 3 (0) 2021.07.21 운영체제 1주차 2 (0) 2021.07.21