inb
Linux에서 커널 공간에 액세스하기 위해 , 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>