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 계보 — UNIX(1969) → BSD · Linux · Darwin(macOS) · Windows NT
OS커널조상특징
LinuxLinux(1991, Torvalds)UNIX 영감, 재구현오픈소스, 서버·안드로이드 지배
macOSDarwin = Mach + BSDUNIX 직계(BSD)Homebrew·터미널 Linux와 유사
iOS / watchOSDarwin같은 뿌리macOS와 커널 공유
AndroidLinux 커널UNIX 친척유저공간은 독자(ART·Bionic)
WindowsWindows 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는 같은 커널을 공유한다.