Search
Duplicate
📄

man

간단소개
팔만코딩경 컨트리뷰터
ContributorNotionAccount
주제 / 분류
Linux
태그
Scrap
8 more properties
특정 명령이나 자원들의 메뉴얼을 출력하는 명령어.
오프라인 환경에서 검색이 불가능한 상황에서 활용하기 좋다.
# man page 경로 $ ls /usr/share/man man1 man2 man3 man4 man5 man6 man7 man8 man9 man3lua mandoc.db # man 명령어 $ man man $ man -k 키워드 # 키워드가 포함된 모든 메뉴얼 $ man -f 키워드 # 키워드가 일치하는 메뉴얼 목록 $ man -w 키워드 # 키워드의 '메뉴얼 페이지' 위치 정보 $ man 2 키워드 # 시스템 콜 영역의 메뉴얼 페이지 $ man 3 키워드 # 라이브러리 함수 영역의 메뉴얼 페이지
Shell
Section
주요 내용
예시
man1
General Commands
ls, cp, chmod, ...
man2
System Call
open, read, write, ...
man3
Library Functions
stdio.h
man4
Kernel Interface
장치, 드라이버, FIFO, socket, /dev 내의 형식 관련 규약 등
man5
File Format
파일 포맷 규칙 /etc/passwd, /etc/shadow, xinetd.conf 등
man6
Games
man7
Miscellaneous Information
리눅스 시스템 파일 관련 표준, 규칙, 프로토콜, 문자셋, 시그널 목록 등
man8
System Manager
root가 사용하는 시스템 관리 관련 명령어
man9
Kernel Developler
리눅스 커널 루틴
$ ls /usr/include $ vi /usr/include/stdio.h # 함수 목록 확인 $ man 3 printf # 함수 용법 확인
Shell

System Call(2) vs Library Call(3)

시스템 콜(System Call) 이란?
프로세스의 실행, 종료 및 I/O 작업 등 사용자가 함부로 사용하면 문제가 될 명령들을 사용하기 위해서는 OS가 제공하는 함수
시스템 콜 세부 동작 원리
System Call
Library Call
커널 모드에서 동작 시스템 메모리 접근 가능
사용자 모드에서 동작 하드웨어 직접 접근 불가능
모든 CPU 명령 실행 가능
사용자 애플리케이션 실행 가능 시스템 콜 호출 시 일시적으로 커널 모드 전환

시스템 콜 비교

Windows
Unix
프로세스 제어
CreateProcess() WaitForSingleObject() ExitProcess()
fork() wait() exit()
파일 관리
CreateFile() ReadFile() WriteFile() CloseHandle()
open() read() write() close()
장치 관리
SetConsoleMode() ReadConsole() WriteConsole()
ioctl() read() write()
정보 관리
GetCurrentProcessID() SetTimer() Sleep()
getpid() alarm() sleep()
통신
CreatePipe() CreateFileMapping() MapViewOfFile()
pipe() shm_open() mmap()
보안
SetFileSecurity() InitlializeSecurityDescriptor() SetSecurityDescriptorGroup()
chmod() umask() chown()

참고