C
운영체제//Lesson 01

운영체제 — 컴퓨터의 보이지 않는 지휘자

30분·theory

운영체제 — 컴퓨터의 보이지 않는 지휘자

🎯 이 lesson 을 읽고 나면

이 lesson 을 다 읽고 나면 아래 3가지를 자신 있게 할 수 있습니다.

  • OS (Operating System — 컴퓨터의 자원을 관리하는 기본 소프트웨어) 동작 한 줄 설명
  • 프로세스 (실행 중인 프로그램 단위) · 스레드 (한 프로세스 안의 작은 실행 단위) 가 성능에 미치는 영향
  • 메모리·GC (Garbage Collector — 안 쓰는 메모리 자동 회수) 면접 단골 질문

학습 목표를 체크리스트로 두고 다 답할 수 있게 되면 lesson 을 닫으세요.

💻 운영체제를 만든 사람들 — 4명 4컷

01
Ken Thompson켄 톰슨
Creator of UnixBell Labs → Google1943~현재

혼자 한 달 만에 Unix 첫 버전을 짠 사람 — 현대 OS 의 모든 시작

  • 1969 Bell Labs 에서 PDP-7 위에 Unix 첫 버전을 단 4주 만에 작성
  • 1971 Unix 1st Edition 공식 공개. 파이프·계층 파일시스템 등 핵심 개념 도입
  • 1983 Dennis Ritchie 와 공동 튜링상 — 'Unix 개발 공로'
  • 2007 Google 합류, Rob Pike 와 함께 Go 언어 공동 설계
Unix → BSD → Linux → macOS → Android. 현대 OS 의 공통 조상UNIX · OS 창시자
02
Dennis Ritchie데니스 리치
Co-creator of Unix · Creator of CBell Labs1941-2011

C 언어로 Unix 를 다시 짠 사람 — OS 와 언어, 두 표준을 동시에 만든 천재

  • 1972 C 언어 첫 버전 공개 — 후에 'OS 를 쓸 수 있는 고급 언어' 의 표준
  • 1973 Thompson 과 함께 Unix 를 C 로 재작성 → 이식성 폭발
  • 1978 Brian Kernighan 과 'The C Programming Language (K&R)' 출간
  • 1983 튜링상 + 1998 미국 국가기술훈장 수상
C 언어 + Unix — 모든 운영체제·임베디드·시스템 프로그래밍의 토대C & UNIX · 시스템의 아버지
03
Linus Torvalds리누스 토르발즈
Creator of Linux KernelHelsinki → OSDL → Linux Foundation1969~현재

헬싱키대 학부생이 취미로 시작한 OS — 35년 뒤 세계 서버의 96%가 그 위에서 돈다

  • 1991 헬싱키대 재학 중 Linux 0.01 공개. Minix 대안으로 시작
  • 1996 Linux 2.0 SMP 멀티프로세서 지원 — 본격 서버 진출
  • 2005 Git 을 단 2주 만에 작성 — Linux 커널 개발용 도구가 산업 표준 됨
  • 2024 Linux 가 클라우드 서버 96%·Android 75억 대·임베디드 전반에서 사용
Linux 커널 — 서버·클라우드·Android·임베디드의 공통 기반LINUX · 커널 창시자
04
Steve Wozniak스티브 워즈니악
Designer of Apple I & IIApple Computer (공동 창업)1950~현재

개인용 컴퓨터를 혼자 설계한 엔지니어 — '컴퓨터를 책상 위로' 가 그의 한 줄

  • 1976 Apple I 회로도·BASIC 인터프리터 직접 설계. Steve Jobs 와 Apple 공동 창업
  • 1977 Apple II 출시 — 컬러·키보드·내장 BASIC. 백만 대 판매로 PC 대중화
  • 1979 Apple II 용 Disk II 컨트롤러 단독 설계 — 단 8개 IC 로 구현한 전설
  • 1985 미국 국가기술훈장 수상 (Jobs 와 공동)
Apple I·II — 개인이 OS 를 직접 다룰 수 있는 시대를 연 하드웨어APPLE · 개인 컴퓨터의 토대
💻
한 줄
Thompson·Ritchie (Unix·C) → Torvalds (Linux) → Wozniak (Apple). 이 4명이 서버부터 개인 PC 까지 OS 의 모든 흐름을 만들었다.

왜 운영체제를 알아야 하는가

한 줄: 모든 코드는 OS (운영체제) 위에서 동작. 프로세스·메모리·파일·I/O (Input/Output — 디스크·네트워크 입출력) 가 곧 성능의 한계.


도구 매핑 — 각 칸의 영어는 개념/도구 이름일 뿐, 옆 설명만 보세요

영역핵심 개념
프로세스 (실행 중인 프로그램 단위)PID · fork · 컨텍스트 스위칭 (프로세스 번호 · 복제 · CPU 가 작업을 바꿔치는 동작)
스레드 (한 프로세스 안의 작은 실행 단위)mutex · semaphore · race condition (동시 접근 막는 자물쇠 · 신호등 · 순서 꼬임 버그)
메모리가상메모리 · 페이징 · OOM (실제 RAM 보다 큰 메모리 흉내 · 조각 관리 · 메모리 부족)
파일시스템inode · ext4 · NTFS · APFS (파일 정보 단위 · 리눅스·윈도우·맥 파일 저장 방식)
스케줄링CFS · O(1) · 실시간 (어느 프로세스를 언제 CPU 에 올릴지 결정하는 규칙)
비동기 I/Oepoll · kqueue · io_uring (많은 입출력을 기다리지 않고 한꺼번에 처리하는 기능)

5가지 핵심 이유

이유의미
프로세스 vs 스레드동시성 모델의 선택. 코드 1 줄 차이 = 10 배 성능
컨텍스트 스위칭 (CPU 가 작업을 바꿔치는 비용)비싸다. 스레드 수가 많을수록 손해
가상메모리OOM (Out Of Memory) Killer 가 내 프로세스 죽이는 이유
파일 디스크립터 (file descriptor — 열린 파일·소켓을 가리키는 번호)'too many open files' 에러의 진짜 원인
블로킹 vs 논블로킹Node.js·Go·Rust 가 빠른 이유의 근본 — 기다리지 않고 다음 일 처리

핵심: OS 모르면 Heisenbug (가끔만 재현되는 버그) 디버깅에 주 단위 소요. 알면 분 단위 해결.

🤖 AI 에게 이렇게 요청해보세요

이 lesson 의 개념을 알면 AI 에게 구체적으로 지시할 수 있습니다. 토큰(AI 가 한 번에 처리하는 글자 단위) 절약의 출발점입니다.

  • "이 Node.js 앱의 syscall (system call — 프로그램이 커널에 요청하는 함수) 추적을 strace 로 실행하는 명령어 + 출력 해석 가이드."
  • "이 코드가 사용자 공간 / 커널 공간 (user/kernel space — 일반 프로그램 영역 vs OS 핵심 영역) 어느 쪽 비용 큰지 진단해줘."
  • "이 멀티스레드 코드의 race condition (여러 스레드가 같은 데이터에 동시에 접근해서 결과가 꼬이는 버그) 가능성 점검 + lock 적용해줘."

왜 이게 토큰을 줄이나

"프로세스·스레드·syscall" 같은 OS 어휘를 알면 AI 가 진단 + 해결 을 한 번에 줍니다. 기초 모르면 "우선 OS 가 어떻게..." 부터 시작.

운영체제 - 운영체제