HOME > 상세정보

상세정보

임베디드 리눅스 : 입문 (17회 대출)

자료유형
단행본
개인저자
Hallinan, Christopher 강덕진 , 역
서명 / 저자사항
임베디드 리눅스 : 입문 / Christopher Hallinan 지음 ; 강덕진 옮김.
발행사항
서울 :   정보문화사 ,   2008.  
형태사항
625 p. : 삽도 ; 24 cm.
원표제
Embedded Linux primer : a practical, real-world approach
기타표제
임베디드 개발자를 위한 실용 가이드
ISBN
9788956744377
일반주기
부록 및 색인수록  
일반주제명
Operating systems (Computers) Embedded computer systems --Programming.
000 00946camccc200301 k 4500
001 000045473186
005 20100807045530
007 ta
008 080728s2008 ulka b 001c kor
020 ▼a 9788956744377 ▼g 13000
035 ▼a (KERIS)BIB000011348088
040 ▼a 241050 ▼c 241050 ▼d 211009
041 1 ▼a kor ▼h eng
082 0 4 ▼a 005.4/32 ▼a 005.446 ▼2 22
090 ▼a 005.432 ▼b 2008z1
100 1 ▼a Hallinan, Christopher ▼0 AUTH(211009)57738
245 1 0 ▼a 임베디드 리눅스 : ▼b 입문 / ▼d Christopher Hallinan 지음 ; ▼e 강덕진 옮김.
246 0 3 ▼a 임베디드 개발자를 위한 실용 가이드
246 1 9 ▼a Embedded Linux primer : a practical, real-world approach
260 ▼a 서울 : ▼b 정보문화사 , ▼c 2008.
300 ▼a 625 p. : ▼b 삽도 ; ▼c 24 cm.
500 ▼a 부록 및 색인수록
630 0 0 ▼a Linux.
650 0 ▼a Operating systems (Computers)
650 0 ▼a Embedded computer systems ▼x Programming.
700 1 ▼a 강덕진 , ▼e
945 ▼a KINS

No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 중앙도서관/제2자료실(3층)/ 청구기호 005.432 2008z1 등록번호 111491988 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 2 소장처 세종학술정보원/과학기술실/ 청구기호 005.432 2008z1 등록번호 151262180 도서상태 대출가능 반납예정일 예약 서비스
No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 중앙도서관/제2자료실(3층)/ 청구기호 005.432 2008z1 등록번호 111491988 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 세종학술정보원/과학기술실/ 청구기호 005.432 2008z1 등록번호 151262180 도서상태 대출가능 반납예정일 예약 서비스

컨텐츠정보

책소개

모든 임베디드 개발자 및 엔지니어들을 위한 실용적인 안내서
이 책은 효율적이고 가치 있는 리눅스 기반 임베디드 제품을 만들기 위해서 꼭 필요한 지식들을 제시한다. 이 책의 저자인 크리스토퍼 할린나은 수년간 임베디드 리눅스 컨설턴트와 필드 어플리케이션 엔지니어(FAE)로 일한 경험을 통해서 얻은 지식을 바탕으로 임베딛 개발자가 주로 겪게 되는 기술적인 문제들에 대한 해결책을 제시해 주며,효율적인 임베디드 개발 환경을 갖추는 방법도 제시해 준다. 또한 생산성을 높이기 위해서 쓸 만한 노하우도 알려준다.

일반적인 리눅스 기반 임베디드 시스템을 간단히 살펴보는 것에서 시작해서 시스템을 이루는 핵심 개념과 구성 요소들을 설명하고,리눅스와 기존의 임베디드 환경과의 차이점에 대해서 자세히 설명한다. 그리고 임베디드 커널을 빌드시키는 것에서부터 부트로더를 초기화하는 과정,디바이스 드라이버에서 파일 시스템까지의 모든 내용을 개발자 관점에서 포괄적으로 설명한다.

