글: 체이스 모팽(Chase Maupin),소프트웨어 통합 매니저
헨리 위치맨(Henry Wiechman),소프트웨어 마케팅 매니저
데니스 드미트리얀코(Denys Dmytriyenko),오픈 소스 기술 전문가
텍사스 인스트루먼트 / www.ti.com




EMF(Embedded Market Forecast-ers)에서 진행한 2012년 연례 임베디드 개발자 설문 조사에 따르면 임베디드 개발자가 자신의 설계에 사용할 운영 체제(OS)를 선택하는 데 영향을 미치는 두 가지 주요 요인은 가격(44.6%)과 소스 코드의 가용성(33.1%)이었습니다. 이러한 요인은 임베디드 디바이스에서 리눅스에 대한 폭발적인 수요 증가 현상을 잘 설명해 줍니다. 욕토 프로젝트는 이러한 상황에서 임베디드 소프트웨어 개발자에게 하드웨어 독립적인 툴, 프로세스, 템플릿 및 방법을 제공함으로써, 차별화된 기능을 바탕으로 경쟁 우위를 갖춘 제품의 신속한 시장 출시를 돕기 위해 시작되었습니다.

개요; 과제

소프트웨어 보다는 하드웨어 문제에 더욱 익숙한 장비 제조업체들에게는 운영 펌웨어와 애플리케이션 소프트웨어로 작동하는 SoC(systems-on -a-chip)와 같은 복잡한 실리콘 디바이스를 구동하는 것이 더 까다로운 과제일 수 있습니다. 오픈 소스 운동을 통해 소프트웨어 개발 작업이 여러 측면에서 개선되었지만 나름대로의 문제도 있습니다. 다행스러운 것은 오픈 소스 임베디드 소프트웨어 개발 기술이 계속 발전하면서 개발 프로세스가 간소화되고 효율이 향상되어 장비 제조업체에서 자체 하드웨어의 기능을 효과적으로 차별화할 수 있게 되었다는 것입니다. 욕토 프로젝트™는 이러한 혁신의 한 부분입니다.

이전까지만 하더라도, 오픈 소스 임베디드 소프트웨어 개발자들은 복잡하고 때로는 체계화되어 있지 않은 작업들을 해야 했습니다. 새로운 실리콘에서 애플리케이션을 실행하기 위해서는 소프트웨어 쉘, 컴파일러, 부트로더 및 다른 구성 요소는 물론, 운영 체제 커널과 기본 파일 시스템이 요구됩니다. 

그리고 필요에 따라 오픈 소스 툴을 사용하여 기본 하드웨어 아키텍처 대상의 기능 소프트웨어 패키지를 수집하고 수정한 다음, 이를 해당 하드웨어 플랫폼의 리눅스™ 소프트웨어 배포판으로 통합해야 합니다.

때론 오픈 소스 환경의 무질서한 특성 때문에 전체 프로세스가 더 복잡해지는 경우도 있었습니다. 고상업용 소프트웨어를 개발하는 데에는 안정적인 코드 기반이 필수적이지만, 오픈 소스는 항상 새롭게 향상되는 기능과 변경 사항들 때문에 급격한 변동을 겪는 경우가 많습니다. 이 때문에 고가의 소프트웨어 시스템에서 예기치 않은 문제가 발생할 수 있습니다. EMF(Embedded Market Forecast-ers)에서 진행한 2012년 연례 임베디드 개발자 설문 조사에 따르면 임베디드 개발자가 자신의 설계에 사용할 운영 체제(OS)를 선택하는 데 영향을 미치는 두 가지 주요 요인은 가격(44.6%)과 소스 코드의 가용성(33.1%)이었습니다. 이러한 요인은 임베디드 디바이스에서 리눅스에 대한 폭발적인 수요 증가 현상을 잘 설명해 줍니다. 욕토 프로젝트는 이러한 상황에서 임베디드 소프트웨어 개발자에게 하드웨어 독립적인 툴, 프로세스, 템플릿 및 방법을 제공함으로써, 차별화된 기능을 바탕으로 경쟁 우위를 갖춘 제품의 신속한 시장 출시를 돕기 위해 시작되었습니다.

욕토 프로젝트와 오픈 임베디드 프로젝트

