임베디드 리눅스에서 살아남는 방법-파트 1 임베디드 리눅스 개발 과정
임베디드 리눅스 개발 과정
리눅스 커널은 다양한 컴퓨터 아키텍처에서 실행될 수 있으며,대부분은 임베디드 세계에서 매우 인기가 있다. 이것은 수학적으로 정확한 유형 계층구조인,강력한 타입을 정의합니다.
리눅스 배포판은 리눅스 커널과 종종 패키지 관리 시스템을 기반으로 하는 소프트웨어 모음으로 만들어진 운영 체제입니다. 배포판은 배포 관리자에 의해
으로 미리 컴파일 된 바이너리와 패키지로 제공되거나 배포를 컴파일하는 방법(교차)에 대한 지침과 쌍을 이루는 소스로 제공 될 수 있습니다.
임베디드 도메인에서 하드웨어 플랫폼은 일반적으로 맞춤형이기 때문에 운영 체제 디자이너는 일반적으로 소스부터 시작하여 처음부터 배포를 생성하는 것을 선호합니다. 이것은 디자이너에게
제품에서 끝나는 것을 절대적으로 제어 할 수있게합니다. 또한,보드 지원 패키지 엔지니어는 특정 하드웨어 제품에서 운영 체제의 핵심 기능을 작동시키기 위해 낮은 수준의 코드를 수정합니다.
특정 임베디드 제품에 대한 리눅스 배포판을 생성하기 위해 필요한 모든 소프트웨어 구성 요소를 함께 얻는 것은 악몽 이었지만 더 이상 그렇지 않습니다.
많은 사람들이 오픈 소스 커뮤니티와 모든 소프트웨어 구성 요소를 인터넷에서 가져 와서 컴파일하고 함께 연결할 수있는 빌드 시스템의 소스를 공유하여 본격적인 운영 시스템의 설치 이미지를 생성했습니다. 몇몇 회사는 자체 빌드 시스템을 개발 및 유지 관리하고 있으며,다른 회사는 핵심 구성 요소 중 몇 개만 컴파일 한 다음 사전 빌드 된 바이너리를 사용하여 운영 체제를 마무리합니다.
2010 년,리눅스 재단의 작업 그룹은 임베디드 소프트웨어(일명 임베디드 리눅스)에 대한 리눅스 배포판을 만들 수 있도록 도구와 프로세스를 다루기 시작했다. 이러한 작업 그룹,로 알려진 욕 토 프로젝트,자체 정렬 오픈 임베디드,비슷한 목표를 가진 프레임 워크.
욕 토 프로젝트는 임베디드 리눅스 배포판의 소프트웨어 개발 프로세스 개선에 중점을 둔 오픈 소스 프로젝트입니다. 욕 토 프로젝트는 상호 운용 가능한 도구,메타 데이터 및 프로세스를 제공하여
리눅스 기반 임베디드 시스템의 신속하고 반복 가능한 개발을 가능하게합니다.
욕 토 프로젝트는 현재 임베디드 시스템에 대 한 가장 인기 있는 리눅스 배포판 전원,때로는 용어”임베디드 리눅스”와”욕 토 프로젝트”동의어로 쉽게 혼동 하는 지점에. 욕 토 그것은 당신을 위해 사용자 정의 하나를 생성,임베디드 리눅스 배포판 아니다.
욕 토의 메타 레이어 레이아웃
욕 토의 아키텍처의 현대 버전은 구성 파일 및 임베디드 시스템에 대 한 리눅스 배포판을 컴파일 하 고 조립 하는 방법에 대 한 규칙을 포함 하는 디렉터리는 메타 레이어에 기반 합니다.
일반적으로 항상 그런 것은 아니지만 메타 레이어는 자체 자식 저장소에 있으며 다음을 제공합니다:
- 다른 메타 레이어에서 제공하는 패키지에 대한 수정(.파일 추가),
- 머신(.구성 파일),
- (.이 코드는 다음과 같습니다.이 경우,파일(예:파일)은 파일(예:파일)과 파일(예:파일)에 저장됩니다.
단일 메타 계층은 일반적으로 특정 목적을 해결합니다. 따라서 완전히 작동하는 시스템을 얻으려면 더 많은 메타 레이어를 함께 결합해야합니다.
버전 선택 및 일치
서로 다른 소프트웨어 구성 요소를 함께 넣을 때 잘못된 버전이 다른 구성 요소와 함께 잘 작동하지 않거나 시스템을 손상시킬 수 있으므로 각 구성 요소의 버전을 염두에 두어야합니다.
욕 토 프로젝트는 함께 잘 작동하는 것으로 알려진 구성 요소의 릴리스를 제공하지만 이는 제품의 시작점 일뿐입니다.
리눅스 커널은 올바른 인터페이스를 사용자 공간에 노출시켜야 하는 코드의 큰 덩어리이며,시스템이 제대로 작동하려면 올바른 드라이버를 포함해야 한다. 그들은 일반적으로 리눅스 커널과 부트 로더에 대한 자신의 개발 저장소를 가지고 따라서,실리콘 공급 업체의 역할은 요즘 점점 더 중요 해지고있다,따라서,그들은 함께 자신의 기술을 기반으로 작업 기본 시스템을 넣어 최고의 사람들이다.
구글의 리포지토리
원래 안드로이드 프로젝트의 수많은 자식 리포지토리에 대처하기 위해 개발된 리포지토리는 욕 토 개발자들 사이에서도 꽤 인기를 끌고있다.
리포지토리는 자식 위에 구축 된 도구입니다.; “매니페스트 파일”을 사용하여 자식 저장소 세트를 복제하고 동시에 가져옵니다.
리포지토리 매니페스트는.이 문서는 매니페스트를 사용하여 프로젝트를 빌드하는 데 필요한 여러 자식 리포지토리에서 오는 모든 소스로 디렉토리를 채울 수 있습니다.
또한 업스트림이 변경할 때 프로젝트 소스를 계속 확인(동기화)하기 위해 리포지토리에서 동일한 매니페스트를 사용할 수 있습니다.
몇몇 실리콘 업체들은 요즘 개발 및 출시 지점에 대한 매니페스트를 제공하여 설계자가 자신의 제품의 시작점을 쉽게 확인할 수 있습니다.(즉,실리콘 벤더 자체 또는 그 파트너 중 하나가 제공하는 설계이며,신제품의 기반과 동일하거나 유사한 시스템을 포함함). 엔지니어는 전자 엔지니어가 선택한 하드웨어가 적절한 저수준 소프트웨어 지원(예:장치 드라이버,장치 트리,커널 구성 등)을 갖도록 부트 로더 및 리눅스 커널을 변경합니다.).
제품의 목적은 하나 이상의 응용 프로그램을 실행하는 것입니다. 응용 프로그램을 개발하는 엔지니어는 응용 프로그램을 교차 컴파일하고 링크하기 위해 소프트웨어 개발 키트가 필요합니다.
임베디드 리눅스 모범 사례
개발에 사용되는 리포지토리 매니페스트에는 일반적으로 개발 브랜치에 대한 참조가 포함되며,이는 리포지토리가 해당 브랜치에 대한 최신 커밋을 가져온다는 것을 의미합니다.
동일한 매니페스트를 사용하여 나중에 프로젝트를 가져올 경우 다른 버전의 코드를 가져올 수 있습니다! 프로젝트의 최신 버전을 고수하기를 원하지만 개발 버전 중 하나가 결국 릴리스가 될 것이므로 프로젝트에 사용되는 소프트웨어 릴리스를 생성하는 데 사용되는 정확한 버전의 소스를”사진 촬영”해야합니다. 그렇게하지 않으면 소스에서 시작하여 동일한 빌드를 다시 생성 할 수 없으므로 법적 문제에 노출 될 수 있으므로 특정 릴리스 위에 변경할 수 없으므로 고객이 버그를 수정하거나 최신 버전의 소프트웨어 위에 새로운 기능을 추가해야하므로 전체 시스템을 다시 테스트하도록 강요합니다.
또한 이러한 스냅샷을 만들지 않으면 프로젝트 소스에서 이등분식을 실행하여 어떤 커밋이 절실히 필요한 기능을 손상했는지 확인할 수 없습니다. 개발 프로세스를 설계할 때 정확한 커밋이 포함된 리포지토리 매니페스트를 자동으로 생성하는 방법을 찾아 릴리스와 함께 저장하여 나중에 동일한 소스를 다시 체크아웃하고 지불한 모든 작업을 수행할 수 있습니다.
사내 소스 복사
제품 내부에 있는 소스의 99.9%는 오픈 소스 커뮤니티에서 제공되므로 동일한 소스를 다시 다운로드할 수 있다는 보장은 없습니다. 디자이너로서,당신은 업스트림에서 만든 변화와 실수로부터 자신을 보호해야합니다. 집에 있는 모든 관련된 근원의 사본을 지키고,당신의 구조 체계로 그(것)들을 다시 폐쇄하는 방법을 찾아내십시오. 또한,당신은 당신이 가장 많이 사용하는 저장소의 일부를 미러링 할 수 있습니다,때로는 업스트림 자식 서버가 갑자기 사용할 수 없게 될 수 있습니다. 당신은 내부 사본이 없는 경우에 서버가 온라인으로 돌아올 때까지 당신은 붙어 있을 것이다.이러한 방식으로 릴리스에 들어가는 소스를 복구할 수 있고,나중에 동일한 릴리스를 다시 빌드할 수 있습니다. 우리는 자동 방식으로 오픈 소스 패키지의 복사본을 유지,그래서 우리는 세계의 잘못된 서버에 의한 다운 타임을 경험하지. 또한,매일 모든 것을 백업하여 현장에서 재해가 발생하더라도 작업이 손실되지 않도록 보장합니다.
파브리지오 카스트로
팹은 수석 소프트웨어 엔지니어이다. 그는 이탈리아 밀라노의 폴리 테크 니코 디 밀라노에서 학사 및 석사 학위를 취득했습니다. 그는 모든 라운드 소프트웨어 개발(서비스,데이터베이스,응용 프로그램,과학 소프트웨어,펌웨어,소프트웨어,장치 드라이버,리눅스 커널 등)의 20 년의 경험을 가지고 있습니다.),학계 및 업계에서 근무했습니다. 팹은 과학 논문과 책을 공동 저술했으며 특허에 종사했습니다. 뿐만 아니라 연구 및 개발,그는 임베디드 리눅스 개발 전문-제공하는 최첨단 디자인은 성공적인 과학,산업,상업,군사 제품에 전원을 공급. 팹은 또한 강사가되어 유럽에서 가장 권위있는 대학의 일부에서 학부생을 가르쳤다. 바이트스냅 디자인에 대한 자세한 내용은http://www.bytesnap.co.uk을 참조하십시오.