장바구니 담기 close

장바구니에 상품을 담았습니다.

Yocto, 쉽게 이해하고 깊게 다루기 기본 개념부터 실습 예제까지

Yocto, 쉽게 이해하고 깊게 다루기 기본 개념부터 실습 예제까지

  • 조운래
  • |
  • 에이콘출판
  • |
  • 2023-08-28 출간
  • |
  • 612페이지
  • |
  • 188 X 235 X 28mm
  • |
  • ISBN 9791161757780
판매가

45,000원

즉시할인가

40,500

배송비

무료배송

(제주/도서산간 배송 추가비용:3,000원)

수량
+ -
총주문금액
40,500

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평

◈ 이 책에서 다루는 내용 ◈

◆ 입문자들이 Yocto의 구조와 개념을 익힐 수 있도록 bitbake의 기초 동작부터 설명
◆ 오픈 임베디드 코어와 bitbake를 포함하는 오픈 임베디드 빌드 시스템에 대한 기초 동작부터 설명
◆ Yocto를 이용한 애플리케이션, 커널 드라이버 등의 코드 작성법
◆ 최신 Yocto 버전인 kirkstone의 개념 및 dunfell 버전에서 kirkstone으로의 마이그레이션 방법
◆ 계층형 아키텍처에 기반한, 정해진 Yocto 레이어에 대한 설명과 예제
◆ Yocto의 까다로운 부분인 패키지와 의존성에 대한 설명 및 예제
◆ SDK, devtool을 이용한 패키지 개발에 대한 설명 및 예제
◆ Yocto에서 제공되는 임베디드 코어를 이용한 손쉽고 효율적인 코드 작성법


◈ 이 책의 대상 독자 ◈
◆ 평소 Yocto에 관심은 있었지만 어디서부터 어떻게 공부해야 할지 모르는 입문자
◆ Yocto를 다루고는 있지만 막연히 사용할 줄만 알고, 전체적인 구조와 원리를 모르는 실무자
◆ Yocto를 이용해 리눅스 기반의 프로그램을 만들어 보고 싶은 개발자


