이 레슨과 관련된 학습 키워드
컴퓨터 과학 & 프로그래밍 — 문제 해결의 도구 → C 프로그래밍 — 하드웨어에 가장 가까운 언어 → C 프로그래밍 — 하드웨어에 가장 가까운 언어 → 시스템 프로그래밍
fork/exec/wait, pipe, signals, file descriptors, IPC, errno, daemon processes.
1// C 표준 라이브러리 함수 vs 시스템 콜2printf("hello\n"); // C 라이브러리 → 내부적으로 write() 호출3write(1, "hello\n", 6); // POSIX 시스템 콜 직접 호출| 분류 | 예시 |
|---|---|
| 프로세스 | fork, exec, wait, exit |
| 파일 | open, read, write, close |
| 디렉토리 | mkdir, rmdir, chdir |
| 네트워크 | socket, bind, listen, accept |
| 시그널 | kill, signal, sigaction |
| 메모리 | mmap, brk |
시스템 콜은 사용자 프로그램이 운영체제에 서비스를 요청하는 인터페이스예요.
파일 열기, 프로세스 생성, 네트워크 통신 등이 모두 시스템 콜이에요.
유저 모드에서 커널 모드로 전환되는 비용이 있어요.
libc의 printf도 내부적으로 write 시스템 콜을 호출해요.
POSIX 표준이 유닉스 계열 시스템 콜의 인터페이스를 정의해요.
시스템 콜 번호는 OS마다 다르지만 래퍼 함수의 이름은 표준화되어 있어요.
strace(Linux)나 dtruss(macOS)로 시스템 콜을 추적할 수 있어요.
이번 레슨에서 프로세스, 파이프, 시그널 등 핵심 시스템 프로그래밍을 배워요.