
- 베스트
- 소득공제
- 무료배송
Yocto 쉽게 이해하고 깊게 다루기 - 기본 개념부터 실습 예제까지(에이콘 임베디드 시스템 프로그래밍 시리즈)
- 조운래
- 에이콘출판
- 2023년 08월 28일
5%42,750원45,000원
적립금
1,800원 (4% 적립)
추가 적립 안내
5만원 이상 결제 시 (*배송비 제외)
정가제FREE(상품/사은품) 금액이
2,000원 이상이면 2,000원 추가적립10만원 이상 결제 시 (*배송비 제외)
정가제FREE(상품/사은품) 금액이
2,000원 이상이면 2,000원 추가적립정가제FREE(상품/사은품) 금액이
5,000원 이상이면 5,000원 추가적립
회원가입 시 적립금 즉시 지급!
등록 페이지로 이동
배송비
무료 (해외배송의 경우 지역에 따라 상이)
배송안내
배송비 안내
- 1만원 이상 주문 시 무료배송 입니다.
- 주문하신 상품을 해외로 배송 하시는 경우에는 별도의 항공료 가 부과됩니다
주문 수량 변경시 안내
[주문/배송] 주문 수량 변경 시 안내
주문 수량 변경 시,배송일정이 변경될 수 있으니 반드시 확인해 주시기 바랍니다.
(고객센터 1544-9020)
지금 주문하면 9/9(수) 출고 가능
택배보다 빠른, 나우드림
상품 규격 정보
| ISBN | ISBN-13 : 9791161757780 |
|---|---|
| 쪽수 | 612쪽 |
| 크기 | 기타 규격 |
| 제품구성 | 단행본 |
이 책이 속한 분야
- 컴퓨터/IT > OS
관련 이벤트
AI추천 이유
책 소개
목차
추천사
출판사 서평
저자 소개
도서리뷰 (0)
이 책을 읽고 어떤 느낌을 받으셨나요? 리뷰를 남기고 다른 독자들과 함께 공유해보세요.
등록된 리뷰가 없습니다
첫번째 리뷰어가 되어주세요
이 책과 함께 구매한 책
이 분야의 화제의 신간
이 분야의 베스트셀러
교환/반품/환불
| 반품/교환방법 | |
|---|---|
| 반품/교환 가능기간 |
|
| 반품/교환비용 |
|
| 반품/교환 불가 사유 |
|
| 상품 품절 |
|
| 소비자 피해보상 환불지연에 따른 배상 |
|





















◈ 이 책의 구성 ◈
1장에서는 Yocto가 무엇인지 알아보고 Yocto에 담긴 추상화의 의미를 이해한다.
2장에서는 Yocto에서 빌드 시스템의 중심인 bitbake에 대해 자세하게 알아본다.
3장에서는 오픈 임베디드 빌드 시스템을 담고 있는 Poky에 대해 알아본다.
4장에서는 실습에 들어가기에 앞서 빌드를 좀 더 빠르게 할 수 있는 방안으로 두 가지 방법을 제시한다. 따라서 자신만의 PREMIRRORS와 공유 상태 캐시를 구성하는 방법을 학습한다.
5장에서는 새로운 레이어를 만들고 직접 레시피 파일을 작성해 본 후 관련 문법을 학습한다.
6장에서는 5장에서 만든 애플리케이션 바이너리를 init 시스템인 systemd에서 실행하는 방법을 알아보고 디버깅하는 방법에 대해서도 학습한다.
7장에서는 오픈 임베디드 코어가 제공하는 클래스를 이용한 빌드 최적화 방법들에 대해 다룬다. Autotools를 이용해 간단하게 애플리케이션을 빌드할 수 있는 방법, 소스를 로컬에 위치시키는 externalsrc, 불필요한 빌드 산출물을 삭제하는 rm_work, 빌드 정보를 저장하는 buildhistory 클래스에 대해 학습한다.
8장에서는 레시피와 패키지들 간의 의존성에 대해 알아본다. 의존성에는 빌드 의존성과 실행 시간 의존성이 있는데 이에 대해 상세하게 살펴본다.
9장에서는 패키지 그룹에 대해 알아보고 앞으로의 실습을 위해 자체 빌드 환경을 구축해 본다.
10장부터는 Poky 배포를 기반으로 한 커스텀 이미지와 커스텀 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의 사용법을 익혀본다.
작가의 말
개발자의 삶은 많이 고단한 것 같다. 급격히 변하는 시대에 익혀야 할 것도, 알아야 할 것도 많기 때문이다. 특히 리눅스 개발자로 뛰어들게 되면 그 과정부터 결코 만만치 않다는 것을 느끼게 된다.
리눅스의 코드를 보면 그 방대한 코드와 구조에 압도되곤 한다. 단순히 C 언어만을 안다고 리눅스 코드가 눈에 들어오는 것도 아니고, 요즘에는 파이썬, C++, Rust 등의 코드도 익혀야 하기 때문에 코드를 해석하는 속도가 무척 더디다.
처음 Yocto를 접했을 때, 다른 개발자가 짜 놓은 코드를 참고해 대충 돌아가게 코드를 만들기는 했지만, 왜 이렇게 해야 하는지, 어떤 순서로 실행되는 것인지 종잡을 수가 없었다. 이를테면 리눅스 드라이버를 작성하는데 ‘SRC_URI에 upstream의 주소를 적고 do_compile에 컴파일이 될 수 있도록 코드를 넣고, do_install에서 배치를 한다’ 정도가 아는 것의 전부인 때도 있었다. 사정이 이렇다 보니 원하는 기능 개선이나 새로운 아이디어를 반영한다는 것은 뒷전으로 밀리고, 좁은 배경지식의 바운더리 안에서 코드를 맞춰 짜는 웃픈 일들이 벌어지고는 했다.
개발자라면 자신이 원하는 대로 구조를 잡고 코드를 만들어야 한다. 때문에 당시 나와 같은 수준의 개발자라면, 그런 웃픈 일이 생기지 않게끔 Yocto에 대한 지식을 늘릴 책임이 있다고 생각한다.
당시의 나와 같이 Yocto를 잘 알지 못해 좌절하는 사람이 있다면, 다시 한번 찬찬히 시간을 내서 Yocto에 대한 기본 개념과 사용법을 익힐 시간이라고 말해주고 싶다. ‘인생은 실전이다‘라는 인기 유튜버의 책에서 좋아하는 문구가 있다. ‘나이 먹는 것을 걱정하지 말고, 너무 늦게 시작했다는 것도 걱정하지 말고 ‘똑바로 못하는 걸’ 걱정하자. 세상에는 늦은 때란 없다. 세상에는 ‘완성’과 ‘미완성’만 있을 뿐이다.”