욕토 프로젝트(www.yoctoproject.org)는 리눅스 재단과 하드웨어 제조업체 및 오픈 소스 운영 체제 공급업체의 후원으로 진행되는 오픈 소스 협동 사업입니다. 이 프로젝트는 다양한 툴, 방법, 실행 가능 코드의 메타 패키지, 그리고 무엇보다 임베디드 리눅스 소프트웨어 배포판 구축을 위한 포괄적인 프레임워크를 비롯한 여러 하위 프로젝트로 구성되어 있습니다.
욕토 프로젝트는 핵심 패키지와 메타데이터 세트를 유지하여 안정성을 높이고, 구조적 계층화를 통해 코드 격리를 제공하며, 사용하기 쉬운 툴과 라이선스 문제 및 기능 기대치에 대한 명확성 제시라는 상업용 기술 공급업체의 요구를 충족하기 위해 시작되었습니다. 텍사스 인스트루먼트를 비롯한 여러 업체에서 욕토 프로젝트™에 참여한 것은 이러한 장점 때문입니다. 이 프로젝트를 도입하면 오픈 소스 소프트웨어 개발 프로그램의 향상된 생산성을 바탕으로 자신의 제품과 시스템을 개선하고 차별화하는 데 노력과 에너지를 집중하는 것이 가능합니다. 욕토 프로젝트는 임베디드 리눅스 개발을 위한 프레임워크이면서, 파일 시스템, 호스트 툴 및 툴 체인 세대로 구성된 오픈임베디드(OE) 프로젝트와 맥락을 같이하며 발전했습니다.

오픈 소스 운동에 기반을 두고 있기 때문에, 처음 선보인 오픈 임베디드인 오픈임베디드-클래식(OE-Classic)은 상대적으로 빈약한 계층 아키텍처를 갖춘 체계화되지 않은 환경이었습니다. OE-클래식은 패키지, 레시피, 메타데이터 및 다른 코드가 추가됨에 따라 더욱 성장했지만, 환경의 근본적인 단순함 혹은 그 평등주의적 특성 때문에 효과나 효율을 살리기 어려웠습니다. 개발자가 OE-클래식을 도입하고 여기에 기능을 추가하면서 OE-클래식의 규모 가변성과 확장성 측면에서 문제가 점차 두드러지게 나타났습니다. 예를 들어 TI는 OE-클래식 계층을 필터링하고, 구성하고, 사용자를 지정하는 데 도움이 되는 아라고(Arago) 오버레이를 만들었습니다. 그러나 이 오버레이는 TI가 개발한 릴리스에만 적용할 수 있었습니다. OE-클래식의 다양한 로직 세그먼트들 또는 다양한 공급업체 구현들 사이에 그 경계를 구분할 수 없었기 때문에, OE-클래식의 특정 영역에만 영향을 미치도록 코드를 변경하거나 새 코드를 제출할 경우 다른 세그먼트에 예기치 못한 결과를 초래하는 일이 많았습니다. 이를 비롯한 몇 가지 다른 요인 때문에 OE-클래식 릴리스는 발표 횟수가 많지 않았고 안정성도 떨어졌습니다.

이러한 현실을 바탕으로, OE 커뮤니티와 TI를 비롯한 여러 기술 공급업체에서는 오픈 소스 커뮤니티의 창의성과 상업용 소프트웨어 개발의 목표 사이에서 균형을 맞춘 솔루션을 모색하기 시작했습니다. 이러한 노력의 결과가 오픈 임베디드 코어(OE-Core)라고 하는 새로운 OE 협력 사업입니다. OE-코어가 발표된 이후, TI는 아라고 오버레이를 수정하여 OE-코어에서 지원되는 메타-아라고라는 호환 계층을 만들었습니다. 이 계층은 이전과 동일한 기능을 제공하면서 다른 공급업체의 솔루션과 호환됩니다.

수용자 수의 증가

OE-코어는 단순하고 깔끔할 뿐 아니라 리눅스™ 재단의 욕토 프로젝트™와 보조를 같이하면서 진행되고 있어 수 많은 개발자가 이 방향으로 선회하고 있습니다. 예를 들어 환경을 이루는 다양한 패키지, 메타데이터, 레시피 및 툴 간의 격리 수준을 제공하기 위한 계층과 구조가 도입되었습니다. 이러한 분리를 통해 변경, 추가 또는 제출 과정에서 예기치 못한 결과를 최소화할 수 있습니다. 그 중에서도 특히, TI의 메타-아라고가 포함된 OE-코어를 사용하면 TI 플랫폼 상의 개발 프로세스를 능률화하여 기본 하드웨어의 기능을 더 효과적으로 활용할 수 있습니다. 또한 욕토/OE-코어는 라이선스 확인과 같이 상업용 오픈 소스 개발자에게 중요한 기능을 통합했습니다. 이전에는 레시피가 자신이 작동하는 기반 라이선스를 제시하지 않는 경우가 있었지만, 욕토/OE-코어에서는 이것이 필수 조건이 되었습니다.