또한 점점 더 많은 인기를 얻고 있는 BusyBox 유틸리티에 대해서도 자세히 설명한다. 그리고 리눅스를 자체 보드에 포팅하는 과정에 대해서 한 단계씩 자세히 설명하고,최신 임베디드 리눅스에서 가장 흥미로운 부분 중의 하나인 리얼 타임에 대해서도 CONFIC_RT 구성을 통해 설명해 준다. 독자는 개발 툴들을 사용하는 방법과 커널을 디버깅 하는 내용을 포함한 임베디드 시스템을 분석하고 디버깅할 수 있는 방법도 배울 수 있다.


정보제공 : Aladin

목차

목차
용어 대역표 = 17
서문 = 29
시작하면서 = 31
감사의 글 = 38
저자 소개 = 40
Chapter 1 소개
 1.1 왜 리눅스인가? = 42
 1.2 임베디드 리눅스의 현재 = 43
 1.3 오픈 소스와 GPL = 43
  1.3.1 무료와 자유 = 45
 1.4 표준 및 관련 조직 = 45
  1.4.1 리눅스 기본 규격 = 45
  1.4.2 오픈 소스 개발 연구소 = 46
 1.5 요약 = 48
  1.5.1 더 읽어 보기 = 48
Chapter 2 임베디드 처음 경험하기
 2.1 임베디드와 임베디드가 아닌 것? = 50
  2.1.1 BIOS와 부트로더 = 51
 2.2 임베디드 시스템 해부 = 52
  2.2.1 전형적인 임베디드 리눅스 환경 = 53
  2.2.2 타깃 보드 구동하기 = 55
  2.2.3 커널 부팅하기 = 56
  2.2.4 커널 초기화 : 요약 = 58
  2.2.5 첫 번째 사용자 영역 프로세스 : init = 59
 2.3 저장 장치 = 60
  2.3.1 플래시 메모리 = 60
  2.3.2 NAND 플래시 = 63
  2.3.3 플래시의 사용 = 64
  2.3.4 플래시 파일 시스템 = 65
  2.3.5 메모리 공간 = 66
  2.3.6 실행 컨텍스트 = 68
  2.3.7 프로세스 가상 메모리 = 70
  2.3.8 교차-개발 환경 = 72
 2.4 임베디드 리눅스 배포판 = 74
  2.4.1 상용 리눅스 배포판 = 76
  2.4.2 직접 만드는 리눅스 배포판 = 76
 2.5 요약 = 77
  2.5.1 더 읽어 보기 = 78
Chapter 3 프로세서 기본
 3.1 독립형 프로세서 = 80
  3.1.1 IBM 970FX = 81
  3.1.2 인텔 펜티엄 M = 81
  3.1.3 프리스케일 MPC7448 = 82
  3.1.4 보조 칩셋 = 83
 3.2 통합형 프로세서 : 시스템 온 칩 = 86
  3.2.1 PowerPC = 86
  3.2.2 AMCC PowerPC = 87
  3.2.3 프리스케일 PowerPC = 90
  3.2.4 MIPS = 95
  3.2.5 브로드컴 MIPS = 96
  3.2.6 AMD MIPS = 98
  3.2.7 기타 MIPS = 99
  3.2.8 ARM = 100
  3.2.9 TI ARM = 100
  3.2.10 프리스케일 ARM = 102
  3.2.11 인텔 ARM 엑스스케일 = 103
  3.2.12 기타 ARM = 104
  3.2.13 기타 아키텍처 = 104
 3.3 하드웨어 플랫폼 = 105
  3.3.1 CompactPCI = 105
  3.3.2 ATCA = 105
 3.4 요약 = 107
  3.4.1 더 읽어 보기 = 107
