2025.07.06F·157Hard Link vs Symbolic Link: 바로가기 만들다 맥북 날릴 뻔한 썰
파일 복사(Copy)와 링크(Link)의 차이를 몰라 디스크 용량을 2배로 낭비했던 흑역사. Inode의 개념부터 `rm` 명령어의 비밀, 그리고 npm과 pnpm이 링크를 활용하는 방법까지.
OSLinuxFileSystem
→2025.07.05F·156CPU 스케줄링: 운영체제는 어떻게 공평함을 연기하는가? (FCFS부터 Linux CFS까지)
CPU는 하나인데 프로그램은 수십 개 실행됩니다. 운영체제가 0.01초 단위로 프로세스를 교체하며 '동시 실행'의 환상을 만드는 마술. 선점형 vs 비선점형, 기아 현상(Starvation), 그리고 현대적 해법인 MLFQ를 파헤칩니다.
CSOSScheduling
→2025.06.25F·149동시성(Concurrency)과 병렬성(Parallelism): 헷갈리지 말자 (대규모 업데이트)
요리사 한 명이 멀티태스킹을 하는 것과 요리사 두 명이 일하는 것의 차이. 스레드, 프로세스, 그리고 Python의 GIL 문제까지.
CSOSThread
→2025.05.18Y·01버퍼 오버플로우(Buffer Overflow): 컵에 물이 넘치면 생기는 일
C언어의 strcpy 하나가 어떻게 전체 시스템 권한을 탈취하게 만들까요? 스택 오버플로우 공격의 원리와 이를 막기 위한 ASLR, Canary, NX Bit 같은 방어 기법들을 파헤쳐봤습니다.
SecurityCMemory
→2025.03.25F·60WSL(Windows Subsystem for Linux): 윈도우의 역습
개발자는 무조건 맥(Mac)을 써야 한다? 그건 WSL2가 나오기 전 이야기입니다. 윈도우 안에 리눅스 커널 심기.
CSOSWindows
→2025.03.24F·59실시간 운영체제(RTOS): 시간이 생명인 시스템
윈도우 업데이트 때문에 에어백이 늦게 터진다면? 빠르다는 뜻이 아닙니다. '예측 가능하다'는 뜻입니다.
CSOSRTOS
→2025.03.21F·58하이퍼바이저: Type 1 vs Type 2
가상 머신들의 조율자. 사장님이 직접 운영하느냐(Type 1), 매니저를 두느냐(Type 2)의 차이.
CSOSVirtualization
→2025.03.20F·57가상화(Virtualization): 하나의 물리 자원을 여러 논리 자원으로
내 맥북 안에 윈도우와 리눅스를 동시에 띄우는 법. 클라우드 컴퓨팅(AWS)의 기반 기술.
CSOSVirtualization
→2025.03.18F·56저널링 파일 시스템: 안전한 쓰기
파일 복사 중에 코드가 뽑히면 어떻게 될까? 데이터 깨짐을 막기 위한 OS의 로그 기록 습관.
CSOSFileSystem
→2025.03.17F·55아이노드(inode): 유닉스 파일의 메타데이터
리눅스에서 파일 이름은 껍데기에 불과하다. 진짜 주인은 주민등록번호(inode number)다. ls -i의 비밀.
CSOSFileSystem
→2025.03.16F·54파일 시스템: 데이터를 조직하는 방법
하드디스크는 그저 0과 1이 적힌 거대한 운동장입니다. 여기에 '파일'과 '폴더'라는 개념을 입히는 마법.
CSOSFileSystem
→2025.03.15F·53스래싱: 페이지 폴트의 악순환
컴퓨터가 멈췄다. 마우스는 움직이는데 클릭이 안 된다. 하드디스크는 쉴 새 없이 긁고 있다. 이것이 스래싱이다.
CSOSMemory
→2025.03.14F·52페이지 교체 알고리즘: FIFO, LRU, LFU
책상(RAM)이 꽉 찼을 때 어떤 책을 버려야 할까? 가장 오래된 것? 가장 안 본 것? OS의 선택장애 해결법.
CSOSMemory
→2025.03.13F·51세그먼테이션: 논리적 단위로 메모리 분할
페이징이 기계적인 난도질이라면, 세그먼테이션은 의미 있는 정리정돈입니다. 코드, 데이터, 스택으로 나눠서 관리하기.
CSOSMemory
→2025.03.12F·50페이징: 고정 크기 블록으로 메모리 분할
메모리를 바둑판처럼 똑같은 크기로 잘라서 관리하자. 외부 단편화를 해결한 현대 OS의 표준 기술.
CSOSMemory
→2025.03.11F·49메모리 관리: 연속 할당과 분산 할당
내 서버는 왜 걸핏하면 뻗을까? OS가 한정된 메모리를 쪼개 쓰는 처절한 사투. 단편화(Fragmentation)와의 전쟁.
CSOSMemory
→2025.03.10F·48IPC(Inter-Process Communication): 프로세스 간 통신
프로세스는 서로 격리되어 있습니다. 근데 어떻게 크롬 브라우저 탭끼리 데이터를 주고받을까요? 파이프부터 소켓까지.
CSOSIPC
→2025.03.09F·47경쟁 상태(Race Condition): 타이밍에 따른 버그
코드는 완벽한데 가끔씩 돈이 사라집니다. 타이밍 이슈가 만드는 최악의 버그.
CSOSConcurrency
→2025.03.08F·46세마포어 vs 뮤텍스 (Semaphore vs Mutex): 동기화의 모든 것
화장실 키(Mutex)와 레스토랑 대기표(Semaphore)로 이해하는 동기화. 이진 세마포어와 뮤텍스의 결정적 차이(소유권), 스핀락, 모니터, 그리고 우선순위 역전 문제까지.
CSOSConcurrency
→2025.03.07F·45교착 상태(Deadlock): 멈춰버린 컴퓨터와 철학자들의 침묵 (완전정복)
스레드가 서로를 영원히 기다리는 현상, 데드락. 식사하는 철학자 문제부터 은행원 알고리즘, 리소스 할당 그래프, 분산 시스템에서의 데드락 탐지(Chandy-Misra-Haas)까지 심층 분석합니다.
CSOSDeadlock
→2025.03.04F·44문맥 전환(Context Switching): CPU가 딴짓을 할 때 생기는 엄청난 비용 (완전정복)
CPU 스위칭 비용은 왜 비쌀까요? 캐시 오염, TLB 초기화, 커널 모드, vmstat 튜닝, 그리고 리눅스 커널 내부의 switch_to 매크로까지. 성능 최적화의 끝판왕.
CSOSContextSwitch
→2025.03.03F·43프로세스 vs 스레드: 공장과 일꾼 (완전정복)
서비스 장애 현장에서 반드시 알아야 할 핵심. '프로세스 안의 스레드'만으로는 부족합니다. 공장과 일꾼 비유, 크롬의 멀티 프로세스 구조, fork()와 pthread, 그리고 그린 스레드와 고루틴까지 심층 분석합니다.
CSOSProcess
→2025.03.02F·42데몬(Daemon) 프로세스: 보이지 않는 일꾼
악마(Demon)가 아닙니다. 그리스 신화의 '수호신'입니다. 백그라운드에서 묵묵히 일하는 서버의 영웅들.
CSOSLinux
→2025.03.01F·41리눅스 권한 체계: chmod와 chown
chmod 777을 치면 해결된다는 선배의 조언, 사실 엄청 위험한 짓이었습니다. rwx와 숫자의 비밀.
CSOSLinux
→2025.02.28F·40터미널 에뮬레이터와 TTY: 검은 화면의 정체
우리가 쓰는 iTerm2는 진짜 터미널이 아닙니다. 가짜(Emulator)입니다. 텔레타이프(TTY) 시절의 유물부터 PTY까지.
CSOSTerminal
→2025.02.27F·39쉘(Shell): 껍데기 주제에 명령하지 마라
쉘은 운영체제의 핵심이 아닙니다. 단지 사용자의 명령을 커널에 전달하는 '메신저'일 뿐입니다. zsh, bash가 하는 진짜 역할.
CSOSShell
→2025.02.25F·38시스템 콜(System Call): 커널에게 부탁하는 방법
개발자가 직접 하드디스크를 제어할 수 없습니다. 대신 API를 통해 커널에게 '부탁'해야 합니다. 그 부탁의 정체가 바로 시스템 콜입니다.
CSOSSystemCall
→2025.02.24F·37유저 모드 vs 커널 모드: 이중 보호 장치
개발자가 만든 프로그램이 커널 모드에 진입하려고 하면 CPU가 막아섭니다. 왜 컴퓨터는 모드를 두 개로 나눴을까요?
CSOSSecurity
→2025.02.23F·36커널(Kernel): 운영체제의 심장
운영체제라는게 사실 프로그램들의 집합이라면, 그 중에서도 가장 핵심이 되는 녀석은 누구일까요? 항상 메모리에 상주하는 커널의 정체.
CSOSKernel
→2025.02.22F·35운영체제(OS)란: 하드웨어와 사용자 사이의 중재자
OS가 없으면 우리는 하드디스크의 몇 번째 섹터에 0과 1을 써야 할지 직접 계산해야 합니다. 리눅스와 윈도우가 대신 해주는 일들.
CSOSSoftware
→2025.02.11F·24인터럽트(Interrupt): CPU를 깨우는 알람
CPU가 100% 바쁠 때 마우스를 움직이면 반응할까요? 폴링(Polling) vs 인터럽트(Interrupt). 엄마가 피자 다 됐다고 소리치는 이유.
csoshardware
→2025.02.09F·22가상 메모리와 스왑: 책상이 작을 때 쓰는 속임수
8GB 램으로 어떻게 10GB짜리 게임을 돌릴까요? OS가 몰래 쓰는 하드디스크의 일부, 스왑(Swap)과 가상 메모리의 원리.
csosmemory
→2025.01.25X·01부팅 과정(Boot Process): 전원 버튼부터 로그인 화면까지
컴퓨터의 전원을 켜면 내부에서 무슨 일이 일어날까? BIOS vs UEFI, MBR vs GPT, GRUB, Kernel, Init, Systemd까지 리눅스 부팅의 6단계와 트러블슈팅 가이드를 상세히 해부합니다.
OSLinuxBooting
→