커널 공간 장치에서 사용자 공간 프로세스로 데이터를 읽는 데 선호되는 방법은 무엇입니까?

커널 공간 장치에서 사용자 공간 프로세스로 데이터를 읽는 데 선호되는 방법은 무엇입니까?

현재 장치 노드의 파일 설명자를 먼저 열고 read()를 호출한 다음 파일 설명자를 다시 닫는 방식으로 센서를 쿼리하고 있습니다. 동적 센서 데이터의 경우 이 프로세스를 무한 루프로 반복합니다.

이미 메모리에 존재하는 데이터의 복사본을 만드는 것보다 장치 트리의 파일과 같은 구조에 이미 있는 데이터를 미러링하거나 심볼릭 링크하는 더 경제적인 방법이 있는지 궁금합니다.

답변1

한 가지 옵션은 사용자 정의 파일 시스템을 생성하고 이를 탑재하여 데이터를 노출하는 것입니다. 어쩌면 깨끗한 솔루션은 사용자 공간 파일 시스템이거나 고대 mtools(1)읽기/쓰기 FAT 파일 시스템과 같은 일부 사용자 공간 전용 옵션일 수 있습니다.

그럼에도 불구하고, 해당 데이터가 어떻게 사용되는지에 따라 많은 것이 달라집니다. 성능이 정말로 중요하지 않은 한, 순수한 사용자 공간 솔루션은 아마도 구축하기 가장 쉽고 가장 유연하고 미래 지향적입니다. 커널 공간에 머무르는 것은보장하다개발 속도가 빠르면 여러분의 작업을 공식 커널에 포함시키거나 모듈에서 공식적으로 내보낸 인터페이스만 엄격하게 사용하지 않는 한 빠르게 문제에 빠질 수 있습니다.

관련 정보