Chapter 4 다른 관점에서 본 리눅스 커널
 4.1 배경 = 110
  4.1.1 커널 버전 = 111
  4.1.2 커널 소스 저장소 = 114
 4.2 리눅스 커널의 구성 = 115
  4.2.1 최상위 소스 디렉터리 = 115
  4.2.2 커널 컴파일하기 = 116
  4.2.3 커널 단일파일 : vmlinux = 119
  4.2.4 커널 이미지 구성 요소 = 120
  4.2.5 하위 디렉터리 구성 = 124
 4.3 커널 빌드 시스템 = 125
  4.3.1 점-Config 파일 = 125
  4.3.2 구성 편집기 = 127
  4.3.3 Makefile 타깃 = 131
  4.3.4 커널 구성 = 135
  4.3.5 구성 옵션 직접 만들기 = 137
  4.3.6 커널 Makefile = 141
  4.3.7 커널 문서화 = 142
 4.4 리눅스 커널 구하기 = 143
  4.4.1 추가적으로 더 필요한 것은 = 143
 4.5 요약 = 144
  4.5.1 더 읽어 보기 = 145
Chapter 5 커널 초기화
 5.1 복합적인 커널 이미지 : piggy와 그 외 오브젝트 파일 = 148
  5.1.1 Image 오브젝트 = 151
  5.1.2 아키텍처 오브젝트 = 152
  5.1.3 부트스트랩 로더 = 153
  5.1.4 부트 메시지 = 155
 5.2 초기화 단계의 제어 흐름 = 158
  5.2.1 커널 진입점 : head.o = 160
  5.2.2 커널 스타트업 : main.c = 162
  5.2.3 아키텍처 셋업 = 163
 5.3 커널 커맨드 라인 처리하기 = 164
  5.3.1 _setup 매크로 = 166
 5.4 서브시스템 초기화 = 172
  5.4.1 *_initcall 매크로 = 173
 5.5 init 쓰레드 = 175
  5.5.1 initcall을 이용한 초기화 = 177
  5.5.2 마지막 부팅 단계 = 178
 5.6 요약 = 180
  5.6.1 더 읽어 보기 = 181
Chapter 6 시스템 초기화
 6.1 루트 파일 시스템 = 184
  6.1.1 FHS : 파일 시스템 계층 표준 = 185
  6.1.2 파일 시스템 배치 = 185
  6.1.3 최소 파일 시스템 = 187
  6.1.4 루트 파일 시스템의 도전 과제 = 189
  6.1.5 시행착오를 반복하는 방법 = 190
  6.1.6 자동화된 파일 시스템 제작 툴 = 190
 6.2 커널의 마지막 부팅 단계 = 190
  6.2.1 최초 사용자 영역 프로그램 = 192
  6.2.2 의존성 해결 = 193
  6.2.3 초기화 과정 수정하기 = 194
 6.3 Init 프로세스 = 194
  6.3.1 inittab = 197
  6.3.2 웹 서버 시작 스크립트의 예 = 199
 6.4 초기 램디스크 = 201
  6.4.1 초기 램디스크의 용도 = 202
  6.4.2 initrd로 부팅하기 = 202
  6.4.3 initrd를 지원하는 부트로더 = 204
  6.4.4 initrd의 마법 : linuxrc = 205
  6.4.5 initrd 구성 = 207
  6.4.6 initrd 이미지 만들기 = 208
 6.5 initramfs 사용하기 = 209
 6.6 종료 = 210
 6.7 요약 = 211
  6.7.1 더 읽어 보기 = 212
Chapter 7 부트로더
 7.1 부트로더의 역할 = 214
 7.2 부트로더의 도전 과제 = 215
  7.2.1 DRAM 컨트롤러 = 215
  7.2.2 플래시와 RAM = 216
  7.2.3 이미지 복잡도 = 217
  7.2.4 실행 컨텍스트 = 220
 7.3 유니버설 부트로더 : Das U-Boot = 221
  7.3.1 시스템 구성 : U-Boot = 221
  7.3.2 U-Boot 명령어 셋 = 224
  7.3.3 네트워크 동작 = 225
  7.3.4 저장 장치 서브시스템 = 228
  7.3.5 디스크로부터 부팅하기 = 229
 7.4 U-Boot 포팅하기 = 229
  7.4.1 EP405를 위한 U-Boot 포팅 = 230
  7.4.2 U-Boot makefile의 구성 타깃 = 232
  7.4.3 EP405 프로세서 초기화 = 233
  7.4.4 보드에 따른 초기화 = 236
  7.4.5 포팅 요약 = 240
  7.4.6 U-Boot 이미지 형식 = 241
 7.5 기타 부트로더 = 243
  7.5.1 Lilo = 243
  7.5.2 GRUB = 244
  7.5.3 더 많은 부트로더 = 246
 7.6 요약 = 247
  7.6.1 더 읽어 보기 = 248
