반도체 소프트웨어

요약 1. Yocto Project 개요 본문

빌드 시스템/Yocto Project

요약 1. Yocto Project 개요

반도체 소프트웨어 엔지니어 2024. 1. 8. 10:06
              1. openembedded: 임베디드 리눅스 빌드 프레임워크 배포판 개발 회사
              2. 욕토 프로젝트: 임베디드 공간을 위한 오픈소스 프로젝트
              3. 포키 리눅스 기반으로 임베디드 시스템을 위한 독립적인 리눅스 배포판 생성을 가능하게 하는 절차와 도구를 만들어내는 목표를 가진 리눅스 재단 작업 그룹
              4. 하드웨어 기본 아키텍처와 독립적인 임베디드 개발을 위한 공통 기반 정의
              5. 임베디드 장치용 맞춤형 배포판 빌드를 가능하게 한다.
              6. 커스텀 리눅스 배포를 위한 소프트웨어 스택을 구성해주는 도구 및 템플릿의 집합
                • 커스텀 리눅스: 특정 임베디드 시스템에 최적화된 리눅스 배포판
                  • 자원 최적화: 메모리, 저장공간, 프로세서 성능 등
                  • 특화된 기능 지원
              7. 욕토는 서로 다른 물리적인 환경들(cpu 아키텍처)에 대한 커스텀 리눅스 구성을 쉽게 할 수 있도록 도와줌
              8. 소스 빌드를 위한 크로스 컴파일러, 라이브러리, 여러 툴도 욕토에 포함됨
              9. 포키를 받으면 다음과 같은 소스를 받을 수 있음
              10. 추상화
                • 현재는 임베디드 리눅스에 정말 많은 아키텍처와 소프트웨어 스택이 사용되므로, 욕토프로젝트의 오픈임베디드 빌드 시스템을 모두 알고 사용하는 것은 의미가 없으며 불가능
                •  또한 욕토 프로젝트가 이미 추상화가 잘되어있으므로 몇가지 사용법을 알면 내가 원하는 리눅스 시스템을 구축할 수 있음
              11. Bitbake
                • bake: 요리하는 과정, 식사준비하는 과정
                • bit: 컴퓨터
                • bitbake: 소프트웨어 빌드 프로세스나 컴파일 같은 소프트웨어를 만드는 과정을 지칭
                  • 파이썬 및 쉘 스크립트를 분석하는 작업 스케줄러, 임베디드 리눅스의 크로스 컴파일을 위한 패키지 및 관련 파일을 빌드하는데 사용되는 툴
                  • bitbake는 poky에 포함된 도구가 아니고 단독으로도 사용 가능
              12. 메타데이터
                • 다른 데이터를 설명하는 데이터로 언급되며, 설명하는 정보의 속성을 정렬하고 식별하는데 도움을 주는 구조화된 참조 데이터
                • 메타데이터는 정보를 조직하고 관리하는데 도움이 되며, 데이터를 검색, 분류, 필터링하거나 다양한 작업을 수행하는데 활용된다
                • yocto에서 메타데이터
                  • 소프트웨어를 어떻게 빌드할지 그리고 빌드하려는 소프트웨어들 간에는 어떤 의존성이 있는지 기술한 데이터
                  • 메타데이터 종류
                    1. 변수
                    2. 실행 가능한 함수 또는 태스크(bitbake가 실행하는 쉘 함수 또는 파이썬 함수)
                  • bitbake는 메타데이터 파일을 분석(parsing)하고 그 내용에 기반해 빌드를 수행하고 최종 이미지를 생성
              13. 메타데이터 파일
                • 환경설정 파일
                  • 변수의 집합, 함수는 미포함. 여기서 선언하면 전역 변수 특징 가짐(즉 다른 메타데이터 파일에서 사용 가능)
                  • yocto에서 메타데이터
                • 클래스 파일

                  • 빌드를 위해 사용되는 기능들을 추상화해 레시피 파일들이 사용이 가능하게 하는 파일
                  • 여기에 선언된 변수 및 함수는 해당 클래스파일을 상속한 레시피에서만 사용 가능
                  • inherit 지시자를 사용해서 클래스 파일을 상속받아 기능 사용 가능
                  • .bbclass 확장자
                • 인클루드 파일
                  • 클래스 파일, 인클루드 파일 모두 다른 메타 데이터 파일과 공유할 수 있도록 해주는 파일이지만 인클루드 파일은 비공식적인 내용을 공유할 때 주로 사용
                  • .inc 확장자
                  •  
                • 레시피 파일

                  • 소프트웨어를 어디서 다운로드받아야하고 받은 소프트웨어는 어떻게 빌드되어야하며 빌드된 산출물은 어디에 위치해야하는지 등의 빌드 전반에 걸친 내용을 기술한다.
                  • 이파일에서는 bitbake가 실행할 수 있는 함수들이 정의될 수 있다(태스크 라고 부름)
                  • .bb 확장자
                • 레시피확장파일
                  • 레시피 파일에서 선언된 변수나 태스크를 확장할수있도록해줌
                  • .bbappend 확장자
                  • 문법
                    1. 모든 값을 문자열로 인식(값할당시에는 따옴표 사용)
                    2. 대문자로 시작하는 변수명 사용
                • 기타

 

 

출처: Udemy, "Yocto(욕토), 쉽게 이해하고 깊게 다루기", https://www.udemy.com/course/yocto-ae/

출처: 알라딘, "Yocto(욕토), 쉽게 이해하고 깊게 다루기", http://aladin.kr/p/b4Ddg

'빌드 시스템 > Yocto Project' 카테고리의 다른 글

요약 2. Bitbake  (0) 2024.01.09
Yocto(욕토), 쉽게 이해하고 깊게 다루기 with Udemy  (0) 2024.01.08