2011-01-05 5 views
2
  • 커널의 기본 디렉토리에 "/ includes /"아래에 어떤 유형의 헤더 파일이 있는지 알고 싶습니다. 이 파일들은 어떤 의미에서 "공개"헤더/API를위한 것입니까? 따라서, 아키텍처를 잊어 버리고, 활성화/비활성화 된 스위치 등을 구성 할 수 있습니까?리눅스 커널 헤더

  • 간략히 말하자면, 드라이버에서 핵심 커널 기능을 사용하려면 찾고있는 기능이 "/ includes"및 아무 곳에있는 관련 헤더 파일 중 하나에 포함되어 있다고 가정 해도됩니다. 그렇지 않니?

일부 의견을 기다리십시오.

감사합니다 ..!

답변

6

저는 최근에이 문제에 대해 조금씩 조사했습니다.

내가 갖고있는 커널 소스의 패키징을 이해하는 데 관심이있는 것처럼 들리니까요. 이 대답은 아마도 두 번째 질문에만 해당됩니다. 그럼에도 불구하고 여기에 커널 헤더에 대해 발견 한 것들이 있습니다.

"커널 헤더"로 불리는 두 개의 잠재적 위치가 있습니다.

첫 번째 위치는 적어도/usr/src/linux-headers-`버전 '(적어도 내 우분투 시스템에서는)에 있습니다. 여기서 커널 (source?)과 함께 헤더가 설치됩니다. 커널 모듈을 만들고 싶다면 여기에있는 헤더를 기반으로 빌드해야합니다.

반면에/usr/include/{linux, asm}은 "커널 헤더"도 포함합니다. 이 헤더 파일은 커널의 사용자 인터페이스라고 생각할 수 있습니다. 사용자 인터페이스 프로그램이 시스템 호출을 할 수 있도록 커널에서 내 보낸 API입니다. libc는이 API를 이용하므로 어떤 시스템 호출이 가능한지에 따라 (/ usr/include에) 함수를 생성 할 수 있습니다. 여기

/usr/src/linux 디렉토리 헤더 - `version의 차이에 대한 링크입니다 : 내가 방금 말한 것들을 조금 더 명확히하기 위해 무엇을 여기

백업 할 문서의 커플 '및 RHEL4의/usr/include. 그래서 어쩌면 당신은 이미 알고 http://www.overclockers.com/forums/showthread.php?t=647638

: 마지막으로 여기 http://www.kernel.org/doc/Documentation/make/headers_install.txt

가 무엇 커널 헤더의 또 다른 설명입니다 : 여기

http://www.linuxquestions.org/questions/red-hat-31/rhel4-kernel-devel-headers-packages-missing-directories-697552/

은 '수출'커널 헤더에 대한 링크입니다 커널 패키지에있는 소스를 사용하여 드라이버를 만드는 방법을 알고 싶었지만 최소한이 대답을 통해 확실히 시작할 곳을 알았습니다.

0

예, include에는 커널 개발에 사용할 표준 API가 들어 있습니다.