Chapter 8 디바이스 드라이버 기초
 8.1 디바이스 드라이버의 개념 = 252
  8.1.1 로드 가능한 모듈 = 253
  8.1.2 디바이스 드라이버 아키텍처 = 254
  8.1.3 최소 디바이스 드라이버 예제 = 254
  8.1.4 모듈 빌드를 위한 기반 = 255
  8.1.5 디바이스 드라이버 설치하기 = 260
  8.1.6 모듈 로드하기 = 261
 8.2 모듈 유틸리티 = 262
  8.2.1 insmod = 262
  8.2.2 모듈 파라미터 = 262
  8.2.3 lsmod = 264
  8.2.4 modprobe = 265
  8.2.5 depmod = 266
  8.2.6 rmmod = 267
  8.2.7 modinfo = 268
 8.3 드라이버의 메서드 = 269
  8.3.1 드라이버의 파일 시스템 오퍼레이션 = 269
  8.3.2 디바이스 노드와 mknod = 273
 8.4 한데 묶기 = 274
 8.5 디바이스 드라이버와 GPL = 276
 8.6 요약 = 277
  8.6.1 더 읽어 보기 =278
Chapter 9 파일 시스템
 9.1 리눅스 파일 시스템의 개념 = 280
  9.1.1 파티션 = 281
 9.2 ext2 = 283
  9.2.1 파일 시스템 마운트하기 = 284
  9.2.2 파일 시스템 무결성 검사 = 286
 9.3 ext3 = 288
 9.4 ReiserFS = 291
 9.5 JFFS2 = 292
 9.6 cramfs = 295
 9.7 네트워크 파일 시스템(NFS) = 298
  9.7.1 NFS를 이용한 루트 파일 시스템 = 300
 9.8 의사 파일 시스템 = 303
  9.8.1 Proc 파일 시스템 = 303
  9.8.2 sysfs = 307
 9.9 기타 파일 시스템 = 310
 9.10 간단한 파일 시스템 만들기 = 311
 9.11 요약 = 313
  9.11.1 더 읽어 보기 = 314
Chapter 10 MTD 서브시스템
 10.1 MTD 서비스 활성화하기 = 318
  10.1.1 MTD 만들기 = 320
 10.2 MTD 기초 = 321
  10.2.1 MTD 구성하기 = 324
 10.3 MTD 파티션 = 324
  10.3.1 Redboot 파티션 테이블 나누기 = 325
  10.3.2 커널 커맨드 라인에서 파티션 생성하기 = 330
  10.3.3 매핑 드라이버 = 331
  10.3.4 플래시 칩 드라이버 = 334
  10.3.5 보드에 따른 초기화 = 335
 10.4 MTD 유틸리티 = 336
  10.4.1 JFFS2 루트 파일 시스템 = 340
 10.5 요약 = 342
  10.5.1 더 읽어 보기 = 343
Chapter 11 BusyBox
 11.1 BusyBox 소개 = 346
  11.1.1 BusyBox는 쉽다 = 347
 11.2 BusyBox 구성하기 = 347
  11.2.1 BusyBox 교차 - 컴파일하기 = 349
 11.3 BusyBox의 기능 = 350
  11.3.1 BusyBox Init = 353
  11.3.2 rcS 초기화 스크립트 예제 = 356
  11.3.3 BusyBox를 타깃 보드에 설치하기 = 357
  11.3.4 BusyBox 명령어 = 359
 11.4 요약 = 361
  11.4.1 더 읽어 보기 = 361
