Skip to content

강의 소개 및 개요

Yocto Project란?

Yocto Project는 임베디드 리눅스 배포판을 만들기 위한 오픈소스 프로젝트입니다.

핵심 특징

Yocto Project 주요 특징

  • 📦 커스텀 리눅스 배포판 생성
  • 🔧 크로스 컴파일 툴체인 자동 생성
  • 📚 레시피 기반 패키지 관리
  • 🎯 타겟 하드웨어 최적화

주요 구성 요소

Yocto의 참조 배포판

  • Yocto Project의 기본 구현체
  • 최소한의 Linux 시스템 구축을 위한 기본 설정
  • 다른 배포판의 기준점 역할

빌드 도구 및 태스크 실행기

  • Python과 shell 기반의 빌드 시스템
  • 의존성 기반 병렬 빌드 지원
  • 태스크 스케줄링 및 실행 관리

메타데이터 및 레시피 저장소

  • 패키지 빌드를 위한 메타데이터 제공
  • 레시피(.bb), 클래스(.bbclass) 파일 관리
  • 크로스 플랫폼 빌드 지원

강의 목표

이 강의를 통해 학습할 내용

✅ Yocto Project의 기본 개념과 아키텍처 이해
✅ Docker 환경에서 Yocto 빌드 환경 구축
✅ 커스텀 리눅스 이미지 생성 및 실행
✅ 패키지 추가 및 이미지 커스터마이징
✅ 커스텀 레이어와 레시피 작성
✅ 실제 프로젝트 적용 가능한 실무 지식 습득

전통적인 배포판 vs Yocto Project

구분 전통적인 배포판 Yocto Project
접근 방법 미리 빌드된 패키지 소스에서 빌드
패키지 관리 APT, YUM 등 레시피 기반
커스터마이징 제한적 완전한 제어
크기 최적화 어려움 필요한 것만 포함
크로스 컴파일 복잡함 자동 지원

왜 Yocto를 사용하는가?

  • 완전한 제어: 시스템의 모든 구성 요소를 직접 제어
  • 최적화: 타겟 하드웨어에 최적화된 시스템 구축
  • 보안: 불필요한 패키지 제거로 공격 표면 최소화
  • 라이선스 관리: 명확한 라이선스 추적 및 관리

학습 전 준비사항

필요한 기본 지식

권장 배경 지식

  • Linux 시스템 기본 지식
  • 터미널/명령줄 사용 경험
  • 기본적인 C/C++ 프로그래밍 이해
  • Makefile 및 빌드 시스템 개념

실습 환경

시스템 요구사항

  • CPU: 4코어 이상 (권장: 8코어)
  • RAM: 8GB 이상 (권장: 16GB)
  • Storage: 50GB 여유 공간
  • Docker: 20.10 이상
  • 네트워크: 안정적인 인터넷 연결

강의 진행 방식

실습 중심 학습

graph LR
    A[이론 설명] --> B[실습 진행]
    B --> C[결과 확인]
    C --> D[문제 해결]
    D --> E[심화 학습]
    E --> A

단계적 학습

  1. 개념 이해: 기본 이론과 아키텍처 학습
  2. 환경 구축: Docker 기반 실습 환경 설정
  3. 기본 빌드: 첫 번째 이미지 빌드 경험
  4. 커스터마이징: 패키지 추가 및 설정 변경
  5. 고급 활용: 커스텀 레이어 및 레시피 작성

실습 예제

모든 실습은 다음과 같은 형태로 진행됩니다:

# 1. 목표 설명
echo "Hello World 애플리케이션을 Yocto 이미지에 추가하기"

# 2. 단계별 실행
bitbake hello-world

# 3. 결과 확인
ls tmp/deploy/images/qemux86-64/

# 4. 테스트
runqemu qemux86-64

다음: Yocto 기본 구조 및 아키텍처