---
title: "1년간 OS를 밑바닥부터 만든 개발자 — 부트로더에서 Doom 포팅까지"
published: 2026-03-19T23:35:02.000Z
canonical: https://jeff.news/article/736
---
# 1년간 OS를 밑바닥부터 만든 개발자 — 부트로더에서 Doom 포팅까지

MONOLITH이라는 OS를 처음부터 만든 1년간의 개발 일지. GDT/IDT 초기화부터 시작해 메모리 관리, 유저스페이스, IPC, 데스크톱 환경까지 구현하고 최종적으로 Doom 포팅에 성공함.

## 1년간 OS를 직접 만들어본 개발자의 여정

- MONOLITH이라는 이름의 OS를 처음부터(from scratch) 만든 1년간의 개발 일지임. 학습 목적의 프로젝트인데, 12개월 만에 데스크톱 환경까지 올리고 Doom까지 포팅한 게 인상적임

## 초반 3개월: 부트부터 가상 메모리까지

- 첫 달에 multiboot2 프로토콜로 부팅 → GDT/IDT 초기화 → 물리 메모리 관리자 → 힙 할당자 → VGA 콘솔까지 구현. 거의 매일 커밋한 셈
- i386 아키텍처 지원과 VESA 비디오 드라이버까지 추가했는데, 3개월째에 과감하게 i386과 텍스트 VGA 모드를 드롭하고 Limine 부트 프로토콜로 전환함
- 2개월째는 대학 일정과 동기부족으로 진전이 없었다고 솔직하게 적어둠 (이런 솔직함이 좋음)

## 중반 4-8개월: 유저스페이스의 탄생

- VFS + tmpfs 구현 → initrd → ELF 로더 순서로 진행해서, 5개월째에 드디어 ring-3(유저스페이스)와 syscall 지원이 들어감
- microui 데모를 포팅한 게 재밌는 포인트. 커널 위에서 GUI가 돌아가기 시작한 순간임
- 7개월째에 태스크 스위칭을 시도했는데 본인도 "반쪽짜리(half-baked)"라고 인정함
- 8개월째에 GitHub에서 Codeberg로 이전하고, 유저스페이스 libc와 프로세스 크래시 핸들링을 구현함

## 후반 9-12개월: 데스크톱 환경과 Doom

- **Claude Opus 4.5로 데스크톱 환경 프로토타이핑**을 했다는 부분이 눈에 띔. AI로 OS 개발을 가속한 사례
- 프로세스 간 주소 공간 분리, malloc/realloc/free, 이벤트 폴링 기반 입력 처리 등 유저스페이스 인프라를 착실하게 쌓아감
- IPC 구현 → 공유 메모리 → libdesktop 윈도우 프로토콜 순서로 데스크톱 기반을 만들고
- **12개월째에 Doom 포팅 성공** — 자작 OS의 마일스톤 중 마일스톤이라 할 수 있음

> [!TIP]
> 프로젝트가 Codeberg에 올라가 있으니, OS 개발에 관심 있으면 타임라인 따라가며 커밋 히스토리를 보는 것도 좋은 학습 자료가 될 듯.

- 대학 다니면서 사이드 프로젝트로 이 정도를 해냈다는 게 핵심. "OS 개발 해보고 싶다"는 막연한 생각을 실제로 실행에 옮긴 좋은 사례임

## 핵심 포인트

- 12개월 만에 부트로더 → 데스크톱 환경 → Doom 포팅까지 달성
- Claude Opus 4.5를 활용해 데스크톱 환경 프로토타이핑
- 대학 다니면서 사이드 프로젝트로 진행한 학습 목적 OS

## 인사이트

OS 개발이라는 거대한 프로젝트도 매일 조금씩 커밋하면 1년 안에 Doom이 돌아가는 수준까지 올 수 있다는 걸 보여주는 사례
