이미 소장하고 있다면 판매해 보세요.
|
제1장 개요 1
1.1 임베디드 리눅스의 역사 2 1.2 왜 임베디드 리눅스인가? 9 1.3 임베디드 리눅스와 데스크톱 리눅스 12 1.4 자주 묻는 질문들(FAQs) 14 1.5 임베디드 리눅스 배포판 18 1.6 포팅 로드맵 34 제2장 시작하기 37 2.1 임베디드 리눅스의 구조 37 2.2 리눅스 커널의 구조 41 2.3 사용자 공간 47 2.4 리눅스 부팅 과정 53 2.5 GNU 크로스-플랫폼 툴체인 62 제3장 Board Support Package 75 3.1 커널 빌드 과정에 BSP 추가하기 77 3.2 부트로더 인터페이스 79 3.3 메모리 맵 83 3.4 인터럽트 관리 91 3.5 PCI 서브시스템 97 3.6 타이머 102 3.7 UART 102 3.8 전원 관리 104 제4장 임베디드 저장장치 113 4.1 플래시 맵 114 4.2 MTD(Memory Technology Device) 115 4.3 MTD 구조 120 4.4 NOR 플래시를 위한 샘플 MTD 드라이버 123 4.5 플래시 매핑 드라이버 136 4.6 MTD 문자 장치와 블록 장치 146 4.7 mtdutils 패키지 146 4.8 임베디드 파일 시스템 148 4.9 저장 공간 최적화 152 4.10 커널 메모리 튜닝하기 158 제5장 임베디드 드라이버 163 5.1 리눅스 직렬 드라이버 164 5.2 이더넷 드라이버 178 5.3 리눅스의 I2C 서브시스템 186 5.4 USB 가젯 195 5.5 감시 타이머 206 5.6 커널 모듈 207 제6장 응용 프로그램 포팅 211 6.1 구조적 비교 211 6.2 응용 프로그램 포팅 로드맵 213 6.3 pthreads를 이용한 프로그래밍 218 6.4 OSPL 233 6.5 커널 API 드라이버 245 제7장 실시간 리눅스 257 7.1 실시간 운영체제 258 7.2 리눅스와 실시간성 259 7.3 리눅스의 실시간 프로그래밍 269 7.4 엄격한 실시간 리눅스 321 제8장 빌드와 디버깅 333 8.1 커널 빌드하기 335 8.2 응용 프로그램 빌드하기 345 8.3 루트 파일 시스템 빌드하기 352 8.4 통합 개발 환경(IDE) 355 8.5 가상 메모리 문제의 디버깅 358 8.6 커널 디버거 373 8.7 프로파일링 376 제9장 임베디드 그래픽스 395 9.1 그래픽스 시스템 396 9.2 리눅스 데스크톱 그래픽스 - X 윈도우 시스템 398 9.3 디스플레이 하드웨어의 기초 400 9.4 임베디드 리눅스 그래픽스 404 9.5 임베디드 리눅스 그래픽스 드라이버 404 9.6 윈도우 환경, 툴킷, 응용 프로그램 427 9.7 결론 434 제10장 uClinux 435 10.1 MMU가 없는 시스템상의 리눅스 435 10.2 프로그램 로드와 실행 438 10.3 메모리 관리 457 10.4 파일/메모리 매핑 - uClinux에서 mmap()의 복잡함 464 10.5 프로세스 생성 466 10.6 공유 라이브러리 469 10.7 uClinux로 응용 프로그램 포팅하기 473 10.8 XIP - eXecute In Place 482 10.9 uClinux 배포판 빌드하기 483 부록 A. 부팅 속도 높이기 487 B. GPL과 임베디드 리눅스 493 |
|
이 책의 내용 및 특징
이 책의 주제는 크게 두 가지이다. -기존의 RTOS에서 임베디드 리눅스로 시스템을 이전하는 것을 도와준다. -임베디드 리눅스를 이용한 시스템 설계 모델을 설명한다. 이 책에서 얻을 수 있는 것들 이 책은 임베디드 리눅스 환경에서 프로그래밍을 할 때 개발자가 직면하는 여러 가지 문제점들에 대한 해결책을 제시한다. 몇 가지 일반적인 문제점들을 나열하면 다음과 같다. -임베디드 리눅스 개발 모델을 이해한다. -응용 프로그램 및 임베디드 리눅스용 드라이버를 작성, 디버깅, 프로파일링한다. -임베디드 리눅스 BSP 구조를 이해한다. 이 책에서는 위의 문제점들에 대한 실제적인 해결책을 제시한다. 이 책을 읽은 후에 독자는 다음과 같은 일들이 가능해질 것이다. -임베디드 리눅스 개발 환경을 이해한다. -하드웨어 플랫폼을 위한 리눅스 BSP를 작성한다. -임베디드 저장장치를 위한 리눅스의 모델을 이해하고 그에 대한 드라이버와 응용 프로그램을 작성한다. -직렬 포트, I2C 등 여러 가지 임베디드 리눅스용 드라이버를 이해한다. -기존의 RTOS에서 작성된 응용 프로그램을 임베디드 리눅스로 포팅한다. -임베디드 리눅스상에서 실시간 프로그램을 작성한다. -응용 프로그램이나 드라이버상의 메모리 누수나 충돌을 찾아내는 방법을 익힌다. -커널과 응용 프로그램을 프로파일링하는 방법을 익힌다. -uClinux의 구조와 프로그래밍 모델을 이해한다. -임베디드 리눅스 그래픽스 서브시스템을 이해한다. 또한 이 책은 관리자들이 임베디드 리눅스 배포판을 선택하거나, 현재의 시스템을 임베디드 리눅스로 이전하기 위한 로드맵을 작성하고, 상용 제품에 리눅스 라이선스 모델을 적용하는 데 도움을 준다. 이 책의 대상 주요 독자층 -아키텍트: 이들은 실시간성, 성능, 포팅 계획 등에 많은 관심을 갖고 있다. -소프트웨어 프로그래머: 이들은 기술적인 상세한 부분을 익힐 필요가 있다. 이 책의 대상 보조 독자층 -관리자: 이들은 주로 판매사, 배포판, 버전, 개발 도구 등을 선택하는 데 관심을 갖는다. -테스팅 및 지원 팀: 임베디드 리눅스로 시스템을 이전하면 제품의 룩앤필(look and feel)이 달라지기 때문에, 이들도 교육이 필요하다. -법률 관계자: 대부분의 임베디드 제품들은 지적 재산권을 포함하고 있기 때문에 라이선스 문제에 대한 오해가 회사에 손실을 가져다줄 수 있다. 배경 지식 이 책의 독자는 임베디드 OS(어떠한 것이든지)상에서 프로그래밍을 하는 것에 대한 기본적인 이해를 요구한다. 이 책은 리눅스 커널을 설명하는 책이 아니기 때문에 기본적인 리눅스 커널의 개념과 사용자 공간의 프로그래밍 모델에 익숙한 사람을 대상으로 한다. 이 책은 특정 커널 버전에 종속되지 않도록 노력했지만 예제가 필요한 경우에는 2.4 혹은 2.6 커널을 사용했다. 소스 코드 다운로드받기 아래의 URL을 통해 이 책에서 사용된 모든 소스 코드를 다운로드받을 수 있다. -http://www.crcpress.com/e_products/downloads/download.asp?cat_no=AU0586 베타 테스트를 마치고 박정태 (중앙대학교 대학원 컴퓨터공학과, 모바일 및 임베디드 컴퓨터시스템 박사과정) 임베디드 리눅스 입문서로서 아주 적합한 책! 컴퓨터공학을 전공하고 있는 학생들에게 임베디드 리눅스를 이용한 시스템 설계 실습을 지도하고 있는 테스터는 학생들에게 다양한 경험을 할 수 있도록 하기 위한 방법을 생각해 왔다. 학생들이 실전에 나가서 실력을 발휘하기 위해서는 다양한 경험이 중요한 토대가 된다고 생각하기 때문이다. 아직까지 RTOS를 사용하는 기업이 많지만 학생들이 수많은 RTOS를 모두 접하기 어려운 상황이다. 이런 환경에 적응하기 위해 RTOS와 임베디드 리눅스의 다양한 면을 이해한다면 이는 학생 개개인에게 큰 힘이 될 것이며 이 책을 통해 많은 부분에 대한 이해의 폭을 넓힐 수 있을 것으로 생각된다. 특히, 그동안 다른 서적에서 접하기 어려웠던 배포판에 대한 정리나 실시간 리눅스, uClinux에 대한 설명은 소중한 자료임에 틀림없다. 또한 임베디드 리눅스를 접하는 학생들이 어려워하는 부분인 임베디드 저장장치 및 그래픽스 부분에 대한 자세한 내용도 많은 도움이 될 것이다. 응용 프로그램 포팅, 실시간 리눅스에 대한 설명은 실습과제로서도 훌륭히 사용할 수 있을 것으로 생각된다. 박상오 (중앙대학교 대학원 컴퓨터공학과, 모바일 및 임베디드 컴퓨터시스템 박사과정) 임베디드 리눅스 프로젝트를 위한 훌륭한 로드맵 제시! 독자들과 마찬가지로 현업에서 다양한 프로젝트를 진행하고 있는 테스터도 새롭게 시작하는 프로젝트인 경우보다 이미 펌웨어 수준에서 작성되었거나 RTOS를 사용하고 있는 프로젝트에 새로운 요구사항을 추가해야 하는 경우 추가되는 요구사항을 기존 프로젝트의 수정으로 추가할지, 임베디드 리눅스를 사용해 새롭게 구현할지를 고민한 경우가 여러 번 있었다. 이의 결정에는 요구사항의 수준이나 프로젝트 기간, 비용 등 여타의 많은 요소들이 영향을 미치지만 임베디드 리눅스를 사용하여 좋은 결실을 맺은 경우가 대부분이었다. 이 책은 임베디드 리눅스를 사용한 프로젝트를 위한 전체적인 로드맵을 제시해 주고 있으므로 앞서 테스터가 했던 고민을 하고 있는 프로젝트 관리자나 개발자들에게 좋은 지침이 되어 줄 것으로 확신한다. |