이 책의 개정판이 나온다는 소식을 들었을때, 무척이나 반가웠었다.
초판에 대한 좋은 기억 때문이기도 하지만, 가장 큰 이유는 이 책이 근래에 찾아보기힘든 임베디드 시스템을 주제로 하고있기 때문이었다.
이 책의 초판이 나왔을 2006년도만 해도 임베디드 시스템을 다룬 책이 많았지만, 그 이후 안드로이드와 아이폰 플랫폼이 인기를 끌면서 앱 개발 관련 책들이 주류를 이뤘다. 그래서 상대적으로 임베디드 시스템을 다룬 책들을 찾아보기 어려웠다.
다른 책들에 비해 기술관련 분야 서적은 시간이나 트랜드에 민감할 수 밖에 없다는 사실을 보여주는 것이라 하겠다.
개정판에서 추가된 것 중, 안드로이드 플랫폼에 대한 챕터가 추가된 것이 눈에 띈다. 기존의 안드로이드 전문서적처럼 많은 분량은 아니지만, 임베디드 시스템에서 안드로이드를 빌드하고 이를 타겟보드에 설치하는 방법을 설명하고 있다. 최소한 안드로이드 기반에서의 개발은 가능한 것이다.
만일 Cortex-A9 쿼드코어 계열의 Exynos4412 타겟보드를 가지고 있다면, 책에 나온 예제들을 거의 그대로 사용할 수 있다. 그렇지 않다면, 약간의 수정이 필요하다.
나의 경우, exynos5250 보드를 가지고 있는데, 부드로더 및 커널 포팅과정을 제외한 디바이스 드라이버 예제들을 그대로 실습할 수 있었다.
이책은 1000 페이지가 넘는 분량만큼이나 임베디드 시스템에 대해 하드웨어와 소프트웨어를 아우른다. 이 한권으로 더이상의 다른 관련 서적이 필요없을 정도로 말이다.
하지만, 내가 생각하는 이책의 장점은 다른 비슷한 서적에서 다룬지 않는 내용을 다루고 있다는 점이라고 하겠다.
특히 나 같은 소프트웨어 엔지니어에게는 이해하기 어려운 4412 Chip 데이터시트에 나오는 부분을 알기쉽게 풀어 설명한 것과 기존의 커널을 어떻게 수정하여 타겟보드에 맞게 포팅하는지를 예제로 설명한 부분 그리고 커널의 Kconfig 을 설명한 부분이 유익했다.
또한 각 챕터 뒤에는 연습 문제가 있어, 읽었던 부분을 스스로 체크할 수 있도록 했다.
개인적으로 아쉬운 부분은 앞서 언급한 대로 1000 페이지가 넘는 덕(!)에 휴대하고 가지고 다니기가 어렵다는 것이었다.
한권에 방대한 내용을 담다보니, 그렇게 된 것이지만, 차라리 분야별로 분책하여 시리즈로 만들었으면 어땠을까 하는 바람이 있다.
얼마전에 Thinking about C/C++ : 프로그래머가 몰랐던 프로그램의 동작 원리 라는 책을 봤는데, 각각 프로그램 실행 환경편, 프로그램 생성편, 프로그램 개발편으로 나뉘어져 있었다. 괜찮다고 생각한다.
이 책의 총평을 하자면, 임베디드 시스템의 기본기를 제대로 쌓고 싶은 독자라면, 하드웨어 또는 소프트웨어 엔지니어 상관없이 일독을 권한다.