함수, 데이터 구조 및 헤더 파일을 문서화하는 커널 섹션 9 매뉴얼 페이지를 만드는 방법은 무엇입니까?

함수, 데이터 구조 및 헤더 파일을 문서화하는 커널 섹션 9 매뉴얼 페이지를 만드는 방법은 무엇입니까?

핵심원천포함하다기능그리고데이터 구조예를 들어 문서화되었습니다.panic.c:

/**
 *  panic - halt the system
 *  @fmt: The text string to print
 *
 *  Display a message, then perform cleanups.
 *
 *  This function never returns.
 */
void panic(const char *fmt, ...)

매번 소스 코드를 보는 대신 이러한 API를 다음과 같이 생각하십시오.맨페이지그리고 기존 문서 프레임워크를 활용하세요.


어떻게 설치/만들나요?커널 섹션 9 맨페이지( /usr/share/man/man9) 위의 함수와 데이터 구조가 포함된 문서는 무엇입니까?

답변1

내용은직접 분석(당신은 또한 볼 수 있습니다이것) 에서원천.c 파일 1 :

Linux 커널의 기능 및 데이터 구조에 대해 내장된 "C" 친화적이고 유지 관리가 쉽고 일관되고 추출 가능한 문서를 제공하기 위해 Linux 커널은 함수와 해당 매개변수, 구조 및 매개변수를 문서화하는 데 일관된 스타일을 채택합니다. 회원.

이 문서의 형식을 kernel-doc 형식이라고 합니다. 이 Documentation/kernel-doc-nano-HOWTO.txt 파일에 문서화되어 있습니다.

이 스타일은 몇 가지 간단한 규칙을 사용하여 문서를 소스 파일에 포함합니다. scripts/kernel-doc perl 스크립트, Documentation/DocBook의 일부 SGML 템플릿 및 기타 도구는 이러한 규칙을 이해하고 포함된 문서를 다양한 문서로 추출하는 데 사용할 수 있습니다. [...]

시작 주석 표시 "/**"는 커널 문서 주석용으로 예약되어 있습니다. 커널 문서 스크립트는 그렇게 표시된 주석만 고려하며, 그렇게 표시된 모든 주석은 커널 문서 형식이어야 합니다.

즉, 형식이 지정된 주석만 이 방법으로 추출할 수 있으며 다음을 활용할 수 있습니다.kernel-doc 진주프로세스에서 사용되는 스크립트 make:

kernel-doc [ -docbook | -html | -html5 | -text | -man | -list ]
  [ -no-doc-sections ]
  [ -function funcname [ -function funcname ...] ]
  c file(s)s > outputfile

따라서 당신은 이에 국한되지 않습니다만독스 표적:

일단 설치되면 "make psdocs", "make pdfdocs", "make htmldocs" 또는 "make mandocs"는 요청된 형식으로 문서를 렌더링합니다.

드라이버별 항목도 있습니다.텍스트 파일커널 저장소/소스에 있습니다. 보다 일반적으로 그들의Linux 매뉴얼 페이지 프로젝트(남자 1통과하다남자 8) 예쓸 수 있는다운로드 가능합니다. 마지막으로 kernel.org도 일부를 유지 관리합니다.산출문서.


1. 이 기술이 맨페이지를 생성하는 데 사용되는 유일한 경우는 커널이 아닙니다. 암소 비슷한 일종의 영양핵심 도구다른 경우에도 마찬가지입니다. 대부분의 맨페이지는 다음과 같습니다.생성됨command --help콘텐츠의 출력을 사용하세요.용법유틸리티 소스 파일(1 2).

답변2

우분투를 사용한다고 가정하면,

apt-get install linux-manual-3.2

또는 유사합니다(올바른 버전 선택). 또 다른 문서 패키지가 있습니다

apt-get install linux-doc

하지만 이것은 HTML입니다.

답변3

커널 소스 코드 다운로드소스 디렉토리에서 실행

make mandocs

man 파일이 생성된 후 다음을 실행합니다.

make installmandocs

그러면 맨페이지가 에 설치됩니다 /usr/local/man/man9/. 이제 를 입력하여 맨페이지를 볼 수 있습니다. man <api-name>편집 중인 경우에는 API 이름을 vim누르기만 하면 됩니다.K

관련 정보