강의 소개 및 개요¶
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
단계적 학습¶
- 개념 이해: 기본 이론과 아키텍처 학습
- 환경 구축: Docker 기반 실습 환경 설정
- 기본 빌드: 첫 번째 이미지 빌드 경험
- 커스터마이징: 패키지 추가 및 설정 변경
- 고급 활용: 커스텀 레이어 및 레시피 작성
실습 예제
모든 실습은 다음과 같은 형태로 진행됩니다:
다음: Yocto 기본 구조 및 아키텍처 →