이를 통해 개발자는 자신의 배포판에 속한 패키지가 어떤 라이선스 하에서 작동할지 알 수 있으며, 따라서 어느 정도 확신을 가지고 개발할 수 있습니다. 또한 패키지와 레시피의 라이선스 상태를 자동으로 모니터링하고 개발자가 지정한 라이선스 하에서 작동하지 않는 항목을 필터링하는 툴이 제공됩니다. 예를 들어 프로그래밍 팀에서 패키지에 GPLv3 라이선스를 부여하지 않도록 선택할 수 있습니다. 그러면 이러한 툴이 자동으로 배포판에서 해당 패키지를 제외합니다.
이러한 장점 덕분에 TI와 같은 상업용 기술 공급업체를 비롯한 많은 개발자의 지지를 이끌었습니다. 지원이 계속해서 증가함에 따라 욕토/OE-코어의 성장 동력도 계속 힘을 더하고 있습니다. 신규 개발자와 업체가 활발히 참여하면, 모든 구성원들이 수천 명의 개발자가 참여한 작업과 창의적 솔루션의 헤택을 누릴 수 있게 됩니다. 이러한 혜택은 다시 더 많은 개발자를 커뮤니티로 끌어들이는 원동력이 됩니다.

그림 1.
OE-클래식은 무엇인가?


욕토 기술

욕토 프로젝트는 "공유 학습에 바탕을 두고 OE-클래식에 의해 집약된, 협동적 오픈 소스 커뮤니티의 역동성"과 "'시기적절하고, 경제적이며, 안정적인 릴리스'와 같은 상업용 소프트웨어의 개발 요건에 맞게 수정된 특성" 사이에서 적절한 균형을 맞추기 위한 노력의 산물입니다. 궁극적으로는 완벽한 소프트웨어 시스템을 더 빠르고 효율적으로 시장에 출시할 수 있도록 돕는 것이 목표입니다.

셸이나 프레임워크의 측면을 보면, 욕토 프로젝트™는 모든 플랫폼에 맞게 맞춤 구성한 리눅스 배포판을 빠르고 효과적으로 구축할 수 있는 환경을 제공합니다. 욕토 프로젝트의 주요 툴 중 하나인 BitBake는 레시피, 패키지 및 메타데이터를 병합하여 오픈 소스 커뮤니티와의 호환성을 유지하면서도 특정 하드웨어에 최적화된 새로운 리눅스 배포판을 구축하는 빌드 엔진입니다. 욕토 프로젝트에는 각 배포판을 위해 맞춤 구성된 소프트웨어 개발 키트(SDK)도 포함되어 있습니다.

욕토 프로젝트의 중요한 측면 중 하나로 계층적 유지 보수 아키텍처가 있습니다. 욕토 프로젝트는 구조가 체계적으로 정의되어 있기 때문에 유지 관리 담당자에게 욕토 프로젝트의 더 큰 세그먼트나, 계층의 일부가 될 섹션, 혹은 하위 세션에 대한 유지 관리를 맡길 수 있습니다. 이렇게 개인의 책임 소재를 가릴 수 있는 특성 덕분에 욕토/OE-코어 개발 환경의 효율이 더욱 높아졌습니다. 또한 욕토 프로젝트에 제출된 코드는 특정한 품질 표준을 기준으로 준수 여부를 평가받습니다. 코드가 프로젝트의 준수 표준을 충족하는 경우 코드에 준수 배지가 부여되므로 커뮤니티의 개발자가 이를 통해 코드의 신빙성과 품질을 확인할 수 있습니다.

그림 2.
계층 접근법

 

TI 및 욕토 프로젝트

TI는 욕토 프로젝트가 개발자에게 제공하는 중대한 가치를 인식하고 기업 지원자로 프로젝트에 참여했습니다. 특히 TI는 개발 인력과 리더십 측면에서 지속적 지원을 아끼지 않고 있습니다. 그리고 회사의 내부 기술 인력을 욕토 프로젝트에 참여하도록 할당했습니다. 예를 들어 데니스 드미트리얀코(Denys Dmytriyenko)는 메타-TI와 메타-아라고의 유지 관리 담당자이지만 코드 제출을 모니터링하는 역할도 맡고 있으며, 욕토/OE 이사회의 회원으로 컨퍼런스에 참여하면서 TI 기술이 욕토 프로젝트에서 효과적으로 작동하도록 보장하는 역할을 맡고 있습니다.

