(1) 시스템 콜
: 시스템 콜(System Call)은 응용프로그램에서 운영체제에게 어떠한 기능(시스템 자원)을 수행해달라고 하는 하나의 수단이다.



(2) 시스템 콜의 이해
: 사용자 프로세스가 소프트웨어 인터럽트를 통해 커널의 기능을 이용하기 위한 서비스를 요청하는 하나의 방법이다.

○ 처리방식
  - 사용자 프로세스가 시스템콜을 요청하면 제어가 커널로 넘어옴. (사용자모드 -> 커널모드)
  - 커널은 내부적으로 각각의 시스템콜을 구분하기 위해 기능별로 고유번호를 할당하고, 그 번호에 해당하는 제어루틴을 커널
    내부에 정의.
  - 커널은 요청받은 시스템 콜에 대응하는 기능번호를 확인.
  - 커널은 그 번호에 맞는 서비스 루틴을 호출.
  - 서비스 루틴을 모두 처리하고 나면 커널 모드에서 사용자모드로 다시 전환.


(3) 시스템 콜의 종류 - Type 별로 구분

○ 프로세스 제어
○ 파일 조작
○ 장치관리
○ 시스템 정보 및 자원관리
○ 통신 관련

○ 시스템 콜의 초기화는 시스템 부팅시 커널 초기화 과정에서 trap_init()함수 내의 set_system_gate(SYCALL_VECTOR, &system_call)을 수행해서 0x80인터럽트를 위한 게이트 디스크립터를 설정한다.

  - SYSCALL_VECTOR : 0x80로 정의된 상수
  - &system_call          : 시스템콜을 위한 핸들러 주소


※ 출처 : http://idkkangjs.blog.me/30091117058

'L inux > Kernel' 카테고리의 다른 글

시스템 콜(System Call) - 3  (0) 2011.09.26
시스템 콜(System Call) - 2  (1) 2011.09.26
리눅스 커널 컴파일  (0) 2011.09.26
리눅스 부팅과정  (0) 2011.09.23
리눅스와 리눅스 커널  (0) 2011.09.21
by 민트앤라떼 2011. 9. 26. 10:37