ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 운영체제 1주차 5
    CS/운영체제와 시스템 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
Designed by Tistory.