본문으로 건너뛰기
0
r/jeffnews HN 약 3분

1년간 OS를 밑바닥부터 만든 개발자 — 부트로더에서 Doom 포팅까지

open-source

요약

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의 마일스톤 중 마일스톤이라 할 수 있음

💡

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

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

핵심 포인트

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

인사이트

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

댓글

댓글

댓글을 불러오는 중...

open-source

RK3588 GPU 안에 숨어있는 Cortex-M7 MCU를 뜯어보고 Rust/gdb/MicroPython까지 올려본 이야기

RK3588의 Mali-G610 GPU 내부에 990MHz로 동작하는 Cortex-M7 MCU가 있으며, 이 펌웨어가 커널 대신 GPU 작업을 관리함. 메모리 접근의 3단 계층 구조, 인터럽트 시스템, 펌웨어 이미지 포맷을 분석하고, 실제로 Rust 정적 라이브러리, gdb 디버깅, MicroPython까지 MCU 위에서 구동하는 과정을 상세히 다룸.

open-source

오픈소스가 전부를 줬고, 줄 것이 남지 않을 때까지 — Requests 창시자의 고백

Python Requests 라이브러리 창시자 Kenneth Reitz가 오픈소스가 준 커리어, 정체성, 그리고 진단되지 않은 양극성 장애와 맞물린 정신건강 위기를 솔직하게 회고한 에세이.

open-source

IBM Z/LinuxONE 오픈소스 2월 리포트 — Cassandra부터 Terraform까지 27개 검증

IBM이 s390x 메인프레임에서 27개 오픈소스 소프트웨어 호환성을 검증한 월간 리포트. upterm, Python websockets 등이 새로 s390x 지원을 시작했고, Open Mainframe Project가 Mainframe Software Hub를 발표함.

open-source

2026년인데 아직도 VNC + 프로프라이어터리 EDA — 반도체 업계의 도구 현실

반도체 업계의 EDA 도구가 Cadence, Synopsys, Siemens 과점 하에 여전히 폐쇄적인 현실을 짚으면서, AI가 이 구조를 바꿀 수 있는 변곡점에 왔다고 주장하는 글.

open-source

GrobPaint: MS Paint와 Paint.NET 사이를 노리는 가벼운 이미지 에디터

Paint.NET이 macOS에서 안 돌아가는 갭을 메우는 경량 이미지 에디터. 레이어, 블렌드 모드, 선택 도구 등을 바닐라 JS 5,000줄 + Python 백엔드로 구현. npm/번들러/빌드 스텝 없음.