# Principia Softwarica

> Clean Markdown view of GeekNews topic #29244. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=29244](https://news.hada.io/topic?id=29244)
- GeekNews Markdown: [https://news.hada.io/topic/29244.md](https://news.hada.io/topic/29244.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2026-05-07T09:08:47+09:00
- Updated: 2026-05-07T09:08:47+09:00
- Original source: [principia-softwarica.org](https://principia-softwarica.org/)
- Points: 1
- Comments: 1

## Topic Body

- **Principia Softwarica**는 [Plan 9 from Bell Labs](https://en.wikipedia.org/wiki/Plan_9_from_Bell_Labs)의 커널, 셸, 윈도 시스템, 컴파일러, 링커, 에디터, 브라우저, 디버거 소스 코드를 책으로 풀어 컴퓨터 내부 동작을 이해하도록 돕는 시리즈임
- 각 책은 소스 코드와 문서를 함께 담은 **리터레이트 프로그램(literate program)** 에서 만들어지며, 실제 코드와 책이 같은 문서에서 자동 생성됨
- 전체 시리즈는 **205,081 LOC**, **82,014 LOE**, **6,312쪽** 규모이고, 목표는 코드 한 줄마다 설명 한 줄을 대응시키는 LOE/LOC 1.0 달성임
- Plan 9는 전체 시스템이 **183K LOC**로 작고, 일관된 C 스타일과 “모든 것이 파일”, 프로세스별 네임스페이스, 네트워크 투명성 같은 아이디어를 균일하게 적용해 전체 운영체제를 설명 가능한 대상으로 만듦
- 프로젝트 소스는 [github.com/aryx/principia-softwarica](https://github.com/aryx/principia-softwarica)에 공개되어 있으며, [Getting Started](https://principia-softwarica.org/getting-started.html)는 Docker 또는 소스에서 Plan 9를 빌드하고 실행하는 방법을 제공함

---

### 프로젝트 개요
- **Principia Softwarica**는 프로그래머가 사용하는 핵심 시스템 프로그램의 전체 소스 코드를 자세히 풀어 컴퓨터 내부 동작을 이해하도록 돕는 책 시리즈임
- 모든 프로그램은 Unix의 후속으로 설계된 운영체제인 [Plan 9 from Bell Labs](https://en.wikipedia.org/wiki/Plan_9_from_Bell_Labs)에서 가져왔으며, 코드가 작고 우아하다는 점을 핵심 전제로 삼음
- 다루는 프로그램에는 **커널**, 셸, 윈도 시스템, 컴파일러, 링커, 에디터, 웹 브라우저, 디버거가 포함되며, 각 프로그램은 별도 책으로 구성됨
- 책은 구현을 해설하는 문서이면서 구현 그 자체이기도 함
  - 각 프로그램은 소스 코드와 문서를 함께 담은 [리터레이트 프로그램(literate program)](https://en.wikipedia.org/wiki/Literate_programming)에서 나오며, 실제 코드와 책이 모두 이 문서에서 자동 생성됨
  - 리터레이트 프로그래밍에 대한 별도 설명은 [more about literate programming](https://principia-softwarica.org/literate-programming.html)에 있음
- 프로젝트 소스는 [github.com/aryx/principia-softwarica](https://github.com/aryx/principia-softwarica)에 공개되어 있음

### 왜 필요한가
- ## 교육의 빈틈
  - 터미널 창에서 `ls`를 입력하면 무슨 일이 일어나는지에 대한 답은 셸, C 라이브러리, 커널, 그래픽 스택, 윈도 시스템을 모두 거침
  - Keith Adams는 Facebook 동료였고 이후 Slack Chief Architect가 되었으며, 이 질문을 인터뷰 질문으로 사용했음. 전체 추적은 [The Journey of `ls`](https://principia-softwarica.org/ls-journey.html)에 있음
  - 오늘날 “풀스택”은 보통 React, Node, 클라우드를 뜻하지만, 실제 하부 스택에는 **컴파일러**, 링커, 커널, 시스템 호출이 있음
  - 시스템 프로그램의 개념을 설명하는 훌륭한 교과서는 있지만, 실제 소스 코드를 보여주는 자료는 거의 없으며 Principia Softwarica가 이 간극을 메우려 함
- ## AI 시대의 중요성
  - AI 코딩 도구는 Principia Softwarica가 설명하는 `grep`, `sed`, `diff`, `awk`, `gcc`, `ld` 같은 프로그램을 하루에 수백 번 실행함
  - 코딩 업무에서 코드 작성이 20%이고 이해가 80%라면, AI가 20%를 맡을수록 코드가 실제로 무엇을 하는지 하드웨어까지 내려가 이해하는 80%가 더 중요해짐
  - 기계가 딥러닝을 거쳤으니 인간도 깊게 배워야 한다는 문제의식이 깔려 있음

### 책과 범위
- 전체 시리즈는 **205,081 LOC**, **82,014 LOE**, **6,312쪽** 규모이며, 전체 LOE/LOC 비율은 **0.40**임
- LOC는 코드 줄 수, LOE는 설명 줄 수, Pages는 조판된 페이지 수를 뜻함
- 목표는 모든 책에서 **LOE/LOC 1.0**을 달성해 코드 한 줄마다 설명 한 줄을 대응시키는 것임
  - 녹색은 0.75 이상으로 목표에 가까움
  - 노란색은 0.50 이상으로 진행 중임
  - 주황색은 0.25 이상으로 아직 상당한 집필이 남아 있음
  - 빨간색은 0.25 미만으로 아직 대부분 코드이고 설명이 적음
- ## 핵심 시스템
  - [Kernel](https://aryx.github.io/assets/pdfs/Kernel-12.pdf): [9pi](https://github.com/aryx/principia-softwarica/tree/master/kernel), 35,528 LOC, 11,601 LOE, 1,083쪽
  - [Core libraries](https://aryx.github.io/assets/pdfs/Libcore-4.pdf): [libc](https://github.com/aryx/principia-softwarica/tree/master/lib_core/libc), [libthread](https://github.com/aryx/principia-softwarica/tree/master/lib_core/libthread), [libbio](https://github.com/aryx/principia-softwarica/tree/master/lib_core/libbio), [libflate](https://github.com/aryx/principia-softwarica/tree/master/lib_strings/libflate), [libregexp](https://github.com/aryx/principia-softwarica/tree/master/lib_strings/libregexp), 20,490 LOC, 7,396 LOE, 641쪽
  - [Shell](https://aryx.github.io/assets/pdfs/Shell-9.pdf): [rc](https://github.com/aryx/principia-softwarica/tree/master/shells/rc), 6,534 LOC, 4,245 LOE, 249쪽
- ## 개발 툴체인
  - [C compiler](https://aryx.github.io/assets/pdfs/Compiler-5.pdf): [5c](https://github.com/aryx/principia-softwarica/tree/master/compilers/5c), [libcc](https://github.com/aryx/principia-softwarica/tree/master/compilers/cc), 18,700 LOC, 5,654 LOE, 569쪽
  - [Assembler](https://aryx.github.io/assets/pdfs/Assembler-7.pdf): [5a](https://github.com/aryx/principia-softwarica/tree/master/assemblers/5a), 3,570 LOC, 4,987 LOE, 179쪽
  - [Linker](https://aryx.github.io/assets/pdfs/Linker-10.pdf): [5l](https://github.com/aryx/principia-softwarica/tree/master/linkers/5l), 7,528 LOC, 6,142 LOE, 308쪽
- ## 개발자 도구
  - [Editor](https://aryx.github.io/assets/pdfs/Principia-10.pdf): [ed](https://github.com/aryx/principia-softwarica/tree/master/editors/ed), 1,597 LOC, 1,102 LOE, 46쪽
  - [Build system](https://aryx.github.io/assets/pdfs/Make-8.pdf): [mk](https://github.com/aryx/principia-softwarica/tree/master/builders/mk), 4,356 LOC, 4,959 LOE, 210쪽
  - [Debuggers](https://aryx.github.io/assets/pdfs/Debugger-3.pdf): [db](https://github.com/aryx/principia-softwarica/tree/master/debuggers/db), [acid](https://github.com/aryx/principia-softwarica/tree/master/debuggers/acid), [strace](https://github.com/aryx/principia-softwarica/tree/master/debuggers/tracers), [libmach](https://github.com/aryx/principia-softwarica/tree/master/debuggers/libmach), 14,895 LOC, 5,741 LOE, 465쪽
  - [Profilers](https://aryx.github.io/assets/pdfs/Profiler-4.pdf): [time prof tprof kprof stats iostats](https://github.com/aryx/principia-softwarica/tree/master/profilers), 3,921 LOC, 2,532 LOE, 149쪽
- ## 그래픽
  - [Graphics stack](https://aryx.github.io/assets/pdfs/Graphics-5.pdf): [libdraw](https://github.com/aryx/principia-softwarica/tree/master/lib_graphics/libdraw), [libmemdraw](https://github.com/aryx/principia-softwarica/tree/master/lib_graphics/libmemdraw), [libmemlayer](https://github.com/aryx/principia-softwarica/tree/master/lib_graphics/libmemlayer), [libimg](https://github.com/aryx/principia-softwarica/tree/master/lib_graphics/libimg), 18,528 LOC, 5,753 LOE, 562쪽
  - [Windowing system](https://aryx.github.io/assets/pdfs/Windows-8.pdf): [rio](https://github.com/aryx/principia-softwarica/tree/master/windows/rio), [libframe](https://github.com/aryx/principia-softwarica/tree/master/lib_gui/libframe), [libcomplete](https://github.com/aryx/principia-softwarica/tree/master/windows/libcomplete), [libplumb](https://github.com/aryx/principia-softwarica/tree/master/windows/libplumb), 8,825 LOC, 7,696 LOE, 362쪽
  - [GUI toolkit](https://aryx.github.io/assets/pdfs/Widgets-4.pdf): [libpanel](https://github.com/aryx/principia-softwarica/tree/master/lib_gui/libpanel), 3,749 LOC, 2,986 LOE, 170쪽
- ## 네트워킹과 기타 프로그램
  - [Network stack](https://aryx.github.io/assets/pdfs/Network-5.pdf): [libip](https://github.com/aryx/principia-softwarica/tree/master/lib_networking/libip), [lib9p](https://github.com/aryx/principia-softwarica/tree/master/lib_networking/lib9p), 19,769 LOC, 3,884 LOE, 578쪽
  - [Web browser](https://aryx.github.io/assets/pdfs/Browser-2.pdf): [mothra](https://github.com/aryx/principia-softwarica/tree/master/browsers/mothra), [webfs](https://github.com/aryx/principia-softwarica/tree/master/browsers/webfs), [hget webcookies uhtml resize](https://github.com/aryx/principia-softwarica/tree/master/browsers/misc), [tcs](https://github.com/aryx/principia-softwarica/tree/master/browsers/tcs), 12,949 LOC, 4,482 LOE, 384쪽
  - [CLI utilities](https://aryx.github.io/assets/pdfs/Utilities-2.pdf): [cat](https://github.com/aryx/principia-softwarica/tree/master/utilities/files), [ls](https://github.com/aryx/principia-softwarica/tree/master/utilities/files), [grep](https://github.com/aryx/principia-softwarica/tree/master/utilities/text/grep), [sed](https://github.com/aryx/principia-softwarica/tree/master/utilities/text/misc), [diff](https://github.com/aryx/principia-softwarica/tree/master/utilities/compare/diff), [tar](https://github.com/aryx/principia-softwarica/tree/master/utilities/archive/tar), [gzip](https://github.com/aryx/principia-softwarica/tree/master/utilities/archive/gzip), [bc dc hoc](https://github.com/aryx/principia-softwarica/tree/master/utilities/calc), [awk](https://github.com/aryx/principia-softwarica/tree/master/utilities/text/awk), 23,921 LOC, 2,082 LOE, 509쪽
  - [Emulator](https://aryx.github.io/assets/pdfs/Machine-6.pdf): [5i](https://github.com/aryx/principia-softwarica/tree/master/machine/5i), 3,176 LOC, 3,215 LOE, 143쪽

### Plan 9를 선택한 이유
- Plan 9는 전체 운영체제를 현실적으로 이해할 수 있을 만큼 작고, 일관된 C 스타일로 작성되어 있으며, 몇 가지 강력한 아이디어를 균일하게 적용함
  - 모든 것이 파일임
  - 프로세스별 네임스페이스를 사용함
  - 네트워크 투명성을 제공함
- macOS나 Windows만큼 화려하지는 않지만, 본질적으로 같은 핵심 서비스를 제공함
  - 프로세스와 메모리를 관리하는 커널
  - 윈도 시스템
  - 셸
  - 컴파일러
  - 네트워킹
  - 그래픽 애플리케이션
- 전체 Plan 9 시스템은 커널, 컴파일러, 셸, 윈도 시스템 등을 모두 포함해 **183K LOC**이며, **vim 350K LOC**보다 거의 2배 작음
- 400쪽짜리 책 한 권이 약 12K LOC를 다룬다고 보면, Principia Softwarica는 Plan 9 전체를 약 15권으로 다룰 수 있음
  - `gdb` 같은 단일 프로그램은 10배 많은 책이 필요함
  - `gcc`는 100배 많은 책이 필요함
- Wayland는 X11의 현대적 대체물이고 Clang은 GCC의 현대적 대체물이지만, “깨끗한 재작성”만으로 프로그램이 작아지지는 않음
- 처음부터 단순성을 목표로 설계한 Plan 9 접근이 모든 줄을 책으로 설명할 수 있게 만듦

### 배운 내용을 다른 시스템에 적용하는 방식
- Plan 9를 직접 사용할 필요는 없으며, 작고 우아한 운영체제 하나를 이해하면 Linux, macOS, Windows에 대한 직관을 얻을 수 있음
- 커널, 컴파일러, 링커, 셸, 에디터, 디버거, GUI 툴킷, 네트워크 스택은 모두 같은 근본 문제를 풀며, 코드가 5천 줄이든 50만 줄이든 문제의 본질은 같음
- Plan 9의 C 컴파일러를 읽으면 GCC를 탐색할 때 필요한 어휘를 얻을 수 있음
- Plan 9의 링커를 한 번에 이해하면 LLD의 재배치 처리가 압도적이지 않고 읽을 수 있는 대상이 됨
- `acid`가 심볼 테이블을 읽고 스택을 걷는 방식을 보면 GDB에서 무엇을 봐야 하는지 배울 수 있음
- 작은 구현은 큰 코드베이스에서 **본질적 복잡성**과 우발적 복잡성을 구분하는 작업 모델을 제공함
- Plan 9의 아이디어는 이미 널리 퍼져 있음
  - UTF-8은 Thompson과 Pike가 Plan 9를 위해 만들었음
  - `/proc`는 Plan 9에서 왔음
  - Docker와 컨테이너의 기반인 Linux namespaces는 Plan 9에서 왔음
  - Go는 Pike와 Thompson이 만들었고, goroutine은 Plan 9의 libthread에서 영감을 받음
  - 9P 프로토콜은 WSL2에서 사용됨
- Principia Softwarica가 설명하는 `grep`, `sed`, `awk`, `diff`, `cc`, `ld`는 프로그래머가 매일 쓰는 도구이며, 같은 개념이 Plan 9에서는 훨씬 더 명확하게 표현됨
- [plan9port](https://9fans.github.io/plan9port/)는 Plan 9 사용자 영역의 `grep`, `sed`, `awk`를 Linux와 macOS로 가져옴
- [goken9cc](https://github.com/aryx/goken9cc)는 Linux, macOS, Windows에서 Plan 9 C 툴체인을 사용해 해당 플랫폼용 네이티브 바이너리를 만들 수 있게 함

### 소스 코드와 실행
- [github.com/aryx/principia-softwarica](https://github.com/aryx/principia-softwarica) — Principia Softwarica에서 사용하는 Plan 9 코드와 리터레이트 프로그램
- [Getting Started](https://principia-softwarica.org/getting-started.html) — Docker 또는 소스에서 Plan 9를 빌드하고 실행하는 방법
- [The Journey of `ls`](https://principia-softwarica.org/ls-journey.html) — 간단한 명령이 시스템의 각 계층을 통과하는 추적과 책들이 서로 연결되는 방식

### OCaml 포트와 보조 도구
- 여러 권의 책을 쓴 뒤 일부 프로그램이 정적 타입 함수형 언어인 [OCaml](https://ocaml.org/)로 포팅됨
- 원래 동기는 C 코드를 더 잘 이해하기 위한 것이었음
  - 프로그램을 다른 언어로 옮기면 어떤 부분이 본질적이고 어떤 부분이 부수적인지 드러남
  - 포트의 버그는 원본에 숨어 있던 미묘한 부분을 드러냄
- OCaml 포트는 별도 프로젝트인 [XIX](https://aryx.github.io/xix/)로 발전했으며, OCaml 버전 도구를 다루는 자체 웹사이트와 리터레이트 프로그래밍 책 시리즈를 가짐
- [syncweb](https://github.com/aryx/syncweb) — 모든 책을 만드는 데 사용되는 리터레이트 프로그래밍 도구이며 Noweb의 후손임
- [goken9cc](https://github.com/aryx/goken9cc) — Linux, macOS, Windows에서 Plan 9를 빌드하기 위한 C 크로스 컴파일러이며 Kencc의 후손임

### 관련 작업과 차이
- [Project Oberon](https://people.inf.ethz.ch/wirth/ProjectOberon/)은 전체 운영체제를 컴파일러와 윈도 시스템을 포함한 전체 소스 코드와 함께 제시한다는 점에서 Principia Softwarica와 가장 정신적으로 가까움
  - Oberon은 Oberon 프로그램만 실행할 수 있어 Smalltalk처럼 아름답지만 고립된 자기완결 세계임
  - Plan 9과 Unix는 어떤 언어로 작성된 프로그램도 컴파일하고 실행할 수 있는 범용 시스템임
  - Oberon에는 네트워킹이 없고 커스텀 하드웨어에서 실행됨
  - Principia Softwarica는 실제 운영체제 위에서 컴파일러, 링커, 셸, 디버거, 그래픽, 네트워킹까지 더 넓은 범위를 다룸
- [The Elements of Computing Systems](https://www.nand2tetris.org/)는 Nand2Tetris로도 알려져 있으며, NAND 게이트에서 Tetris까지 컴퓨터를 구축함
  - 교육적으로 훌륭하지만 하드웨어와 소프트웨어가 강의를 위해 만들어진 장난감 CPU, 장난감 OS, 장난감 언어임
  - Principia Softwarica는 실제 하드웨어에서 동작하는 실제 코드와 실제 운영체제를 설명하는 반대 접근을 택함
- [Computer Systems: A Programmer's Perspective](https://csapp.cs.cmu.edu/)는 CS:APP로 알려져 있으며, 메모리 배치, 링킹, 가상 메모리, 동시성 같은 시스템 프로그래밍 개념을 설명하는 훌륭한 교과서임
  - CS:APP는 개념에서 멈추며 실제 커널, 실제 링커, 실제 컴파일러의 소스 코드를 보여주지는 않음
  - Principia Softwarica는 그 소스 코드를 줄 단위로 설명해 CS:APP를 보완함

### 진행 이력과 저자
- 2026년 3월 Principia Softwarica 웹사이트가 공개됨
- 2025년에 QEMU와 Raspberry Pi에서 다시 빌드 및 실행되도록 재개되었고, Dockerfile과 CI가 추가됨
- 2019년부터 2024년까지는 [Semgrep](https://semgrep.dev/) 작업으로 중단 기간이 있었음
- 2017년에 커널이 Raspberry Pi로 포팅되었고 Shell 및 Graphics 책 작업이 진행됨
- 2016년에 Build System 책이 완료되었고 첫 Libcore 및 Compiler 리터레이트 프로그램이 만들어짐
- 2015년에 Assembler와 Linker 책이 완료되었고 Knuth를 만남
- 2014년에 Plan 9을 포크하고 macOS에서 크로스 컴파일했으며 첫 리터레이트 프로그램을 만들며 프로젝트가 시작됨
- Principia Softwarica는 Yoann Padioleau가 작성했으며, 코드는 Ken Thompson, Rob Pike, Dave Presotto, Phil Winterbottom, Tom Duff, Andrew Hume, Russ Cox의 코드를 포함함
- Principia Mathematica가 수학의 기초를 다루는 것처럼, Principia Softwarica의 목표는 **기초 시스템 프로그램**을 다루는 것임

## Comments



### Comment 56983

- Author: neo
- Created: 2026-05-07T09:08:47+09:00
- Points: 1

###### [Lobste.rs 의견들](https://lobste.rs/s/iswtil/principia_softwarica) 
- 제목은 분명 **Principia Mathematica**를 참조하지만, “softwarica”는 라틴어가 아님  
  라틴어처럼 보이게 쓴 C 함수 호출이 `foo(bar; baz]`처럼 깨진 느낌이고, 더 나은 제목은 “Principia Programmatum”(프로그램의 원리)이나 “Principia Artis Programmatoriae”(프로그래밍 기술의 원리) 정도일 수 있음
  - 엄밀히 따지면 “Programmatum”도 존재하지 않고, 가장 가까운 “Programmum”은 “공표, 칙령”이라는 뜻이지 프로그램이 아님  
    라틴어에는 소프트웨어나 프로그래밍을 가리키는 단어가 없으니 새 단어를 만드는 것도 괜찮음  
    “Programmum/Programmatum”이 더 그럴듯하게 들리는 건 영어 “program”이 프랑스어 “programme”에서, 다시 라틴어 “programmum”에서 왔기 때문임  
    프랑스어 **logiciel**에서 더 직접적으로 가져오면 “logique”(논리) + “iel”(matériel에서 온 접미)이고, 이를 라틴어 “logica”, “materialis/materia”와 연결해 “program”을 “logicia”, “programs”를 “logicium”으로 옮길 수도 있음  
    단, 라틴어는 고등학교에서 2년 배운 정도라 확신은 없음
  - “Principia Programmatica”도 가능해 보임
  - 라틴어를 일부러 망가뜨린 게 핵심이라고 봤음  
    이미 죽은 언어이고, 잘 알려진 **실패한 프로젝트**를 참조하는 제목이니, 오늘날 영어 책에 제대로 된 라틴어 제목을 붙이는 것 자체가 살짝 우스꽝스러움  
    예전에 라틴어를 꽤 유창하게 읽던 입장에서도 그렇게 느껴짐

- 처음엔 **Plan 9** 언급에서 멈칫했지만, 저자가 왜 Plan 9를 골랐는지에 대한 자세한 설명이 좋았음  
  요약하면 작기 때문이고, 그 설명 자체가 책을 홍보하는 훌륭한 글처럼 읽힘
  - Plan 9 언급에서 왜 멈칫했는지 궁금함

- 저자가 **OCaml을 Plan 9로 포팅**한 뒤, C에서 무슨 일이 벌어지는지 더 잘 이해하려고 사용자 공간의 큰 부분을 OCaml로 다시 쓴 점이 좋음  
  그 과정에서 코드가 놀랍게도 Windows에서도 실행 가능해졌고, 누가 이 작업에 자금을 대는지도 궁금함
  - 꽤 오래된 **OCaml 1.07**을 쓴 점이 흥미로움  
    https://aryx.github.io/xix/#about

- 정말 말도 안 되게 큰 작업임  
  **17권, 6천 쪽 이상**인데 전부 지난주에 공개된 것처럼 보임  
  저자에 대한 추가 맥락이나 배경을 아는 사람이 있는지 궁금함
  - 이 9fans 스레드를 보면 됨  
    https://www.mail-archive.com/9fans@9fans.net/msg45156.html  
    요약하면 2014년에 시작했고, 저자는 내일 현지 시간 13:45에 IWP9에서 작업을 발표할 예정임  
    http://iwp9.org/#prg
  - 독자에게는 더 짧은 책 몇 권이 더 유용했을 것 같다는 생각을 떨칠 수 없음  
    물론 저자는 이 과정에서 엄청나게 많이 배웠을 것 같음

- Principia Softwarica는 프로그래머가 쓰는 핵심 프로그램들의 전체 소스 코드를 자세히 설명하면서 컴퓨터 내부 동작을 설명하는 책 시리즈임  
  커널, 셸, 윈도 시스템, 컴파일러, 링커, 편집기, 디버거 등이 각각 별도 책으로 다뤄지고, 대상 운영체제는 **Plan 9**로 보임
  - “대상 운영체제가 Plan 9로 보인다”는 건 매우 부정확한 요약임  
    페이지에 **Learn Here, Apply Everywhere**라고 되어 있고, Plan 9를 사용할 필요는 없다고 설명함  
    작고 우아한 운영체제 하나를 이해하면 Linux, macOS, 심지어 Windows에 대해서도 깊은 직관을 얻을 수 있다는 취지임

- 저자가 말하려는 뜻은 이해하지만, “Oberon은 Oberon 프로그램만 실행할 수 있다”는 건 **Oberon 시스템**의 제약이라고 보긴 어려움  
  원칙적으로 어떤 프로그래밍 언어든 그 아키텍처와 런타임을 대상으로 삼을 수 있음

- Plan 9에서 포크된 건 알겠는데, **Plan 9와 Inferno** 중 어느 쪽이 더 나은지 궁금함

- 굉장히 야심찬 프로젝트로 보임  
  좋은 코드, 특히 설계 선택에 대한 설명이 붙은 코드를 읽으면 더 나은 프로그래머가 된다고 믿음  
  자기 분야에서 살짝 벗어난 영역의 코드라면 특히 더 그렇고, 이건 훌륭한 학습 도구가 될 수 있음