Chapter 12 임베디드 개발 환경
 12.1 교차-개발 환경 = 364
  12.1.1 임베디드 "Hello World" = 365
 12.2 호스트 시스템 요구 사항 = 369
  12.2.1 하드웨어 디버깅 장비 = 370
 12.3 타깃 보드 호스팅하기 = 370
  12.3.1 TFTP 서버 = 371
  12.3.2 BOOTP/DHCP 서버 = 372
  12.3.3 NFS 서버 = 375
  12.3.4 타깃 시스템에 NFS 루트 파일 시스템 마운트하기 = 377
  12.3.5 U-Boot를 이용한 NFS 루트 파일 시스템 마운트 예제 = 379
 12.4 요약 = 381
  12.4.1 더 읽어 보기 = 382
Chapter 13 개발 도구
 13.1 GNU 디버거(GDB) = 384
  13.1.1 코어 덤프 디버그하기 = 385
  13.1.2 GDB 실행하기 = 387
  13.1.3 GDB의 디버그 세션 = 390
 13.2 데이터 표시 디버거 = 392
 13.3 cbrowser/cscope = 395
 13.4 추적 및 프로파일링 도구 = 396
  13.4.1 strace = 397
  13.4.2 strace의 다양한 기능 = 401
  13.4.3 ltrace = 404
  13.4.4 ps = 405
  13.4.5 top = 408
  13.4.6 mtrace = 410
  13.4.7 dmalloc = 412
  13.4.8 커널 웁스(Oops) = 416
 13.5 바이너리 유틸리티 = 419
  13.5.1 readelf = 419
  13.5.2 readelf를 이용해서 디버깅 정보 보기 = 421
  13.5.3 objdump = 424
  13.5.4 objcopy = 425
 13.6 기타 바이너리 유틸리티 = 425
  13.6.1 strip = 426
  13.6.2 addr2line = 426
  13.6.3 strings = 427
  13.6.4 ldd = 427
  13.6.5 nm = 428
  13.6.6 prelink = 429
 13.7 요약 = 430
  13.7.1 더 읽어 보기 = 430
Chapter 14 커널 디버깅 기술
 14.1 커널 디버깅의 어려움 = 434
 14.2 KGDB를 이용한 커널 디버깅 = 435
  14.2.1 KGDB 커널 구성 = 437
  14.2.2 KGDB를 활성화시킨 타깃 부팅하기 = 438
  14.2.3 유용한 커널 브레이크 포인트 = 441
 14.3 리눅스 커널 디버깅하기 = 442
  14.3.1 gdb 원격 시리얼 프로토콜 = 444
  14.3.2 최적화된 커널 코드 디버깅하기 = 447
  14.3.3 gdb 사용자 정의 명령어 = 454
  14.3.4 유용한 커널 gdb 매크로 = 455
  14.3.5 적재 가능 모듈 디버깅하기 = 465
  14.3.6 printk 디버깅 = 470
  14.3.7 매직 SysReq 키 = 471
 14.4 하드웨어를 이용한 디버깅 = 473
  14.4.1 JTAG 프로브를 이용해서 플래시 기록하기 = 475
  14.4.2 JTAG 프로브를 이용한 디버깅 = 476
 14.5 부팅이 되지 않을 때 = 481
  14.5.1 초기 시리얼 디버그 출력 = 481
  14.5.2 printk 로그 버퍼의 내용 덤프하기 = 483
  14.5.3 커널 패닉에서 KGDB 사용하기 = 485
 14.6 요약 = 486
  14.6.1 더 읽어 보기 = 487
