
리눅스 기반의 임베디드 제품 디자인
Bob Smith (지은이), John Hardin (지은이), Graham Phillips (지은이), Bill Pierce (지은이), 한정애 (옮긴이)
에이콘출판주식회사·2007-11-16
- 기술과학
- KDC 005.43
로그인하면 내 서재에 추가할 수 있어요.
책 소개
토스터나 오븐, 식기세척기는 우리 삶에서 쉽게 찾아볼 수 있는 어플라이언스다. 이들 가전제품의 사용법에 익숙해진 나머지 많은 사람들이 그 제품이 어떤 방식으로 동작하는지, 무엇이 제품을 어플라이언스로 만드는지, 아니 어플라이언스 자체에 대해 생각조차 하지 않는다. 이 책에서 어플라이언스는 단순한 기능을 수행하기 위해 개발된 장치를 일컫는다. 앞에서 언급한 어플라이언스에 대해서 조금만 생각을 해보면 앞의 정의처럼 토스터는 토스트할 때에, 오븐은 음식을 구을 때, 식기 세척기는 그릇을 씻을 때 사용된다는 것을 쉽게 알 수 있다. 수만 수천 가지의 일을 할 수 있는 PC에 비한다면 전형적인 어플라이언스는 간단하고 따분하다. 그런데 리눅스로 뭘 한다는 것일까? 그러나 초보자에겐 전형적인 어플라이언스도 사실 간단하지 않다. 전기로 움직이긴 하지만 여전히 기계적인 진공청소기 같은 장치들도 이젠 더 이상 전기로만 움직이는 게 아니라 프로세서와 정교한 사용자 인터페이스를 가지고 있다. 이렇게 전자 제품들이 바뀌어 가고 있기 때문에 새로운 기능을 관리하기 위해서는 어플라이언스에 운영체제를 올려 실행시켜야 한다. 리눅스는 저렴하고(대체로 공짜다), 오픈 소스(즉 원하는 대로 수정할 수 있다)이기 때문에 어플라이언스에 딱 맞는다. 단, 리눅스는 새로 개발되고 있는 어플라이언스에 더 적합하다고 할 수 있다. 디지털 비디오 녹화기(DVR, digital video recorder)는 몇 년 전에는 없던 제품이지만 최초로 개발돼 가장 유명해진 DVR 어플라이언스인 TiVO만 보아도 다른 많은 홈 네트워크 엔터테인먼트 어플라이언스처럼 리눅스를 사용한다. 여러분이 차세대 로봇 청소 시스템을 구축하려할 때 아무 것도 없는 바닥에서 시작하진 않을 것이다. 여러분은 이전 로봇들에서 재사용할 수 있는 부분을 최대한 골라내고 가능하다면 외부에서 만든 부품을 사서 쓰고 싶을 것이다. 이런 식의 재사용이라는 개념이 리눅스 어플라이언스에도 똑같이 적용되며 이 책에서는 리눅스를 쉽게 재사용하는 방법을 제시하려 한다. ★ 이 책에서 다루는 내용 ★ - 데몬에서 사용자 인터페이스를 분리시키는 방법 - 사용자 인터페이스가 실시간으로 구성, 상태, 통계 정보에 접근할 수 있게 하는 법 - 애플리케이션에 전문적인 네트워크 관리 기능 추가 - SNMP 사용과 MIB 설계 - 웹 기반 어플라이언스 인터페이스 설계 - 명령행 인터페이스(CLI) 설계 - 적외선 리모컨에서 입력을 받는 프레임버퍼 인터페이스 설계 - 어플라이언스에서 로그와 알람 관리 ★ 이 책의 대상 ★ 맞춤형 리눅스 어플라이언스를 구축하고 다양한 사용자 인터페이스를 지원할 뿐만 아니라 안전하기까지 한 데몬을 만들고 로그와 이벤트 관리를 지원하고 싶은 리눅스 프로그래머에게 적합한 책이다. 또한 데몬의 사용자 인터페이스를 다른 운영체제나 다른 프로그래밍 언어로 포팅해야 할 때 드는 노력을 최소화하고 싶은 개발자라면 이 책을 추천한다. 이 책은 독자가 리눅스 환경 하에서 C로 프로그래밍하는 데 익숙하다고 가정했다. ★ 부록 CD 제공 ★ - 복잡하게 리눅스를 깔지 않아도 간단히 CD 부팅만으로 리눅스 환경에서 개발 가능 - 이 책에 들어있는 모든 소스코드 제공 - 독자가 직접 소스를 추가하고 기능들을 채워넣을 수 있는 비어 있는 데몬 제공
목차펼치기접기
들어가며 / 21 이 책에서 다루는 내용 / 22 이 책에서 다루지 않는 내용 / 23 누구를 위한 책인가 / 24 왜 리눅스인가? / 24 공개된 소스 코드 / 24 다양한 하드웨어 지원 / 24 많은 리눅스 개발자 / 25 신뢰성 / 25 높은 품질의 컴파일러 / 25 좋은 문서 / 25 다양한 소프트웨어 패키지 / 25 저렴한 개발 비용 / 25 개발 시 라이센스 비용 없음 / 26 보안 / 26 리눅스 어플라이언스 설계 / 26 1장 어플라이언스의 구조 / 27 UI와 데몬 / 29 데몬 / 29 사용자 인터페이스 / 30 프로세스간 통신 / 32 Laddie 어플라이언스의 구조 / 32 요약 / 33 2장 데몬 관리 / 35 데몬을 관리하기 위한 공통 접근 방식 / 36 파일 기반 관리 / 37 데몬 기반 웹 인터페이스 / 38 “모든 것을 한번에” 접근 방식 / 39 제어와 상태 프로토콜 / 39 제어와 상태 프로토콜의 필수 조건 / 42 공통 제어와 상태 프로토콜 / 43 요약 / 49 3장 RTA 사용 / 51 RTA 어플라이언스 구조 / 52 RTA 데몬 구조 / 53 RTA에게 칼럼과 테이블에 대해 알리기 / 54 칼럼 / 54 테이블 / 58 첫 번째 RTA 프로그램 / 60 문제 정의 / 60 코드 리뷰 / 60 RTA 설치 / 67 설치와 링크 / 67 검사 / 68 작은 SQL / 70 SELECT / 70 UPDATE / 71 WHERE / 72 LIMIT / 72 RTA의 빌트인 테이블 소개 / 73 rta_dbg / 73 rta_stat / 74 rta_tables / 74 rta_columns / 75 RTA 테이블 편집기 / 75 요약 / 78 4장 데몬의 설치와 보안 / 81 데몬의 설치 / 82 데몬의 구성 읽어오기 / 83 백그라운드로 진입 / 84 프로세스와 세션 리더 / 85 작업 디렉토리의 설정 / 87 stdin, stdout과 stderr로 리다이렉트 / 87 로그 설정 / 88 그룹과 사용자 ID 설정 / 89 pidfile 검사 / 90 umask 설정 / 93 신호 핸들러 설정 / 93 데몬 보안 / 95 안전한 데몬 설계 / 95 안전한 데몬의 작성 / 96 공격을 당하더라도 손해를 줄이는 방법 / 99 프로토타입 데몬 / 102 요약 / 103 읽을 만한 책 / 103 5장 LADDIE 알람 시스템 : 예제 어플라이언스 / 105 알람 시스템의 소개 / 106 센서 / 106 “zone” 활성화 / 109 Laddie의 기능 명세 / 110 ladd의 구성과 상태 / 110 ladd의 알람 처리 / 113 Laddie 하드웨어의 설계 / 114 Laddie 소프트웨어의 설계 / 116 appInit() 콜백 하위 루틴 / 116 poll_timeout() 콜백 하위 루틴 / 118 user_update() 콜백 하위 루틴 / 120 ladd 만들기와 검사 / 122 요약 / 123 6장 로그 / 125 로그가 필요한 이유 / 126 로그 시스템의 구조 / 127 메시지 출발지 / 127 메시지 경로 설정 / 129 메시지 목적지 / 129 syslog / 132 syslog 구조 / 132 syslog의 사용 / 132 syslog 프로토콜 / 135 syslogd 데몬 사용 / 136 한계, 장점과 syslogd의 대안 / 137 주문형 로그 / 138 요약 / 141 7장 Laddie 이벤트 처리 / 143 새로운 이벤트 처리 시스템이 필요한 이유 / 144 logmuxd의 특징과 능력 / 146 logmuxd의 구성 / 147 logmuxd 출발지 / 147 logmuxd 필드와 다시 쓰기 / 148 logmuxd의 목적지 / 151 logmuxd의 사용 예 / 152 예제 1: logmuxd 설명 / 152 예제 2: logmuxd와 수락된 TCP 연결 / 153 예제 3: logmuxd와 SNMP 트랩 / 157 요약 / 160 8장 웹 인터페이스 설계 / 161 웹 기초 / 162 DNS와 TCP / 163 웹서버 / 164 CGI / 164 자바스크립트 / 164 진화하는 기술 / 164 요구 사항의 설정 / 165 웹서버의 선택 / 165 선택 사항 / 165 PHP 사용 / 166 예제: 링크시스 WRT54G 무선 라우터 / 166 예제: TUX 웹서버 / 167 웹서버의 비교 / 167 UI 설계 / 173 메뉴 시스템 / 173 대화상자 / 175 에러 메시지 / 175 Ajax로 응답성 높이기 / 177 구현 / 178 데몬과 통신 / 179 알람 상태 페이지 / 182 알람 설정 페이지 / 183 페이지 레이아웃과 메뉴 시스템 / 184 웹서버의 독립성 / 185 Ajax를 사용한 비동기 갱신 / 186 설계 개선 / 193 참고 자료 / 194 요약 / 195 9장 명령 행 인터페이스 설계 / 197 CLI가 필요한 이유 / 198 보안 / 198 가용성 / 199 대역폭 / 199 스크립트 사용 가능 / 199 구성 백업과 복원 / 200 CLI의 종류 201 문장 / 201 마법사 / 202 메뉴 / 203 상태 유지 / 203 문자와 행 기반 인터페이스 / 204 CLI로의 접근 제공 / 204 Laddie의 CLI / 204 Laddie 명령 요약 / 205 set logs on / 205 dump / 206 help / 207 test 명령을 위한 코드 재검토 / 207 CLI 단어: token.l / 208 CLI 문법: syntax.y / 209 C 코드 / 209 코드에 대한 추가 설명 / 210 요약 / 210 10장 프론트 패널 인터페이스 설계 / 211 버튼, LED, LCD / 212 버튼 / 212 LED / 215 LCD / 216 프론트 패널 UI의 설계 / 218 간단하게 구성 / 218 시도, 실패, 다시 시도 / 218 LCD 메뉴와 모드 사용 / 220 빠르게! / 221 Laddie 프론트 패널 / 223 Laddie LCD 메뉴 시스템 / 225 Laddie 프론트 패널 하드웨어 / 226 Laddie 프론트 패널 UI / 231 설계 개선 방향 / 234 요약 / 235 11장 프레임 버퍼 인터페이스 설계 / 237 비디오 메모리의 동작 / 239 비디오 메모리의 바이트가 해석되는 방법 / 239 비디오 메모리가 디스플레이에 맵핑되는 방법 / 241 리눅스 프레임 버퍼 장치 드라이버 / 243 open, read, write와 close를 사용한 프레임 버퍼 조작 / 243 ioctl 명령으로 프레임 버퍼 구성 / 244 프레임 버퍼를 위한 간단한 그래픽 프로그램 / 247 그래픽 라이브러리 / 252 SDL로 “Hello, world” 출력 / 254 라이브러리 초기화 / 255 프레임 버퍼 초기화 / 255 표면 생성 / 256 표면 출력 / 257 이벤트 처리 / 257 그래픽 UI 툴킷 / 258 STBmenu로 간단한 UI 구축 / 259 STBmenu에 의한 “Hello, world!” 출력 / 263 Laddie 프레임 버퍼 UI / 267 요…
출처: 국립중앙도서관 서지정보
리뷰 남기기
로그인하면 리뷰를 남길 수 있어요.
리뷰 0개
아직 리뷰가 없어요.