"시스템 호출"의 두 판 사이의 차이

11번째 줄: 11번째 줄:
* 모든 시스템 호출은 고유한 숫자가 있음
* 모든 시스템 호출은 고유한 숫자가 있음
:<code>__NR_foo</code> 또는 <code>SYS_foo</code> ( <[[sys/syscall.h]]> 참조 )  
:<code>__NR_foo</code> 또는 <code>SYS_foo</code> ( <[[sys/syscall.h]]> 참조 )  
* 스레드 ID를 반환하는 [[gettid()]]와 같은 시스템 호출은 wrapper 없이 직접 실행되기도 함
* 모든 시스템 호출에 대한 정보는 [[SYSCALLS(2)]] 참조<ref>http://man7.org/linux/man-pages/man2/syscalls.2.html</ref>


http://upload.wikimedia.org/wikipedia/commons/thumb/6/68/Linux_kernel_interfaces.svg/600px-Linux_kernel_interfaces.svg.png
http://upload.wikimedia.org/wikipedia/commons/thumb/6/68/Linux_kernel_interfaces.svg/600px-Linux_kernel_interfaces.svg.png

2017년 9월 19일 (화) 21:41 판

1 개요

system call
시스템 호출, 시스템 콜
  • OS 커널이 제공하는 서비스에 대해, 응용 프로그램의 요청에 따라 커널에 접근하기 위한 인터페이스
  • 시스템(OS)의 코어 기능을 수행해달라는 요청(호출)
프로세스 제어, 파일 관리, 장치 관리, 통신 등에 관한 요청
  • 커널 내부에 호출을 받는 부분이 있음
  • 특권이 있어야 직접 호출·처리 가능
  • 예: C 프로그램은 C 라이브러리의 wrapper 함수를 통해 시스템 호출에 접근함
Wrapper는 보통 함수 인자를 설정하고 trap 명령을 실행 하는 최소한의 역할을 하지만 truncate()와 같은 함수 는 파일의 길이 검사 등을 수행하기도 함
  • 모든 시스템 호출은 고유한 숫자가 있음
__NR_foo 또는 SYS_foo ( <sys/syscall.h> 참조 )
  • 스레드 ID를 반환하는 gettid()와 같은 시스템 호출은 wrapper 없이 직접 실행되기도 함
  • 모든 시스템 호출에 대한 정보는 SYSCALLS(2) 참조[1]

 

 

2 같이 보기

3 참고

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}