◈ 이 책의 구성 ◈
1장에서는 Yocto가 무엇인지 알아보고 Yocto에 담긴 추상화의 의미를 이해한다.
2장에서는 Yocto에서 빌드 시스템의 중심인 bitbake에 대해 자세하게 알아본다.
3장에서는 오픈 임베디드 빌드 시스템을 담고 있는 포키에 대해 알아본다.
4장에서는 실습에 들어가기에 앞서 빌드를 좀 더 빠르게 할 수 있는 방안으로 두 가지 방법을 제시한다. 따라서 자신만의 PREMIRRORS와 공유 상태 캐시를 구성하는 방법을 학습한다.
5장에서는 새로운 레이어를 만들고 직접 레시피 파일을 작성해 본 후 관련 문법을 학습한다.
6장에서는 5장에서 만든 애플리케이션 바이너리를 init 시스템인 systemd에서 실행하는 방법을 알아보고 디버깅하는 방법에 대해서도 학습한다.
7장에서는 오픈 임베디드 코어가 제공하는 클래스를 이용한 빌드 최적화 방법들에 대해 다룬다. Autotools를 이용해 간단하게 애플리케이션을 빌드할 수 있는 방법, 소스를 로컬에 위치시키는 externalsrc, 불필요한 빌드 산출물을 삭제하는 rm_work, 빌드 정보를 저장하는 buildhistory 클래스에 대해 학습한다.
8장에서는 레시피와 패키지들 간의 의존성에 대해 알아본다. 의존성에는 빌드 의존성과 실행 시간 의존성이 있는데 이에 대해 상세하게 살펴본다.
9장에서는 패키지 그룹에 대해 알아보고 앞으로의 실습을 위해 자체 빌드 환경을 구축해 본다.
10장부터는 포키 배포를 기반으로 한 커스텀 이미지와 커스텀 BSP 레이어를 생성한다. 이 내용은 레이어드 아키텍처에 기반해 학습을 진행한다. 레이어를 하나씩 만들어 가며 실제로 현업에서 이뤄지는 작업들을 이해해 본다.
11장에서는 커널 레시피에 대해 학습한다. 오픈 임베디드 빌드 시스템은 커널을 쉽게 빌드할 수 있도록 도와주는 클래스를 제공한다. 이 클래스를 이용해 패치 및 환경 설정 옵션들을 쉽게 적용할 수 있다. 또한 Yocto에서 제공하는 커널 메타데이터에 대해서도 알아본다.
12장에서는 11장에서 학습한 커널 레시피를 확장해 기능을 추가해 본다. 커널 소스를 externalsrc 클래스를 상속해 외부에 따로 저장하고 defconfig 파일을 커널 내 소스에서 사용할 수 있도록 하는 방법도 학습한다. 또한 커널 모듈을 커널 소스 트리 밖에서 만드는 법을 학습한다.
13장에서는 배포 레이어를 학습한다. 이를 통해 배포 레이어가 배포 전반에 걸친 빌드에 대한 환경 설정을 갖고 있다는 것을 이해할 수 있다. 그리고 자신만의 배포 레이어를 만들어 배포 레이어에 대한 이해를 높인다.
14장에서는 레이어드 아키텍처의 최상위 레이어인 커스터머(customer) 레이어를 만들어봄으로써 실제 현업에서 칩 벤더가 배포한 Yocto 기반의 코드를 어떻게 추가하고 변경하는지, 이해해 본다.
15장에서는 패키지에 대해 학습한다. 크로스 빌드 환경에서 만들어진 결과물들을 실제 타깃에 넣기 위해서는 패키지로 만들어야 한다. 패키지에 대한 이해를 위해 공유 라이브러리 생성에 대해서도 알아본다.
16장에서는 패키지 설치 과정을 학습한다. 최종적으로 만들어질 이미지인 루트 파일 시스템을 생성하는 방법에 대해 배우게 된다.
17장에서는 4장에서 구축했던 공유 상태 캐시에 대해 좀 더 자세하게 다루고 공유 상태 캐시를 최적화하는 방법에 대해서도 학습한다.
18장에서는 장기간 지원 Yocto 버전인 kirkstone에 대해 학습한다. kirkstone만의 특징을 알아보고 실제 kirkstone을 설치해 본다. 그리고 기존에 dunfell 버전으로 작성했던 예제를 kirkstone으로 마이그레이션해 본다.
19장에서는 SDK에 대해 학습한다. 외부에서 애플리케이션이나 커널 모듈을 개발할 때 개발 환경으로 SDK를 사용하므로 SDK를 생성하는 방법을 학습한다. 그리고 생성된 SDK를 호스트에 설치하고 생성된 SDK를 이용해 애플리케이션과 외부 커널 모듈을 만들어 본다.
20장에서는 파이썬 함수, 익명 파이썬 함수와 bitbake 문법을 다룬다. 그리고 oe-pkgdta-util 툴의 사용 방법, PACKAGECONFIG 변수의 사용을 통해 기능 단위로 빌드를 설정하는 방법, 오픈 임베디드 코어에서 제공하는 소스 코드를 배포하는 방법, 이미 만들어져 있는 레이어를 현재 진행하는 프로젝트에 포팅 해 사용하는 방법을 학습한다.
21장에서는 devtool에 대해 학습한다. 앞에서는 새로운 패키지를 생성할 때 레이어를 생성하고 레시피 작성, layer.conf 파일에 레시피 추가 그리고 이미지 레시피에 패키지를 추가했다. 이런 과정을 수행하는 데는 어느 정도의 수고와 Yocto에 대한 기반 지식이 필요하다. 그러나 devtool을 사용하면 수고를 덜고 Yocto에 대한 기반 지식이 없더라도 간단하게 애플리케이션이나 커널 모듈을 개발할 수 있다. 따라서 21장에서는 devtool의 개념을 학습하고, 간단한 예제를 통해 devtool의 사용법을 익혀본다.

◈ 추천의 글 ◈
리눅스를 처음 접하는 초보 개발자부터 실제 현업에 종사하는 실무자까지 모두에게 유익한 책이다. 저자는 학부시절부터 스스로 문제를 해결하는 능력이 탁월했으며, 이후 대학원을 거쳐 스마트폰 SW개발자 그리고 현재의 자동차 운영체제 개발자로서 다양한 필드에서의 경험을 바탕으로 깊이 있는 내공을 쌓아왔다. 따라서 이 책은 초보자보다 리눅스에 쉽게 다가갈 수 있는 지름길을 제공하고, 현업 실무자에게는 실제 현업에서 사용가능한 강력한 무기들을 전수해 줄 것이다. 이 책을 독자 여러분께서 회사나 조직내에서 적재적소에 필요한 유능한 인재가 되길 기원한다.
─박승현, 삼성전자 MX 사업부 수석연구원

저자의 마지막 탈고를 보고, 마치 한 편의 예술작품과도 같다고 느꼈다. 탐험가처럼 문제의 깊은 곳을 밟아가며 Yocto 소프트웨어 기술을 정갈한 문장으로 구체화한 것을 보니 많이 자랑스럽다. 겸손한 태도와 근성을 지닌 저자는 친화력 있는 성격이라는 장점으로 항상 선후배와 폭넓은 인간 관계를 가꿔 왔다. 바쁜 연구원으로써 녹록지 않은 환경에도 불구하고 새로운 지식 나눔에, 같은 연구원으로써 감사 인사를 드린다. 우리 후배님의 든든한 지원군을 자처하며, 지금까지 그래왔듯이 심도 있는 연구원으로써 더욱 건승하길 바란다.
─안형근, LG전자 BS사업본부 수석연구원

