inb, inl, inw를 사용하여 사용자 공간에서 커널 공간에 접근

inb, inl, inw를 사용하여 사용자 공간에서 커널 공간에 접근

inbLinux에서 커널 공간에 액세스하기 위해 , inl및 를 사용 inw하는 사용자 공간 예는 무엇입니까 ?

답변1

inb, outb친구는 커널 ← 사용자 공간 통신에 사용되지 않으며 플랫폼별 IO 포트를 읽고 쓰는 데 사용됩니다.

이러한 기능의 일반적인 용도는 도중에 특정 커널 장치 드라이버를 생성하지 않고 직렬 또는 병렬 포트(및 연결된 장치)와 직접 상호 작용하는 것입니다.
X 서버는 비디오(또는 입력 장치) 하드웨어와의 저수준 통신에도 이를 사용할 수 있습니다.

사용자 공간에서 이러한 호출을 사용하려면 다음 두 가지 작업을 수행해야 합니다.

  • 호출 프로세스에는 CAP_SYS_RAWIO가 있어야 합니다.능력(이것은 일반적으로 루트로 실행해야 함을 의미합니다.)
  • 호출 프로세스는 원하는 포트를 사용하기 위한 권한을 요청해야 하며,ioperm또는iopl시스템 호출.

Linux I/O 포트 프로그래밍 미니 HOWTO* 끝에 간단한 예제 프로그램을 포함하여 기본 사항을 안내합니다 .
이 포트를 사용하는 프로그램은 이 포트 뒤에 있는 하드웨어(또는 펌웨어)와 직접 통신합니다. 커널은 이러한 호출을 확인하거나 방해하지 않습니다. 따라서 오용하면 심각한 문제가 발생할 수 있습니다. 조심히 다루세요.

* 컴파일하려면 로 #include <stdlib.h>바꿔야 합니다 .<asm/io.h><sys/io.h>

관련 정보