man page와 section number
리눅스를 사용하다보면 종종 'man page'라는것을 접하게 된다.
리눅스를 처음 접한 사용자라면 몇몇 리눅스 커뮤니티에 무언가 질문을 해도, 'man page 찾아보세요. 거기에 다 나와있어요' 라는 답변을 받기도 한다.
대체 man page는 뭘까?
man page는 'manual page'를 말한다.
리눅스의 여러 요소들(라이브러리 함수, 시스템콜, 명령어 등) 여러가지에 대해 설명하는 설명서(manual, 매뉴얼)라고 보면 될 것이다.
예를 들어, 당신이 'printf' 를 잘 모른다고 가정하자. 이에 대해 자세히 알아보는 방법은 몇가지 존재 할 것이다.
구글링을 한다던가, 대학 학부생때 배웠던 C언어 책을 다시 꺼내본다던가. 옆에 앉아있는 동료 프로그래머에게 물어본다던가.
한가지 더 있다. 바로 man page를 보는것이다.
리눅스 머신을 가지고 있다면, shell prompt를 띄우고 아래와 같이 타이핑해보기 바란다.
man printf
놀랍게도, 우리의 친절한 리눅스는 이러한 화면을 당신에게 보여줄 것이다.
이름이 무려 Linux Programmer's Manual 되시겠다.
자, 이 man page에는 section이라는 개념이 있는데, 숫자로 분류한다.
위 이미지에 보면 맨 위에 PRINTF(3) 이 보이는가?
3번은 라이브러리 함수들을 모아둔 section이다.
아래와 같은 section들이 있다.
1: User commands; man-pages includes a very few Section 1 pages that document programs supplied by the GNU C library.
2: System calls documents the system calls provided by the Linux kernel.
3: Library functions documents the functions provided by the standard C library.
4: Devices documents details of various devices, most of which reside in /dev.
5: Files describes various file formats, and includes proc(5), which documents the /proc file system.
7: Overviews, conventions, and miscellaneous.
8: Superuser and system administration commands; man-pages includes a very few Section 8 pages, mainly documenting programs supplied by the GNU C library.
Yeah. 해석하기 귀찮을까봐 내가 해석해봤다.
1 : User commands
man-pages에는 GNU C 라이브러리가 제공하는 프로그램을 문서화 한 Section 1 페이지가 거의 포함되어 있지 않다.
2 : System Calls
리눅스 커널이 제공하는 시스템 콜에 대한 설명
3 : Library Functions
표준 C 라이브러리가 제공하는 라이브러리 함수에 대한 문서 ( 특별히 glibc, GNU C Library 에 초점을 맞춤)
4 : Devices
다양한 장치들에 대한 자세한 문서. 대부분이 /dev 안의 것들
5 : Files
/proc 파일 시스템인 proc(5) 을 포함한 다양한 파일 포맷들에 대한 설명.
7 : Overviews, conventions, and miscellaneous.
전체적으로 훑어보거나, 규약이나, 기타 잡다구리한 것들.
8 : Superuser와 시스템 관리자 명령어
man-pages는 주로 GNU C 라이브러리가 제공하는 프로그램을 문서화 한 Section 8 페이지가 거의 없다.
기특하게도, kernel.org에서는 man page를 온라인으로 제공하는 프로젝트가 있다.
url은 다음과 같다.
'개발자의 기록 노트 > Linux' 카테고리의 다른 글
[리눅스/커널] 커널에서 자주 사용되는 매크로 : likely( ) / unlikely( ) (1) | 2012.11.23 |
---|---|
[모듈 삽입 에러] unknown symbol in module (0) | 2012.10.26 |
리눅스에서의 세마포어 (Semaphores in Linux) (0) | 2012.10.07 |
[Ubuntu 12.04] GRUB : 부트로더 환경설정 (1) | 2012.10.02 |
[우분투] Ubuntu 12.04 에 JDK7 설치하기 (0) | 2012.09.15 |
Kprobes 사용하기 [2] : 시스템콜에 probe 삽입하기 (0) | 2012.09.12 |