리눅스가 운영체제 시장을 성공적으로 장악했던 것 만큼 임베디드 시스템 영역에서도 확고한 입지를 이룩해나가고 있다. 토스터기, 핸드폰과 같은 소형 가전에서부터 자동차 ABS 시스템, 정수 설비에 이르는 대형 시설에 이르기까지 이제 우리는 어디에서든지 임베디드 시스템을 볼 수 있다. 리눅스가 임베디드 시스템에 성공적으로 사용됨에 따라 이에 대한 사람들의 흥미와 관심도 증대되었다. 하지만 아직까지도 상당수의 전문 개발자들은 리눅스 커널에 기반을 둔 임베디드 시스템을 구축하기 위해 필요한 기본 방법과 기술에 대한 정보에 목말라 하고 있다. 현재 그들이 참고할 수 있는 자료로는 프리-패키지 개발 도구 또는 임베디드 타켓 위에서 리눅스 실행과 같이 아주 특정 분야에 관한 것 뿐이다.
바로 이와 같은 시점에서 『Building Embedded Linux Systems』는 색다른 접근방식을 시도하고 있다. 이 책은 리눅스를 커널로 임베디드 시스템을 구축하고 설계하는 방법뿐만 아니라 프레임워크로 오픈 소스 도구를 자유롭게 이용할 수 있는 방법까지 잘 보여주고 있기 때문이다. 오픈 소스 커뮤니티의 활동적인 멤버, 카림 야크무르(Karim Yaghmour)가 집필한 이 책으로 독자들은 복잡한 임베디드 리눅스를 차근차근 배울 수 있다. 자세한 정보와 예제가 풍부할 뿐만 아니라 실제로 임베디드 디바이스 위에서 리눅스를 실행하는 방법을 정리하는 방식으로 각 챕터가 끝나고 있다.
저자는 이 책에 대해 다음과 같은 설명을 덧붙였다. "임베디드 시스템이 우리 일상 생활에 핵심이 된다해도 대부분의 임베디드 시스템의 경우 그 방법론이 거의 개발되지 않았다. 최근들어 임베디드 시스템 개발을 일찍부터 배울 수 있도록 하기위해 몇몇 대학에서 커리큘럼을 개설하기 시작한 정도이다. 필자는 이와 같은 움직임이 계속될 것이며, 조만간 임베디드 시스템 개발이 점점 더 정형화된 방법에 의존하게 될 것이라 예상한다. 이와 같은 상황에서 이 책은 리눅스 운영체제에 기반을 둔 임베디드 시스템을 개발하고 명세화하는데 방법을 제공해 줄 수 있는 책이다."
이 책은 시스템 컴포넌트, 커널 아키텍처 개요, 디버깅, 시스템 초기화 등에 대해 다루고 있다. 모니터링과 디버깅을 하는데 유용하게 사용될만한 도구들과 함께 다양한 칩과 하드웨어에 대한 상세정보, 오픈 소스 및 자유 소프트웨어 패키지 사용에 대한 설명도 자세하게 되어있다. 원래 있던 소스에서 운영체제 컴포넌트를 구축하는 방법을 비롯해 다른 문서 자료나 도움말 검색 방법을 보여줌으로써 기술적이거나 경제적인 이유로 임베디드 운영체제를 철저하게 통제하는 업무를 간소화할 수 있다. 사용될 다양한 컴포넌트의 소스 코드를 다운 받을 수 있도록 인터넷 연결만 되어 있다면 임베디드 리눅스 세계로 떠날 준비는 다 된 것이다. 참고로 이 책의 특징은 다음과 같다.
- 고유의 GNU 개발 toolchain 구축
- 타겟-특정적인 커널 선택, 구성, 구축, 설치
- 완벽한 타겟 루트 filesystem 생성
- 반도체 스토리지 디바이스 셋업, 조작, 사용
- 타켓에 적합한 bootloader 설치 및 설정
- 다양한 도구와 기술을 사용하여 임베디드 시스템 디버깅하기
숙련도에 상관없이 모든 수준의 임베디드 시스템 디자이너로 지금 당장 또는 가까운 미래에 리눅스를 사용하거나 리눅스가 개입된 기술이나 도구에 익숙해지고 싶은 사람이라면 반드시 읽어봐야 할 책이다. 개발자들이 임베디드 리눅스 시스템 구축 방식과 그 이유를 이해하는데 필요한 모든 정보를 담고있기 때문에 이 분야에 관한 한 최고의 입문서라 할 수 있다.
"임베디드 리눅스 시스템을 개발하고 있거나 관련 업무를 하고 있다면 혹은 조만간 이 분야에 뛰어들 계획이라면 이 책부터 한 번 읽어볼 것을 권장하는 바이다. 작동하는 toolchain을 구축하는 방법이나 애플리케이션을 원격으로 디버깅하는 방법과 같은 난해한 주제들을 다루지 않으면서 알찬 정보가 가득한 아주 잘 쓰여진 책이다. 필자는 이 책이 임베디드 리눅스 세계의 "리눅스 디바이스 드라이버"와 같은 존재가 되어 줄 책임을 확신한다."
─ uClibc, BusyBox, TinyLogin 메인 개발자이자 관리자인 에릭 앤더슨(Eric Andersen)