IT EXPERT, 임베디드 리눅스
실전 경험이 풍부한 저자가 어드밴텍, 아이트로닉스 정보통신, 제이닷디엔티 등 국내 유수 보드 공급 업체의 보드를 사용해 개발 전단계를 각 플랫폼에서 직접 테스트하면서 집필해 각종 know-how와 know-where가 그대로 녹아 있습니다.
웹프로그래머로 4년간 일을 했던 저는 항상 좀 더 크리에이티브하고 고 차원적인 부분인(저 나름대로의 느낌에) 시스템프로그래밍과 그 후의 임베디드 프로그래밍에 관심을 가지고 있었습니다.
우선, 이전에 시스템프로그래밍에 관한 몇 권을 책을 읽어보았습니다. 하지만 역시 활용하지 못하는 지식은 잊어버리는 것 처럼 시스템 프로그래밍에 관한 내용은 머리에 오래 남지 못하는 것 같습니다.
이 책은 이전에 간단하게 서평을 쓴 책인 유닉스 시스템 프로그래밍 SVR4 (한빛미디어)과
학교에서 교재로 쓴 다던 UNIX 시스템프로그래밍 2/E (Addison-Wesley, 홍릉과학출판사), 그리고 IT Expert 유닉스 시스템 프로그래밍을 읽어 본 후 접하게 된 책입니다.
이 책의 저자인 박재호님은 현재 (주)휴비츠라는 의료기기 제조 업체에서 안광학 관련 임베디드 시스템을 개발하고 있는 Expert입니다. 저는 한빛미디어에서 저자 직강으로 주최한 세미나에 참석하여 이 책을 구입하였습니다. (으쓱으쓱~!)
이 책은 임베디르 리눅스에 관한 전반적인 내용을 모두 다루고 있는 책입니다. 임베디드 시스템의 활용 분야에서 부터 리눅스의 기반 철학, 임베디스 리눅스의 개괄, RTOS 및 개발 환경 설정등 감히 백과사전(?)이라 말할 수 있을 정도로 엄청난 양의 정보를 가지고 있습니다.(그래서 책이 무척이나 두껍습니다.)
이 책은 총 3부, 20장으로 구성되어 있습니다.
1부에서는 총 5장을 두어 임베디드 시스템, 리눅스, 임베디드 리눅스, RTOS, 윈도우 시스템에 관한 전반적인 개괄과 개념, 활용 예를 설명하고 있습니다.
2부에서는 총 6장을 두어 임베디드 리눅스 개발 방법론이란 제목으로 제품 기획 단계에서의 고려 사항, 타겟 보드 선정, 장치 선정과 장치 드라이버 구현, 임베디드 리눅스 이식 절차 그리고 마지막으로 패키징에 이르기 까지 제목 그대로 하나의 임베디드 시스템의 기획부터 완성까지에 대한 내용을 다루고 있습니다.
마지막 3부에서는 18장의 두어 본격적인 임베디드 리눅스 개발에 관한 내용을 담고 있습니다. 교차 개발 환경의 구축, 네트워크와 디버깅 환경 구축, 부트 스트랩 로더의 이식, 커널 설정과 컴파일, 루트 파일 시스템 이식, 실시간 리눅스 커널의 이식, 윈도우 시스템 환경의 이식, 부팅과 설치 확인, 상용 제품을 위한 패키징까지 모든 과정에 대한 상세한 내용을 다루고 있습니다. 하나하나의 장에 맞추어 상세한 설명과 예제를 두고 있습니다.
또한 IT Expert 시리즈의 특징인 저자의 현장 테크닉을 두어 노하우를 전수하고, 각 장의 마지막에 요약을 두어 다시 한 번 확인할 수 있도록 하였습니다.
단점은 역시나 많은 양의 설명에 의해 간과할 수 없는 부분들이 있습니다. 또한 임베디드 시스템에서 많이 사용하는 x86, ARM, MPC 플랫폼에 관한 설명만들 담고 있어 다른 플랫폼에서의 활용력을 기르기에는 부족한 것 같습니다.
당시 저는 이책을 보고 난 후 저의 구닥다리 PDA인 JTEL의 Celvic-i에 리눅스를 올려보려는 야심찬 계획을 가지고 (-_-;) 있었습니다. 하지만 Celvic-i에서 사용하고 있는 모토로라사의 Dragonball EZ CPU는 MMU라는 장치가 없습니다.
MMU는 memory management unit의 약자로 가상 메모리 시스템을 관리하는 하드웨어 요소입니다. MMU는 설계에 따라 별도의 칩으로 되어 있는 경우도 있지만, 일반적으로 CPU의 일부가 되어 있습니다.
-- 컴퓨터 용어사전 텀즈에서 인용
MMU가 없을 경우에는 소프트웨어 적으로 이 MMU의 기능을 대신하는 부분을 커널 상에 추가하여야 합니다. 이런 CPU를 지원하는 임베디드 리눅스 배포판으로 uCLinux가 있으나 이 책에서는 다루고 있지 않습니다. :)