Chapter 15 임베디드 리눅스 어플리케이션 디버깅하기
 15.1 타깃 디버깅 = 490
 15.2 원격(교차) 디버깅 = 490
  15.2.1 gdbserver = 493
 15.3 공유 라이브러리 디버깅 = 496
  15.3.1 GDB의 공유 라이브러리 이벤트 = 498
 15.4 여러 태스크 디버깅하기 = 502
  15.4.1 다중 프로세스 디버깅 = 502
  15.4.2 다중 쓰레드 어플리케이션 디버깅 = 505
  15.4.3 부트로더 및 플래시에 있는 코드 디버깅 = 509
 15.5 추가 원격 디버그 옵션 = 510
  15.5.1 시리얼 포트로 디버깅하기 = 510
  15.5.2 실행중인 프로세스에 연결하기 = 510
 15.6 요약 = 511
  15.6.1 더 읽어 보기 = 512
Chapter 16 리눅스 포팅
 16.1 리눅스 소스 코드의 구조 = 514
  16.1.1 아키텍처 브렌치 = 514
 16.2 자체 보드를 위한 리눅스 = 517
  16.2.1 선행 조건과 가정 = 517
  16.2.2 커널 초기화 커스터마이징 = 519
  16.2.3 정적인 커널 커맨드 라인 = 522
 16.3 플랫폼 초기화 = 524
  16.3.1 초기 변수 접근 = 528
  16.3.2 보드의 정보 구조 = 530
  16.3.3 머신 종속적인 호출 = 532
 16.4 한데 묶기 = 534
  16.4.1 기타 아키텍처 = 537
 16.5 요약 = 537
  16.5.1 더 읽어 보기 = 538
Chapter 17 리눅스와 리얼 타임
 17.1 리얼 타임 = 540
  17.1.1 소프트 리얼 타임 = 540
  17.1.2 하드 리얼 타임 = 541
  17.1.3 리눅스의 스케줄링 = 541
  17.1.4 지연 = 541
 17.2 커널 선점 = 543
  17.2.1 선점의 장애물 = 544
  17.2.2 선점 모델 = 545
  17.2.3 SMP 커널 = 547
  17.2.4 선점 지연의 원인 = 548
 17.3 리얼 타임 커널 패치 = 548
  17.3.1 리얼 타임 기능 = 550
  17.3.2 O(1) 스케줄러 = 553
  17.3.3 리얼 타임 프로세스 생성하기 = 553
  17.3.4 크리티컬 섹션 관리 = 555
 17.4 리얼 타임 커널 디버깅하기 = 556
  17.4.1 소프트 락업 감지 = 556
  17.4.2 선점 디버깅 = 557
  17.4.3 깨어나는 시간 디버깅 = 557
  17.4.4 깨어나는 지연 시간 기록 = 558
  17.4.5 인터럽트 차단 시간 = 558
  17.4.6 인터럽트 차단 시간 기록 = 559
  17.4.7 지연 시간 추적 = 561
  17.4.8 데드락 상태 디버깅하기 = 563
  17.4.9 락 모드 제어하기 = 563
 17.5 요약 = 564
  17.5.1 더 읽어 보기 = 564
Appendix A GNU 일반 공중 사용 허가서
 전문 = 567
 복제와 개작 및 배포에 관한 조건과 규정 = 569
 보증의 결여(제11조, 제12조) = 574
Appendix B U-Boot의 구성 가능 명령어 셋 = 577
Appendix C BusyBox 명령어 = 581
Appendix D SDRAM 인터페이스 고려 사항
 D.1 SDRAM 기초 = 592
  D.1.1 SDRAM 리프레시 = 593
 D.2 클럭 = 594
 D.3 SDRAM 설정 = 596
 D.4 요약 = 601
  D.4.1 더 읽어 보기 = 601
Appendix E 오픈 소스 리소스
 소스 저장소 및 개발자 정보 = 604
 메일링 리스트 = 604
 리눅스 뉴스 및 개발 정보 = 605
 오픈 소스에 대한 이해 및 토론 = 605
Appendix F 예제 BDI-2000 구성 파일 = 607
찾아보기 = 615

관련분야 신착자료