IPC between Kernel & User space

커널 프로그래밍을 위해 커널에서 직접 제공하는 Kernel API들이 있음을 잘 알고 있을 것이다. 그 외에 유저 영역에서 커널과 인터페이스하기 위한 여러가지 수단들을 알아본다.

 

IPC between Kernel & User space

  • Posix Syscall
    • Software 인터럽트를 이용한 System Call
    • Posix library를 통해 호출
  • Kernel-provided User Helper
    • 고속 처리를 목적으로 syscall을 통하지 않고 커널 코드에 직접 호출하는 특정 API들 (특정 아키텍처에서만 지원)
  • Usermode Helper
    • 커널에서 직접 유저 코드를 로드하여 실행시킬 수 있다.
  • procfs 인터페이스
    • 리눅스 커널에 포함된 가상 /proc 디렉토리를 통해 커널 정보를 간단히 조회할 수 있다.
  • sysfs 인터페이스
    • 리눅스 커널에 포함된 가상 /sys 디렉토리를 통해 다양한 장치 드라이버 및 커널 정보에 접근할 수 있다. (커널 디버깅 및 트레이싱 인터페이스 포함)
  • cgroup 인터페이스
    • CPU 시간, 시스템 메모리, 네트워크 대역폭과 커널 자원들을 사용자 정의 작업 그룹간에 할당할 수 있다.
  • dev 인터페이스
    • 리눅스 커널에서 사용하는 장치 디바이스에 접근할 수 있다.
  • socket 인터페이스
    • 네트워크 통신을 위해 제공하는 소켓 프로그래밍 인터페이스이다.
  • netlink 소켓 인터페이스
    • 표준 소켓 인터페이스를 사용하여 커널과의 양방향 통신을 제공하는 인터페이스이다.

 

 

참고

 

댓글 남기기