커널 모듈 내에서 호출할 수 있는 라이브러리

커널 모듈 내에서 호출할 수 있는 라이브러리

사용자 정의 커널 모듈에서 호출할 수 있는 라이브러리 목록을 찾으십시오.

<stdio.h>사용자 공간과 라이브러리에 비해 몇 가지 제한이 있다는 것을 알고 있습니다.<string.h> 할 수 없다사용.

가장 널리 사용되는 것은 무엇입니까? 아니면 커널 모듈 내에서 라이브러리가 호출될 수 있는 시기를 구별하는 데 도움이 되는 경험적 법칙이 있는 것이 더 좋습니다.

나는 현재 mmap()라이브러리의 일부인 메모리를 매핑하는 데 사용하는 방법을 찾고 있지만 sys/mman.h그것이 나에게 필요한 유일한 것은 아니라고 확신합니다.

그래서:

  • linux/<MANY_DIFFERENT_NAME>사용 가능
  • asm/uaccess.h커널 코드에 포함된 것을 보았습니다.
  • sys/<ANY>커널 모듈과 함께 사용할 수도 있나요 ?
  • 다른 사람은 없나요?

답변1

커널 코드에는 사용 가능한 표준 사용자 공간 라이브러리가 없습니다. 커널에는 해당 사용자 공간 기능과 유사하게 동작하는 일부 기능이 있지만 차이점이 있는지 항상 확인해야 합니다.

mmap함수 에 관해 말하자면 , 이 함수는 단지 커널에 대한 시스템 호출일 뿐입니다. 커널 내에서 커널을 호출하는 것은 의미가 없습니다. 대신, mmap익명 메모리를 매핑하려는 경우가 아니면(메모리 할당을 통해 수행하기가 더 쉬움) 파일 설명자가 필요합니다. 프로세스에는 파일 설명자가 있지만 커널 모듈에는 없습니다.

일반적으로 커널 모듈 프로그래밍은 사용자 공간 프로그래밍과 다릅니다. 좋은 접근 방식은 원하는 것과 유사한 기능을 수행하는 커널 모듈을 찾아 이를 시작점으로 사용하는 것입니다.

관련 정보