실무에서 Yocto를 사용해야 하는, 시간이 부족한 개발자들에게 완벽한 길잡이가 될 것이다. 저자는 독자를 Yocto의 세계로 친절하게 안내한다. 책을 읽는 동안 독자가 지루하지 않도록 실습 위주로 진행하며, 각 단계마다 저자가 경험한 오류에 대한 자세히 설명하고 있다. 저자의 경험을 공유하기 때문에 독자는 많은 시간을 절약할 수 있을 것이다. 책의 내용을 따라하기 위한 Virtual Box 가상 머신 이미지도 함께 제공돼 아무런 부담 없이 책을 따라할 수 있다. 개인적으로 가장 도움이 됐던 부분은, 어려운 추상적 개념들이 이해하기 쉽게 도식화돼 있다는 점이었다.
Yocto 프로젝트에 관심이 있거나, 업무에 바로 사용이 필요한 분들에게 이 책을 권하고 싶다.
─김종익, NXP semiconductors, senior software engineer

우리가 살고 있는 세계는 이미 소프트웨어 월드(Software world)가 돼 버렸다. 스마트폰이 세상을 바꿔 놓은 이후 더 많은 소프트웨어가 우리의 삶에 깊숙하게 들어왔다. 심지어 특정 하드웨어에 기능이 고정적으로 부과된 시스템을 과거의 산물로 치부해 버리며 SDX(Software Defined Things)의 개념으로까지 확장되고 있는 시대에 우리는 살고 있다.
이러한 소프트웨어 중심의 기술과 혁신을 견인한 개념 중 하나가 바로 오픈소스(Open Source)이다. 전세계의 수많은 개발자가 자신이 고생해 개발한 것들을 아무 대가 없이 (사실 가끔은 어떤 대가를 바라기도 하지만) 모두 사용할 수 있도록 공개하고 공유하고 있다. 이런 문화가 혁신적인 소프트웨어 기술과 그로 인한 놀라운 세상의 변화에 가장 크게 기여했다고 해도 과언이 아닐 것이다.
리눅스 재단의 많은 프로젝트 중 임베디드 개발자들이 가장 고마워하고 적극적으로 활용하는 프로젝트가 바로 Yocto 프로젝트가 아닐까 생각한다. 특정 시스템을 그 목적에 맞도록 가장 효율적으로 개발하는 첫 단추가 바로 Yocto를 기반으로 환경을 구축하는 일이기 때문이다. 서문에서 밝히듯 저자는 처음부터 Yocto 전문가는 아니었다. 하지만 실무 현장에서 시스템 개발을 진행하며 온몸으로 Yocto를 학습하고 문제를 헤쳐 나갔다. 그리고, 그 ‘고생 노하우’를 직접 책에 담아 많은 사람이 같은 고생을 하지 않도록 ‘오픈소스 정신’을 발휘해 줬다. 그런 차원에서 이 책의 부제는 ‘몸으로 배운 Yocto, 이제 당신은 그러지 않아도 됩니다.’ 정도가 되는 게 마땅하다는 생각이 든다.
임베디드 세상에서 혁신적인 변화에 기여하고 싶어하는 모든 소프트웨어 개발자에게 실전 지식과 삶의 자산이 될 만한 이 책을 적극적으로 추천하는 바이다.
─김도형, 자동차 소프트웨어 전문 기업 이사, 공학박사

Yocto 프로젝트는 내가 원하는 대로 최적화된 이미지를 만들어 낼 수 있는 매력적인 시스템이다. 다만, 처음 접하는 사람은 bitbake(비트베이크)의 빌드 구조와 레이어 구조 등을 이해하기에 어렵다는 장벽이 있다. 미리 접해본 이 책에는 그 장벽을 단번에 해결해주는 실습 구조, 최신 배포본(Kirkstone)에 대한 설명, 그리고 저자의 실전 노하우가 많이 수록돼 있었다. Yocto 프로젝트를 처음 접하는 분들이라면 바로 이 책으로 시작하길 매우 추천한다.
─도정진, 현대모비스 연구원

목차

1장. Yocto의 소개와 추상화 개념
2장. Bitbake
3장. 포키(Poky)
4장. 빌드 속도 개선을 위한 작업들
5장. 새로운 레이어를 만들고 레시피 생성
6장. 초기화 관리자 추가 및 로그 파일을 통한 디버깅
7장. 유용한 오픈 임베디드 코어 클래스 기능을 사용한 빌드 최적화
8장. 의존성
9장. 패키지 그룹 및 빌드 환경 구축
10장. 포키 배포를 기반으로 한 커스텀 이미지, BSP 레이어 작성
11장. 커널 레시피
12장. 커널 레시피의 확장
13장. 배포 레이어
14장. 커스터머 레이어
15장. 패키지
16장. 패키지 설치 과정을 실행하는 do_rootfs, do_image 태스크
17장. 공유 상태 캐시와 시그니처
18장. Kirkstone
19장. SDK(Software Development Kit)
20장. 그 외 다루지 않았던 주제들
21장. devtool

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.