TI는 욕토/OE-코어와 보조를 같이함으로써 욕토 프로젝트의 체계적으로 정의된 기본 계층을 활용하고 있습니다. 또한 최신 TI SDK는 OE-코어 파일 시스템에 기반을 두고 있어 개발자가 특정 애플리케이션의 요구 사항에 따라 소프트웨어 배포판을 효과적으로 맞춤 구성할 수 있습니다.
TI는 이미 개발자를 위한 상당한 수준의 욕토/OE-코어 리소스를 개발했습니다. TI는 시타라™ SoC 플랫폼을 위해 욕토/OE-코어용 메타-아라고 오버레이를 활용하고 SDK를 지원하는 리눅스 레퍼런스 배포판을 제공하고 있습니다. SDK 개발자는 시타라 리눅스 배포판을 통해 시타라 디바이스의 ARM 범용 코어의 모든 컴퓨팅 능력을 최대한 활용할 수 있습니다. 개발자는 아라고의 사용하기 쉬운 기본 제공 환경을 바탕으로 매우 신속하게 TI 플랫폼에서 개발을 시작할 수 있습니다. Arago에는 TI 전용 수정 사항과 패키지 외에도, 욕토/OE에는 적합하지 않을 수 있지만 TI SoC를 사용하는 개발자에게는 유용한 구성 요소들이 포함되어 있습니다. 또한 TI는 TI 디바이스를 위한 메타-TI라고 하는 보드 지원 패키지(BSP) 계층을 제공하며 여기에서는 옹스트롬(Angstrom)을 비롯한 여러 인기 있는 리눅스 배포판을 지원합니다.

아라고는 소프트웨어 개발을 간소화하는 많은 유용한 툴과 기능을 제공합니다. 예를 들어, 아라고는 작동이 확인된 선호 패키지 버전에 맞게 값을 필터링하고 설정함으로써 사용할 패키지 버전을 추측하고 작업하는 문제를 상당 부분 해결했습니다. TI가 아라고 프로젝트의 일부로 제공하는 다른 유용한 툴로 사용자가 자신의 환경을 구성하고 이 구성을 다른 사용자와 공유할 수 있는 스크립트 파일이 있습니다. 즉, TI의 SDK 릴리스에 맞게 환경을 구성한 후, 이 소프트웨어를 사용하여 다른 개발자와 구성을 공유하여 동일한 환경에서 소프트웨어 빌드를 사용자 지정할 수 있습니다.  개발자들은 이 방법을 통해 시스템 구성의 세부 사항에 신경 쓰지 않고 자신의 배포판에 추가할 패키지를 개발하는 데만 집중할 수 있습니다.

개발자는 또한 아라고를 도입하고 이를 바탕으로 효율적으로 자신의 시스템을 차별화하거나 특정한 필요가 있는 경우 아라고를 수정할 수 있습니다. 이 방법으로 개별 최적화된 애플리케이션의 장점을 희생하지 않고 전체 빌드 프로세스를 간소화할 수 있습니다.

결론

고품질 소프트웨어 시스템을 최대한 빠르게 시장에 출시해야 하는 압박감이 그 어느 때보다도 높은 요즘입니다. 빠른 속도로 사라지는 시장의 기회, 그리고 이익을 산출해야 한다는 끊임없는 압박 때문에 장비 제조업체에서는 언제나 소프트웨어 개발자에게 개발 기간을 단축하면서도 동시에 제품의 경쟁우위가 될 수 있는 차별화된 기능을 제공할 것을 기대하고 있습니다. 프로그래머가 이러한 압박에 정면으로 대응하기 위해서는 욕토/OE-코어와 같은 강력하고 확장이 가능한 오픈 소스 소프트웨어 기반이 필요합니다. 과거 TI가 보여준 프로젝트에 대한 적극적 참여는, 욕토/OE-코어의 고유한 능력을 활용하기 위한 성실히 노력해왔음을 보여줄 뿐만 아니라 앞으로도 지속적으로 프로젝트의 혁신을 이어갈 것임을 짐작할 수 있게 해줍니다.
자세한 내용은 http://arago-project.orgwww.ti.com/sitaralinux를 참조하십시오.

 


 


회원가입 후 이용바랍니다.
개의 댓글
0 / 400
댓글 정렬
BEST댓글
BEST 댓글 답글과 추천수를 합산하여 자동으로 노출됩니다.
댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글수정
댓글 수정은 작성 후 1분내에만 가능합니다.
/ 400
내 댓글 모음
저작권자 © 테크월드뉴스 무단전재 및 재배포 금지