답변1
"사용자 공간 커널 모듈"에 대한 설명은 모순적입니다. 즉, 사용자 공간이나 커널에서 실행되지만 어느 쪽에서도 실행될 수 없고, 커널 모듈도 사용자 공간에서 실행될 수 없습니다.
즉, 쓸 수 있다장치 드라이버사용자 공간에서는 상당히 일반적인 커널 API(모듈이든 아니든 커널 공간에서 실행됨)를 사용하고 사용자 공간에서 실제 장치 드라이버 기능을 구현합니다. libusb
, 또는 를 사용하는 spidev
장치 드라이버는 i2cdev
이에 대한 예입니다. 라이브러리를 사용하여 잘 알려진 커널 API에 액세스하거나 API에 직접 액세스하지만 장치 드라이버 논리는 사용자 공간에서 실행됩니다.
또 다른 비슷한 예는퓨즈: 고정 커널 API를 이용하여 사용자 공간에 자신만의 파일 시스템을 구현할 수 있습니다.
따라서 예제가 필요하면 Google에서 이러한 API를 사용하는 장치 드라이버를 찾아보세요. 그러나 이는 여전히 "사용자 공간 커널 장치 드라이버"가 아닌 "사용자 공간 장치 드라이버"의 예이므로 원하는 것인지 확실하지 않습니다.
커널 공간에서 실행되는 무언가를 작성하려면 커널 모듈 작성 방법을 배워야 합니다.
답변2
파일생성에 대한 sysfs
답변이 있습니다스택 오버플로. 처리하기 쉽고 기본적으로 루트 권한 없이 액세스할 수 있습니다.