DEV 2026.05.02 · 16 min
Intermediate Linux For Backend Deep Dive · 1
Linux 프로세스 모델은 왜 이렇게 설계됐는가
주소 공간 레이아웃과 PCB부터 CoW, 스레드 모델, 컨텍스트 스위칭, 시그널, CFS 스케줄러까지 — 백엔드 개발자가 알아야 할 리눅스 프로세스 설계 철학을 추적한다.
총 7편 · 순서대로 읽기를 권장
주소 공간 레이아웃과 PCB부터 CoW, 스레드 모델, 컨텍스트 스위칭, 시그널, CFS 스케줄러까지 — 백엔드 개발자가 알아야 할 리눅스 프로세스 설계 철학을 추적한다.
가상 메모리와 Page Table 변환부터 Page Fault, Page Cache, mmap/O_DIRECT, 메모리 할당기 단편화, OOM Killer까지 — 백엔드 서비스 메모리 트러블슈팅의 전체 지형을 추적한다.
파일 디스크립터의 정체부터 epoll의 O(1) 이벤트 처리까지, Blocking/Non-Blocking/Multiplexing I/O의 설계 결정과 백엔드 프레임워크 선택의 근거를 추적한다.
VFS 추상화부터 fsync 내구성 보장까지, 리눅스 파일 I/O 스택의 다섯 개 레이어가 공유하는 하나의 원칙을 추적한다.
send() 반환이 전송 완료가 아닌 이유부터 Zero Window, Accept Queue 포화, TCP_NODELAY, sendfile()까지 — 커널이 데이터를 움직이는 실제 경로를 추적한다.
namespace로 프로세스 공간을 나누고, cgroups로 자원을 묶고, iptables로 네트워크를 꺽는 방식까지 — 컨테이너를 구성하는 커널 메커니즘의 전체 구조를 추적한다.
top의 us/sy/wa부터 소켓 상태, iostat, strace, perf Flame Graph까지 — 백엔드 서버 병목의 실체를 커널 수준에서 추적한다.