April 26, 2023
이 책은 컴퓨터의 모든 것이 어떻게 동작하는지에 대한 완전한 이해를 시키려는 야심찬 책입니다. 각각의 챕터는 HDL의 기본 로직 게이트를 쓰는것부터 CPU와 어셈블러를 거쳐, 테트리스 게임 정도의 어플리케이션까지 전체시스템의 작은 부분을 빌딩하는것을 포함하고 있습니다. - TeachYourselfCS 中
밑바닥부터 만드는 컴퓨팅 시스템은 컴퓨터 구조 최고의 입문 책입니다.
이 책은 각 챕터에서 독자를 위한 개념 설명과 간단하고 명확한 명세, 그리고 직접 만들어 볼 수 있는 환경을 제공합니다.
각 챕터를 따라가다보면 어느순간 밑바닥(NAND gate)부터 끝(OS)까지 완성되어 있는것을 볼 수 있습니다.
한마디로 말해서, 책의 모든 부분에서 1판 설명 사이사이의 ’빈 부분‘을 채워줬습니다.
책의 큰 그림과 짜임새는 동일합니다. 하지만 내용을 살펴보면 설명과 예제가 더 자세하고 쉬워졌습니다.
11장(컴파일러)을 예로 설명해보겠습니다. (저에겐 가장 어려웠기 때문에…)
표현식 컴파일 설명이 아래와 같이 바뀌었고, 표현식 하나만 바뀐게 아니라 그 후의 설명 부분, 그림 등 뒤따라오는 내용이 해당 표현식을 중심으로 바뀌었기 때문에 이해하기 쉬워졌습니다.
x + g(2, y - z) * 5
x + y - 7
또 기존에는 존재하지 않았던 ‘생성자와 메소드 컴파일’ 등의 설명이 추가 되었습니다. (1판에선 위 표현식 컴파일보다 어려운데 설명이 없어서 고생했던 것 같습니다…)
결과적으로 1판에 비해 더 많은 내용을 담았으며 (부록 추가 등), 실습하기에도 더더욱 편해졌습니다. (최고의 책…)
읽는것을(따라해보는것을) 강추합니다. 1~5장은 더더욱 강추합니다.
특히, 아래와 같은 의문이 드는 (저와 같은) 분들에게 추천드립니다.
만약 바로 시작하는게 어렵다고 느껴진다면, CODE를 먼저 읽는것을 추천드립니다.
XOR 게이트(좌측)로 시작해서 16-bit 6-opcode CPU(우측)을 완성한 모습 - 회로도 中
1~2장에서 여러 게이트(NAND, XOR, MUX)와 가산기, 레지스터를 명세에 따라 만듭니다.
3장에서 앞 내용을 바탕으로 ALU와 PC를 만듭니다.
이때 4장에서 갑자기 (간단한)어셈블리 언어를 배우고 몇가지 프로그램을 만든 후
5장에서는 (앞에서 배운) 어셈블리를 실행 가능한 CPU를 만들게 됩니다.
이때, (1~4장 동안 명세에 따라 구현만 신경쓰다) 배웠던 내용이 합쳐지며 추상화된 각 계층을 종합적으로 이해해보는 재밌는 경험을 했습니다.
기계어는 하드웨어와 소프트웨어가 만나는 심오한 인터페이스다. 프로그래머의 ‘추상적 생각’이 기호로 표현되어 하드웨어에서 실행되는 지점이기 때문이다 - ccss17 中
7~8장 가상머신은 제공된 가상머신 시뮬레이터로 이해가 가능했지만…
10~11장 컴파일러는 지금까지 모든 챕터와 다르게 명세가 명확하지도 않았고, 바로 설계하거나, 만들 수가 없었습니다.
옮긴이와 글쓴이의 소개글을 첨부하고 마치겠습니다.
컴퓨터의 작동원리를 종합적으로 이해하지 못하는 상황에서… 혼자 하드웨어부터 소프트웨어까지 만들던 시절로 돌아간다.
따로따로 내용을 배우기보단, 처음부터 끝까지 만들어보는 경험이 훨씬 직관적으로 이해가 된다.
여행 중 점점 모양을 갖추는 컴퓨터를 감상하는 일은 정말 신나는 일
본 리뷰는 도서출판 ’인사이트‘의 도서 지원을 받아 작성한 서평입니다