함수, 데이터 구조 및 헤더를 문서화하는 커널 섹션 9 맨 페이지를 만드는 방법은 무엇입니까? * * This function

커널 소스 에는 다음 과 같은 기능데이터 구조 가 포함되어 있습니다 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)를 어떻게 설치 / 만듭니 까?



답변

내용이되어 직접 구문 분석 (항목 로부터) 소스 가 .c 파일 1 :

Linux 커널에 포함 된 ‘C’친숙하고 유지 보수가 용이하지만 일관성 있고 추출 가능한 기능 및 데이터 구조에 대한 문서화를 제공하기 위해 Linux 커널은 함수 및 해당 매개 변수, 구조 및 구조를 문서화하기 위해 일관된 스타일을 채택했습니다. 회원.

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

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

시작 주석 표시 “/ **”는 커널 문서 주석 용으로 예약되어 있습니다. 그렇게 표시된 주석 만 kernel-doc 스크립트에 의해 고려되며, 그렇게 표시된 주석은 kernel-doc 형식이어야합니다.

즉, 이러한 형식의 주석 만 추출 할 수 있으며 프로세스에서 사용 하는 Perl 스크립트를 활용할 수 있습니다.kernel-doc make

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

따라서 mandocs 대상으로 제한되지 않습니다 .

설치 후 “make psdocs”, “make pdfdocs”, “make htmldocs”또는 “make mandocs”는 요청 된 형식으로 문서를 렌더링합니다.

커널 저장소 / 소스에 드라이버 특정 텍스트 파일 도 있습니다 . 보다 일반적으로 Linux 맨 페이지 프로젝트 ( man1 ~ man8 ) 를 다운로드 할 수 있습니다 . 마지막으로 kernel.org는 일부 출력 문서를 유지 관리 합니다.


커널이 그러한 기술을 사용하여 맨 페이지를 생성하는 유일한 경우는 아닙니다. GNU coreutils 도 이와 같은 경우입니다. 대부분의 맨 페이지는 사용법 함수에서 유틸리티 소스 파일 ( 1 2 ) 의 컨텐츠 출력을 사용하여 생성 됩니다 .command --help


답변

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

apt-get install linux-manual-3.2

또는 유사한 (올바른 버전을 선택하십시오). 다른 문서 패키지도 있습니다

apt-get install linux-doc

그러나 이것은 html입니다.


답변

커널 소스 코드를 다운로드하고 소스 디렉토리에서 execute

make mandocs

매뉴얼 작성이 완료되면

make installmandocs

매뉴얼 페이지가에 설치됩니다 /usr/local/man/man9/. 이제을 입력하여 매뉴얼 페이지를 보거나 man <api-name>편집중인 경우 API 이름을 vim누르 K십시오.


답변