topic★★★★★난이도 · 약 20분
OS는 무엇이고, macOS/Linux/Windows는 왜 사촌인가
커널의 역할 · UNIX(1969)→BSD·Linux·Darwin·NT 계보 · 시스템콜 · 유저공간/커널공간.
#OS#커널#UNIX#Linux#Darwin#syscall
왜 배우는가
macOS·Linux에서 `ls`·`grep`·`curl`이 비슷하게 생긴 건 우연이 아니라 공통 조상(UNIX) 때문. 이 사실 하나만 알아도 WSL·Git Bash·Homebrew가 왜 필요한지 즉시 이해된다.
OS의 일은 중재다. 수십 개 프로그램이 하나의 CPU·RAM·디스크·네트워크 카드를 놓고 싸우지 않도록 순서와 할당을 정한다. 그 중재자의 심장이 커널(kernel)이다.
| 구획 | 누구 | 권한 |
|---|---|---|
| 커널 공간 | 커널 코드 | 하드웨어 직접 접근, 메모리 전부 읽기/쓰기 |
| 유저 공간 | 내 앱(Claude·Node·브라우저) | 제한된 메모리·파일만, 하드웨어는 커널에 부탁 |
| 경계 | 시스템콜(syscall) | `open/read/write/fork/execve` 등 |
시스템콜(syscall)은 유저 앱이 커널에게 "이 파일 좀 읽어주세요"라고 부탁하는 공식 창구다. 예: `fs.readFile()` → libc `read()` → 커널 `sys_read` → 디스크 컨트롤러 → 결과 돌려받기. 모든 I/O는 결국 syscall.
| OS | 커널 | 조상 | 특징 |
|---|---|---|---|
| Linux | Linux(1991, Torvalds) | UNIX 영감, 재구현 | 오픈소스, 서버·안드로이드 지배 |
| macOS | Darwin = Mach + BSD | UNIX 직계(BSD) | Homebrew·터미널 Linux와 유사 |
| iOS / watchOS | Darwin | 같은 뿌리 | macOS와 커널 공유 |
| Android | Linux 커널 | UNIX 친척 | 유저공간은 독자(ART·Bionic) |
| Windows | Windows NT | 독자(VMS 영향) | 세계 최대 데스크톱 점유 |
macOS·Linux가 명령어를 공유하는 이유는 POSIX 표준과 공통 UNIX 혈통. Windows는 뿌리가 다르므로 `ls` 대신 `dir`, `\` 대신 `/`. 그래서 개발 편의로 WSL(Linux 커널을 Windows 안에)이나 Git Bash(MinGW 기반 유닉스 도구 모음)를 쓴다.
bash
# 내 OS 종류 확인
uname -a # Mac/Linux: Darwin ... / Linux ...
ver # Windows PowerShell
$PSVersionTable # PowerShell 상세
# 내 컴퓨터가 쓰는 syscall 감시 (Linux)
strace -e openat,read,write curl https://example.com
# → 커널과의 대화 로그가 줄줄이 찍힘
# macOS
sudo dtruss -t read curl https://example.com
# Windows
# Process Monitor (procmon) 도구로 GUI 관찰바이브코더가 매번 쓸 일은 없지만, 한 번 직접 보면 "내 코드가 진짜로는 OS에 수많은 부탁을 하고 있다"는 감각이 생긴다.
실기 드릴 2문항
edit실기 드릴 · 단답형
유저 앱이 커널 기능을 요청하는 공식 창구 이름은?
check_circle실기 드릴 · OX
macOS와 Linux는 같은 커널을 공유한다.