책 이미지
책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 개발/방법론 > 리눅스/유닉스 프로그래밍
· ISBN : 9788960771499
· 쪽수 : 804쪽
책 소개
목차
1장 소개
___진화
___GNU 카피레프트
___kernel.org
___메일링 리스트와 포럼
___리눅스 배포판
___원시 코드 살펴보기
___커널 빌드하기
___적재 가능한 모듈
___시작하기 전에
2장 커널 내부 탐험
___시동
______BIOS-Provided Physical RAM Map
______758MB LOWMEM Available
______Kernel Command Line: ro root=/dev/hda1
______Calibrating Delay...1197.46 BogoMIPS(lpj=2394935)
______Checking HLT Instruction
______NET: Registered Protocol Family 2
______Freeing Initrd Memory: 387k Freed
______IO Scheduler Anticipatory Registered(Default)
______Setting Up Standard PCI Resources
______EXT3-fs: Mounted Filesystem
______INIT: Version 2.85 Booting
______Adding 1552384k swap on /dev/hda6
___커널모드와 유저모드
___프로세스 문맥과 인터럽트 문맥
___커널 타이머
______HZ와 jiffies
______긴 지연
______짧은 지연
______펜티엄 TSC
______RTC(Real Time Clock)
___커널 동시성
______스핀락과 뮤텍스
______원자적인 연산
______읽기-쓰기 잠금
______디버깅
___프로세스 파일 시스템
___메모리 할당하기
___원시 코드 살펴보기
3장 커널 기능
___커널 스레드
______커널 스레드 생성
______프로세스 상태와 대기 큐
______사용자 영역 도우미
___도우미 인터페이스
______연결 리스트
______해시 리스트
______작업 큐
______통지 연쇄
______완료 인터페이스
______kthread 도우미
______오류 처리 지원
___원시 코드 살펴보기
4장 기반 다지기
___디바이스와 드라이버 소개
___인터럽트 처리
______인터럽트 문맥
______IRQ 할당
______디바이스 예제: 회전 휠
______softirq와 tasklet
___리눅스 디바이스 모델
______udev
______sysfs, kobject, 디바이스 클래스
______핫플러그와 콜드플러그
______마이크로코드 내려 받기
______모듈 자동 적재
___메모리 장벽
___전원 관리
___원시 코드 살펴보기
5장 문자 드라이버
___문자 드라이버 기초
___디바이스 예제: 시스템 CMOS
______드라이버 초기화
______open과 release
______자료 교환하기
______seek
______ioctl
___자료 가용성 감지
______poll
______fasync
___병렬 포트와 통신하기
______디바이스 예제: 병렬 포트 LED 보드
___RTC 하위시스템
___의사 문자 드라이버
___기타 드라이버
______디바이스 예제: 워치독 타이머
___문자 드라이버 주의 사항
___원시 코드 살펴보기
6장 직렬 드라이버
___계층 아키텍처
___UART 드라이버
______디바이스 예제: 휴대전화
______RS-485
___TTY 드라이버
___회선 규범
______디바이스 예제: 터치 컨트롤러
___원시 코드 살펴보기
7장 입력 드라이버
___입력 이벤트 드라이버
______evdev 인터페이스
___입력 장치 드라이버
______serio
______키보드
______마우스
______터치 컨트롤러
______가속도계
______출력 이벤트
___디버깅
___원시 코드 살펴보기
8장 I2C 프로토콜
___I2C/SMBus란?
___I2C 코어
___버스 트랜잭션
___디바이스 예제: EEPROM
______초기화
______디바이스 탐색하기
______어댑터 능력 점검하기
______디바이스에 접근하기
______더 많은 메소드
___디바이스 예제: RTC
___I2C-dev
___LM 센서를 사용한 하드웨어 감시
___SPI 버스
___1 와이어 버스
___디버깅
___원시 코드 살펴보기
9장 PCMCIA와 CF
___PCMCIA/CF란?
___리눅스-PCMCIA 하위시스템
___호스트 컨트롤러 드라이버
___PCMCIA 코어
___드라이버 서비스
___클라이언트 드라이버
______자료 구조
______디바이스 예제: PCMCIA 카드
___하나로 모으기
___PCMCIA 저장소
___직렬 PCMCIA
___디버깅
___원시 코드 살펴보기
10장 PCI
___PCI 패밀리
___주소 지정과 식별
___PCI 영역에 접근하기
______구성 영역
______입출력과 메모리
___DMA
___디바이스 예제: 이더넷 모뎀 카드
______초기화와 탐색
______자료 전송
___디버깅
___원시 코드 살펴보기
11장 USB
___USB 아키텍처
______버스 속도
______호스트 컨트롤러
______전송 유형
______주소 지정
___리눅스 USB 하위시스템
___드라이버 자료 구조
______usb_device 구조체
______URB
______파이프
______기술자 구조체
___열거
___디바이스 예제: 원격 측정 카드
______초기화와 탐색
_____레지스터 접근
______자료 전송
___클래스 드라이버
______대용량 저장소
______USB 직렬 변환기
______HID
______블루투스
___가젯 드라이버
___디버깅
___원시 코드 살펴보기
12장 비디오 드라이버
___디스플레이 아키텍처
___리눅스 비디오 하위시스템
___디스플레이 매개변수
___프레임 버퍼 API
___프레임 버퍼 드라이버
______디바이스 예제: 네비게이션 시스템
___콘솔 드라이버
______디바이스 예제: 휴대폰 다시 살펴보기
______시작 로고
___디버깅
___원시 코드 살펴보기
13장 오디오 드라이버
___오디오 아키텍처
___리눅스 사운드 하위시스템
___디바이스 예제: MP3 재생기
______드라이버 메소드와 구조체
______ALSA 프로그래밍
___디버깅
___원시 코드 살펴보기
14장 블록 드라이버
___저장소 기술
___리눅스 블록 입출력 계층
___입출력 스케줄러
___블록 드라이버 자료 구조와 메소드
___디바이스 예제: 단순한 저장소 컨트롤러
______초기화
______블록 디바이스 연산
______디스크 접근
___고급 주제
___디버깅
___원시 코드 살펴보기
15장 네트워크 인터페이스 카드
___드라이버 자료 구조
______소켓 버퍼
______Net 디바이스 인터페이스
______활성화
______자료 전달
______워치독
______통계
______구성
______버스별 세부 사항
___프로토콜 계층 살펴보기
______수신 경로
______전송 경로
______흐름 제어
___버퍼 관리와 동시성 제어
___디바이스 예제: 이더넷 NIC
___ISA 네트워크 드라이버
___비동기 전송 모드(ATM)
___네트워크 처리량
______드라이버 성능
______프로토콜 성능
___원시 코드 살펴보기
16장 무선 리눅스
___무선의 장단점
___블루투스
______BlueZ
______디바이스 예제: CF 카드
______디바이스 예제: USB 어댑터
______RFCOMM
______네트워크
______사용자 인터페이스 디바이스
______오디오
______디버깅
______원시 코드 살펴보기
___적외선
______리눅스 IrDA
______디바이스 예제: 슈퍼 I/O 칩
______디바이스 예제: IR 동글
______IrComm
______네트워크
______IrDA 소켓
______리눅스 적외선 리모콘
______원시 코드 살펴보기
___와이파이
______구성
______디바이스 드라이버
______원시 코드 살펴보기
___이동 통신 네트워크
______GPRS
______CDMA
___최신 유행
17장 MTD
___플래시 메모리란?
___리눅스 MTD 하위시스템
___맵 드라이버
______디바이스 예제: 핸드핼드
___NOR 칩 드라이버
___NAND 칩 드라이버
___사용자 모듈
______블록 디바이스 흉내 내기
______문자 디바이스 흉내 내기
______JFFS2
______YAFFS2
___MTD-Utils
___MTD 구성
___XIP
___펌웨어 허브
___디버깅
___원시 코드 살펴보기
18장 임베디드 리눅스
___도전
___구성 요소 선택
___툴 체인
___임베디드 부트로더
___메모리 배치
___커널 이식
___임베디드 드라이버
______플래시 메모리
______UART
______버튼과 휠
______PCMCIA/CF
______SD/MMC
______USB
______RTC
______오디오
______터치스크린
______비디오
______CPLD/FPGA
______네트워크 접속 기능
______산업계에서 요구하는 전자장비
______기타 드라이버
___루트 파일 시스템
______NFS로 마운트된 루트
______작고 간결한 미들웨어
___테스트 기반 구조
___디버깅
______보드 재작업
______디버거
19장 사용자 영역 드라이버
___프로세스 스케줄링과 반응 시간
______기존 스케줄러
______O(1) 스케줄러
______CFS 스케줄러
______반응 시간
___입출력 영역에 접근하기
___메모리 영역에 접근하기
___사용자 모드 SCSI
___사용자 모드 USB
___사용자 모드 I2C
___UIO
___원시 코드 살펴보기
20장 기타 디바이스와 드라이버
___ECC 보고
______디바이스 예제: ECC를 탑재한 메모리 컨트롤러
___주파수 조정
___임베디드 컨트롤러
___ACPI
___ISA와 MCA
___파이어와이어
___I2O
___아마추어 라디오
___VoIP
___고속 연결
______InfiniBand
______RapidIO
______광 채널
______iSCSI
21장 디바이스 드라이버 디버깅
___커널 디버거
______디버거로 들어가기
______커널 디버거(kdb)
______커널 GNU 디버거(kgdb)
______GNU 디버거(gdb)
______JTAG 디버거
______내려 받기
___커널 프로브
______kprobe
______jprobe
______반환 프로브
______제약
______원시 코드 살펴보기
___kexec와 kdump
______kexec
______kdump로 kexec하기
______kdump
______원시 코드 살펴보기
___프로파일링
______OProfile을 사용한 커널 프로파일링
______gprof를 사용한 애플리케이션 프로파일링
___추적
______리눅스 추적 툴킷
___리눅스 테스트 프로젝트
___사용자 모드 리눅스
___진단 도구
___커널 해킹 구성 옵션
___테스트 장비
22장 유지 보수와 배포
___코딩 스타일
___변경 표식
___버전 관리
___체크섬 일치
___빌드 스크립트
___이식성 높은 코드
23장 시스템 종료
___점검 리스트
___이제 뭘 하지?
부록 A 리눅스 어셈블리어
___디버깅
부록 B 리눅스와 바이오스
___실제 모드 호출
___보호 모드 호출
___바이오스와 기존 드라이버
부록 C seq 파일
___seq 파일 장점
___NVRAM 드라이버 개선하기
___원시 코드 살펴보기