책 이미지

책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > OS/Networking > 리눅스
· ISBN : 9791188621743
· 쪽수 : 940쪽
· 출판일 : 2020-03-06
책 소개
목차
PART I 라즈베리 파이 사용하기
CHAPTER 1 사물인터넷과 라즈베리 파이 3
1.1 사물인터넷과 오픈 소스 하드웨어 플랫폼 4
1.2 라즈베리 파이 한 입 베어 물기 10
1.3 라즈베리 파이를 위한 주변 장치 14
1.4 라즈베리 파이를 위한 준비 운동: 사용 환경 설정 21
1.5 요약 46
CHAPTER 2 리눅스의 기초: 라즈베리 파이와 친해지기 49
2.1 리눅스의 사용 환경과 구조 51
2.2 리눅스의 기본 명령어 54
2.3 리눅스 텍스트 에디터 70
2.4 리눅스의 프로그래밍 도구 78
2.5 요약 104
CHAPTER 3 라즈베리 파이와 GPIO: 하드웨어 제어 107
3.1 GPIO의 개요 108
3.2 LED 제어 프로그래밍 111
3.3 wiringPi를 이용한 GPIO 프로그래밍 124
3.4 SenseHAT을 이용한 기상 관측 시스템 152
3.5 요약 168
PARTII 리눅스 기본 프로그래밍
CHAPTER 4 리눅스 프로그래밍의 기초 173
4.1 리눅스의 기본 구조와 파일 시스템 174
4.2 파일 처리와 표준 입출력 178
4.3 파일 정보와 권한 201
4.4 디렉터리와 시간 처리 214
4.5 리눅스 시스템 프로그래밍과 라즈베리 파이의 제어 228
4.6 요약 234
CHAPTER 5 프로세스와 스레드: 다중 처리 237
5.1 프로세스와 시그널 238
5.2 멀티 프로세스와 다중 처리 프로그래밍 260
5.3 프로세스 간 통신 283
5.4 POSIX 스레드와 동기화 310
5.5 다중 처리와 라즈베리 파이의 제어 320
5.6 요약 326
CHAPTER 6 리눅스 네트워크 프로그래밍: 사물인터넷의 연결을 위한 기초 329
6.1 네트워크의 개요와 BSD 소켓 330
6.2 UDP 네트워크 프로그래밍 346
6.3 TCP 서버와 클라이언트 프로그래밍 356
6.4 HTTP와 웹 서버 프로그래밍 375
6.5 웹 서버와 라즈베리 파이의 제어 398
6.6 요약 404
PART III 멀티미디어 프로그래밍
CHAPTER 7 리눅스 멀티미디어 프로그래밍: 현란함과 즐거움 409
7.1 멀티미디어와 라즈베리 파이 410
7.2 리눅스 사운드 프로그래밍 421
7.3 프레임 버퍼를 통한 이미지 출력 460
7.4 Video4Linux2와 Pi Camera 488
7.5 라즈베리 파이와 멀티미디어 504
7.6 요약 506
CHAPTER 8 OpenCV 프로그래밍: 사진 속 얼굴을 찾아라 509
8.1 영상 처리와 OpenCV 510
8.2 OpenCV 기본 프로그래밍 512
8.3 OpenCV와 영상 처리 526
8.4 OpenCV를 이용한 얼굴 인식 540
8.5 라즈베리 파이와 OpenCV 549
8.6 요약 550
CHAPTER 9 OpenGL ES를 이용한 3D 프로그래밍: 3차원의 세계로 553
9.1 라즈베리 파이와 OpenGL 554
9.2 EGL™과 OpenGL ES 1.0 560
9.3 OpenGL ES 1.1을 이용한 3D 애니메이션 578
9.4 OpenGL ES 2.0과 셰이딩 언어 587
9.5 3D와 라즈베리 파이 627
9.6 요약 632
PART IV 리눅스 고급 프로그래밍
CHAPTER 10 Qt를 이용한 GUI 프로그래밍: 더 편리한 접근성 637
10.1 Qt와 라즈베리 파이: Qt on Pi 638
10.2 Qt 프로그래밍과 사용자 정의 위젯 656
10.3 Qt 위젯과 레이아웃 669
10.4 Qt Creator를 이용한 GUI 디자인 694
10.5 GUI와 라즈베리 파이 711
10.6 요약 718
CHAPTER 11 라즈베리 파이와 인공지능: Caffe에서 한잔 721
11.1 인공지능의 개요 722
11.2 Caffe를 이용한 인공지능 728
11.3 Caffe 기본 프로그래밍 743
11.4 Caffe를 이용한 숫자 인식 751
11.5 Caffe와 라즈베리 파이의 인공지능 773
11.6 요약 779
CHAPTER 12 리눅스 커널과 디바이스 드라이버: 더 깊은 곳으로 781
12.1 리눅스 커널과 디바이스 드라이버 782
12.2 리눅스 디바이스 드라이버 프로그래밍 78
12.3 시스템 레지스터와 LED 출력 803
12.4 LED 출력을 위한 GPIO 드라이버 프로그래밍 811
12.5 스위치를 이용한 커널 이벤트 처리 827
12.6 요약 836
CHAPTER 13 부록 839
13.1 임베디드 리눅스 공부하기 840
13.2 리눅스 셸(Shell) 프로그래밍 846
13.3 GStreamer를 이용한 멀티미디어 프로그래밍 865
13.4 ARM NEON 기반의 SIMD 프로그래밍 888
저자소개
책속에서
이 책에는 숙련자를 위한 ‘깊게 보기’ 코너가 있다. 초보자는 이해가 되지 않을 수도 있으므로 읽지 않고 넘어가도 좋다. ‘참고하기’는 프로그래밍과 깊은 관계는 없지만 읽어보면 본문의 내용을 보다 쉽게 이해할 수 있는 내용을 담았고, 각 내용에 대한 참고나 더 자세한 내용을 알고자 하는 독자를 위해 ‘각주’를 추가하였다. ‘숨은 이야기’에는 책을 읽다가 머리가 아프거나 심심할 때 읽어볼 수 있도록 재미있는 내용을 담았다.
리눅스 운영체제는 크게 커널, 디바이스 드라이버, 시스템 라이브러리, 셸(Shell), 유틸리티, X 윈도 시스템으로 나눌 수 있다. 먼저 커널(Kernel)은 중심부, 핵심이라는 뜻인데, 리눅스 커널은 실제 운영체제(Operating System)를 구성하는 기본적인 토대로서 시스템의 가장 기본적인 메모리나 프로세스 등의 하드웨어를 관리하고, 애플리케이션이 커널을 이용할 수 있도록 시스템 호출(System Call) 같은 API(Application Programming Interface)를 제공한다. 또한 커널은 하드웨어의 제어를 위한 디바이스 드라이버(Device Driver)를 포함한다.
일반적으로 전류는 VCC(전원)에서 GND(접지)로 흐른다. LED 소자를 라즈베리 파이에 연결할 때는 GND 핀을 음극에 연결하고, GPIO를 양극에 연결한다. 저항은 전류의 흐름을 방해하는 부품으로, 전기 에너지는 열 에너지로 변환되어 사라진다. 이렇게 전류를 감소시킬 수 있다. 라즈베리 파이의 GPIO 18번 핀에 저항 220Ω을 연결하고, 이 저항의 다른 쪽 단자에 LED의 양극을 연결한다. 저항은 LED와 다르게 극성이 없다. 그리고 LED의 음극을 라즈베리 파이의 GND 핀에 연결한다.