권장도서
책이름: 리눅스 디바이스 드라이버 저 자: 유영창 출판사: 한빛미디어 장 수: 960쪽
리눅스 디바이스 드라이버는 (주)FALINUX의 유영창 이사님께서 직접 기술하셨기 때문에 그 명성만으로도 의심없이 구매한 책입니다. 아니나다를까 제가 도서 구매로 애용하는 인터파크 도서 코너에서도 많은 분들이 독서평으로 칭찬의 글이 많이 올라와 있네요.
매우 방대한 양의 기술 내용이 들어 있음에도 읽기 편한 구성과 실제 테스트할 수 있는 방법 및 예제가 알뜰이 들어 있어서 저 같이 초급 개발자도 부담 없이 읽을 수 있었습니다. 또한 방대한 내용 만큼이나 실무에 바로 적용할 수 있는 깊이 있는 내용으로 고급 개발자에게는 참고서와 같은 책이라고 생각됩니다.
아울러 저 같은 경우에는 드라이버 제작뿐만 아니라 리눅스에 대해 내부적으로 깊이있게 이해할 수 있어서 더욱 값진 책이 아닌가 생각됩니다.
아래는 책의 목차입니다.
감수자 서문
저자 서문
이 책의 주요 내용
한빛이 제시하는 리눅스 디바이스 드라이버 학습 로드맵
이 책에서 다루는 예제
이 책의 실습 환경 및 주요 독자층
차례CHAPTER 1 실습 환경 설정과 준비
- 시스템과 리눅스 운영체제의 준비
- 커널 소스의 준비
- 실습 기자재의 준비
- 준비된 실습 환경 점검
CHAPTER 2 리눅스 커널과 디바이스 드라이버
- 운영체제로서의 리눅스
- 리눅스 커널
- 디바이스 드라이버
CHAPTER 3 디바이스 파일과 저수준 파일 입출력
- 디바이스 파일과 파일 입출력 함수
- 저수준 파일 입출력 함수
- 디바이스 파일 관련 함수
- 저수준 파일 입출력 함수의 사용 예
... mknod 명령과 저수준 파일 입출력 함수 정리
CHAPTER 4 간단한 모듈 테스트
- 모듈 프로그램 맛보기
- 모듈 소스 준비
- 모듈 소스의 형식
- 모듈 컴파일용 Makefile
- 모듈 매개변수의 지정
- 커널 메시지의 출력
- 커널과 모듈
CHAPTER 5 메모리 할당과 해제
- 변수
- 동적 메모리
- 동적 메모리 예제
- 메모리 풀
- 메모리 풀 예제
... 메모리 할당과 해제 함수의 정리CHAPTER 6 디바이스 드라이버의 등록과 해제
- 디바이스 드라이버 제어 방식
- struct file_operations
- 문자 디바이스 드라이버 등록과 해제 및 구성
- 응용 프로그램과 형 디바이스 드라이버의 호출 관계 예제
... 디바이스 드라이버 등록과 해제 함수 정리CHAPTER 7 디바이스 드라이버의 초기화와 종료
- 초기화와 종료 처리
- 모듈 사용 횟수의 관리
- I/O 영역의 경쟁 처리 함수
... 디바이스 드라이버 초기화와 종료 함수의 정리CHAPTER 8 디바이스 드라이버의 읽기와 쓰기
- 읽기와 쓰기의 구현
- I/O 처리
- 사용자 프로세스 공간과 커널 프로세스 공간
- 디바이스 드라이버의 읽기와 쓰기 구현 예제
... 디바이스 드라이버 읽기와 쓰기 함수 정리CHAPTER 9 주 번호와 부 번호의 처리
- 주 번호, 부 번호, 디바이스 타입
- 부 번호에 의한 파일 처리 방법
- 부 번호에 의한 파일 처리 예제
- 예약된 주 번호
CHAPTER 10 디바이스의 제어
- 디바이스 제어
- ioctl() 함수를 이용한 입출력 구현 예제
... 디바이스 제어 함수의 정리CHAPTER 11 시간 처리와 커널 타이머
- 시간 처리
- 커널 타이머
- 커널 타이머를 이용한 LED 점멸 예제
... 시간 처리와 커널 타이머 함수 정리CHAPTER 12 인터럽트 처리
- 인터럽트
- 인터럽트 발생 시간 체크 예제
... 인터럽트 처리 함수 정리CHAPTER 13 블록킹 I/O
- 프로세스의 사용 효율성과 잠들기(sleep) 구조
- 블록킹 I/O
- 인터럽트 발생 시간 체크 예제
- wait_event_interruptible 매크로
... 블록킹 I/O 함수 정리CHAPTER 14 입출력 다중화
- 입출력 다중화
- 다중 입출력의 구현
- 다중 입출력 처리를 이용한 프린터 포트 예제
... 입출력 다중화 함수 정리CHAPTER 15 태스크 큐와 워크 큐
- 태스크 큐와 워크 큐의 필요성
- 태스크 큐
- 워크 큐
- 태스크 큐 예
- 워크 큐 예
- 태스크 큐를 이용한 LED 점멸
- 워크 큐를 이용한 키 입력 채터링 방지 예제
... 태스크 큐 함수 정리
... 워크 큐 함수 정리CHAPTER 16 BottomHalf
- TopHalf와 BottomHalf
- 태스크 큐와 mark_bh() 함수
- 태스크 큐 처리 수정(2.4-> 2.6)
- 인터럽트 발생 시간 체크 예제
... 인터럽트 함수 정리CHAPTER 17 proc 파일 시스템
- 시스템 정보의 확인
- proc 파일 시스템
- proc 파일 시스템 동작 방식
- 가산기 예제
... proc 파일 시스템 함수 정리
CHAPTER 18 메모리 매핑
- 물리 주소와 가상 주소
- 주소 변환 함수
- 프로세스 메모리 매핑
- 매개변수 전달값을 보여주는 예제
- VIDEO I/O 영역 메모리 mmap 구현 예제
- nopage를 이용한 커널 메모리 mmap 구현 예제
... 메모리 매핑 함수 정리
CHAPTER 19 모듈간의 상호 참조
- 모듈간의 상호 참조와 EXPORT_SYMBOL 매크로
- 커널 2.4의 /proc/ksyms와 커널 2.6의 /proc/kallsyms
- 모듈간의 심볼 참조 예제
CHAPTER 20 다중 프로세스 환경의 디바이스 드라이버
- 단일 프로세스를 위한 디바이스 드라이버
- 프로세스별 관련 관리
- 비선점형 커널의 디바이스 드라이버
- 선점형 커널의 디바이스 드라이버
CHAPTER 21 디바이스 드라이버를 커널 소스에 포함시키는 방법
- 사전 고려 사항
- 커널에서의 커널 컴파일 옵션 파일
- Makefile 문법 규칙
- 디바이스 드라이버를 커널에 포함시키는 예
CHAPTER 22 블록 디바이스 드라이버
- 리눅스와 블록 디바이스
- 하드디스크의 특성
- 블록 디바이스 드라이버와 요구 큐
- 버전별 블록 디바이스 처리
- 커널 2.4의 블록 디바이스 드라이버
- make_request 방식의 램디스크 예제
- request 방식의 가상의 하드디스크 예제
- 커널 2.6의 블록 디바이스 드라이버
- make_request 방식의 램디스크 예제
- request 방식의 가상의 하드디스크 예제
... 블록 디바이스 함수 정리CHAPTER 23 네트워크 디바이스 드라이버
- 리눅스와 네트워크 디바이스 드라이버
- 네트워크 디바이스 드라이버 등록과 제거
- 보편적인 초기화 및 등록 처리 절차
- struct net_device의 이해
- 네트워크 디바이스의 열기와 닫기
- 전송과 수신
- 통계 처리
- 네트워크 디바이스 제어 ioctl
- 멀티 캐스트 처리
... 네트워크 디바이스 드라이버 함수 정리CHAPTER 24 디바이스 드라이버 파일 시스템(devfs)
- devfs 파일 시스템
- 디바이스 파일 생성 예제
- devfsc 파일 시스템 함수 정리
CHAPTER 25 시스템 파일 시스템(sysfs)
- sysfs 파일 시스템
- sysfs 파일 시스템의 이용
CHAPTER 26 이기종 시스템으로의 이식, 시그널, 헬퍼
- 이기종 시스템으로의 디바이스 드라이버 이식
- ARM용 DIO 디바이스 드라이버 예제
- 시그널과 SIGIO
- call_usermodehelper 사용 예제
- modprobe와 모듈 적재 요청 처리
CHAPTER 27 DMA와 PCI 디바이스
- DMA
- PCI
참고문헌/참고 사이트
찾아보기