| [[컴퓨터공학|'''컴퓨터 과학 및 공학 {{{#!wiki style="font-family: Times New Roman, serif; display: inline;"]] | ||
| {{{#!wiki style="margin: 0 -10px -5px; min-height:calc(1.5em + 5px)" {{{#!folding [ 펼치기 · 접기 ] {{{#!wiki style="margin: -5px -1px -11px" | <bgcolor=#1282d7,#1282d7> 기반 학문 | 수학(해석학 · 이산수학 · 수리논리학 · 선형대수학 · 미적분학 · 미분방정식 · 대수학(환론 · 범주론) · 정수론) · 이론 컴퓨터 과학 · 암호학 · 전자공학 · 언어학(음운론 · 형태론 · 통사론 · 의미론 · 화용론) · 인지과학 |
| 하드웨어 | SoC · CPU · GPU(그래픽 카드 · GPGPU) · ROM · RAM · SSD · HDD · 참조: 틀:컴퓨터 부품 | |
| 기술 | 기계어 · 어셈블리어 · 바이오스 · 절차적 프로그래밍 · 객체 지향 프로그래밍 · 함수형 프로그래밍 · 해킹 · ROT13 · 일회용 비밀번호 · 사물인터넷 · 와이파이 · GPS · 임베디드 · 인공신경망 · OpenGL · EXIF · 마이크로아키텍처 · ACPI · UEFI · LinuxBoot · gRPC · 리버스 엔지니어링 · HCI · UI · UX · 대역폭 · DBMS · NoSQL · 해시(SHA · 브루트 포스 · 레인보우 테이블 · salt · 암호화폐) · RSA 암호화 · 하드웨어 가속 | |
| 연구 및 기타 | 논리 회로(보수기 · 가산기 · 논리 연산 · 불 대수 · 카르노 맵 · 플립플롭) · 정보이론 · 임베디드 시스템 · 운영체제(멀티태스킹 · 프로세스 스케줄링 · 데드락 · 식사하는 철학자 문제 · 뮤텍스 · 세마포어 · 인터럽트) · 데이터베이스 · 컴퓨터 언어 · 프로그래밍 언어{컴파일러(어셈블러 · JIT) · 인터프리터 · 유형 이론 · 어휘 분석 · 파싱 · 링커 · 난해한 프로그래밍 언어} · 마크업 언어 · 메타데이터 · 기계학습 · 빅데이터 · 폰노이만 구조 · 양자컴퓨터 · 행위자 모델 · 인코딩(유니코드 · MBCS) · 네트워크(네트워크 포트) · 컴퓨터 보안 · OCR · 슈퍼컴퓨터 · 튜링 머신 · FPGA · 딥러닝 · 컴퓨터 구조론 · 컴퓨터 비전 · 컴퓨터 그래픽스 · 인공지능 · 시간 복잡도(최적화) · 소프트웨어 개발 방법론(애자일 · 워터폴) · 디자인 패턴 · 정보처리이론 · 재귀 이론 · 자연어 처리(기계 번역 · 음성인식) · 버전 (버전 관리 시스템) · 난수생성 · 놀람 최소화 원칙 · 프레임워크 · 라이브러리 · 모듈 · API · ABI · 이진 탐색 |
홈페이지
1. 개요
Yocto Project는 임베디드 리눅스 시스템을 위한 커스텀 리눅스 배포판을 생성하는 빌드 프레임워크이다.Ubuntu나 CentOS 같은 완성된 배포판이 아니라, 사용자가 직접 필요한 구성요소를 선택해 자신만의 배포판을 만드는 도구 모음이다.
프로젝트의 목적은 다양한 하드웨어 플랫폼에서 동일한 방식으로 빌드할 수 있는 표준화된 환경을 제공하는 데 있다.
Yocto는 여러 구성 요소로 이루어져 있다.
- BitBake은 레시피와 설정 파일을 기반으로 패키지를 빌드하는 엔진이다.
- OpenEmbedded-Core는 기본 클래스, 빌드 규칙, 메타데이터를 포함한 핵심 구성 요소이다.
- Poky는 Yocto의 참조 배포판으로, 전체 빌드 시스템의 기본 구조와 예제를 제공한다.
- BSP(Board Support Package)는 특정 보드나 SoC에 맞는 커널, 드라이버, 부트로더 설정을 포함한다.
2. 특징
Yocto Project는 운영체제 배포판이 아니라 배포판을 생성하는 도구이기 때문에 높은 유연성을 가진다.레이어(Layer) 구조를 기반으로 설계되어 기능, 하드웨어, 미들웨어, 애플리케이션 등을 독립적으로 관리할 수 있다.
각 기능은 레시피 형태로 정의되며, 이러한 레시피를 통해 소스 코드의 다운로드, 패치, 빌드, 패키징이 자동으로 수행된다.
또한 Yocto는 사용자 정의 레이어 추가를 통해 손쉽게 기능을 확장하거나 기존 프로젝트를 재사용할 수 있다.
다양한 하드웨어 벤더가 자사 플랫폼용 BSP를 Yocto 형식으로 배포하기 때문에, 산업 전반에서 사실상의 표준 임베디드 리눅스 빌드 프레임워크로 자리 잡았다.
2.1. 사용 목적
Yocto Project는 임베디드 리눅스 환경에서 표준화, 이식성, 유지보수성, 그리고 라이선스 관리를 위한 도구로 사용된다.다양한 반도체 회사들이 Yocto 기반 BSP를 공식적으로 배포함으로써 개발자들은 공통된 구조에서 프로젝트를 진행할 수 있다.
하드웨어 변경 시에도 BSP 레이어만 교체하면 기존 소프트웨어를 그대로 이식할 수 있어 시간과 비용을 절감할 수 있다.
또한 사용자 코드와 벤더 BSP를 분리 관리할 수 있어 유지보수가 용이하다.
Yocto는 빌드 과정에서 사용된 모든 오픈소스 패키지의 라이선스를 자동으로 분석해 목록을 생성하므로, 상용 제품 개발 시 법적 검증에도 유리하다.
3. 역사
Yocto Project는 2010년 인텔 주도로 시작되었다. 처음에는 OpenEmbedded 프로젝트를 기반으로 산업 환경에서 일관된 빌드 체계를 구축하기 위해 개발되었다.2011년에 첫 공식 버전(Poky 기반)이 릴리스되었고, 이후 6개월 주기로 새로운 버전을 배포해 왔다.
2013년 이후에는 장기 지원(LTS) 버전 정책을 도입하여 Dunfell, Kirkstone, Nanbield 등 주요 버전이 유지되고 있다.
2026년 현재 Yocto는 차량용 인포테인먼트, 산업 제어, 네트워크 장비, IoT 기기 등 다양한 분야에서 사용되고 있다.
4. 기타
Yocto 빌드는 다음 과정을 거쳐 이루어진다.- 먼저 oe-init-build-env 스크립트를 실행해 빌드 환경을 초기화하고, conf/local.conf 파일에서 빌드 타깃, 머신, 이미지 타입을 설정한다.
- 그다음 bitbake 명령을 사용해 core-image-minimal 등 원하는 이미지를 빌드한다.
- 빌드가 완료되면 tmp/deploy/images 디렉토리에 커널, 부트로더, 루트파일시스템 이미지가 생성된다.
2026년 현재 Yocto는 kirkstone, nanbield, scarthgap 등의 브랜치로 관리되고 있으며, LTS 버전은 일반 릴리스보다 안정성과 지원 기간이 길다. 또한 Yocto를 이용하면 CI/CD 구축도 용이하여, 장기적 임베디드 프로젝트의 자동화된 빌드 체계로 자주 활용된다.
5. 둘러보기
| <nopad>[[Linux| Linux 관련 문서 |
| 리누스 토르발스 · 커널 · 배포판 (목록) · 환경변수 · 소프트웨어 · 명령어 · GUI 환경 · Linux 게이밍 · Tux · Flatpak · Snap · AppImage |