또 다른 오픈 소스 임베디드 ITRON ①

ITRON에 대해서먼저 1984년 일본의 TRON 프로젝트에서 시작된 여러 가지 운영체제 중에서 임베디드 시스템용의 Hard Real Time OS 사양인 ITRON에 대한 소개부터 시작하겠다.ITRON은 공개 소프트웨어 형태가 아니라 표준화를 통한 운영체제 공개 사양서(문서)로 공개하는 형태이다. 그러므로 표준적인 사양서에 대해서만 Open이라 개발 보드의 포팅 방법이나 개발 환경에 대해서는 각 회사와 사용자에 의해서 결정이 된다. 이러한 이유로 각 회사마다 만든 ITRON의 미들웨어가 호환되지 않는 경우가 많다. 그래서 약한 표준화라고 말하기도 한다. 일반적으로 ITRON은 uITRON이라고 말한다. 그림 1은 ITRON에 대한 TRON협회의 20년 동안의 성과물이며, TCP/IP에 대해서도 사양서가 공개되어 있다.그림 1을 보면 ITRON은 아주 작은 운영체제에서 쌓는 방식으로 필요한 기능을 하나씩 추가하면서 발전해 왔다. ITRON 운영체제의 커널 이미지는 10~60Kbyte 이하로 간단하다. 위의 성과물에 대한 사양서는 TRON 협회 홈페이지에서 다운로드 할 수 있다.- ITRON 성과물에 대한 사양서 다운로드일본어 : http://www.assoc.tron.org /jpn/itron-doc.html영문 : http://www.assoc.tron.org/eng /document.html참고로 홈페이지에서 공개된 사양서와 여러 문서들은 실제로 판매되는 책들이 많다. 또한 똑같은 문서에 대해서 일본어와 영어로 제공함으로 일본어 IT용어를 공부하는 개발자들에게는 많이 도움이 된다. 특히 임베디드 관련하여 사용하는 용어들이 우리나라에서는 영어식 표현을 그대로 사용하는 경우가 많으나 일본에 경우는 영어 표현을 한자로 표기하는 경우가 많아 발음이 전혀 다르다. 그러므로 일본 개발자와 같이 일할 경우 이점에 유의하자.ITRON 운영체제의 특징이 장에서는 ITRON 운영체제의 특징에 대해서 설명을 해보겠다(그림 2 참고). 독자들의 쉬운 이해를 돕기 위해 우선 임베디드 리눅스와 WinCE를 이용한 제품 개발 방식을 설명을 하면, 자기가 원하는 제품을 만들기 위해 그림 2에서 볼 수 있듯이 전체 커널 소스에서 필요한 부분만 선택하여 원하는 커널이미지를 만든다. 즉, 조각가(=개발자)가 큰 바위(임베디드 리눅스, WinCE의 전체 소스)를 조각하여 원하는 모양(=제품에 필요한 소스)을 만들어 낸다. 이는 개발 방법이 깎아내는 방식인 것이다. 그러나 ITRON의 경우는 건물(=제품)을 만들 때 기본 골격(=ITRON사양)을 만들고 필요한 건축자재(=Device Driver, 미들웨어)를 만들거나 외부에서 가져와서 건물을 만든다. 개발 방법이 쌓는 방식인 것이다. 이런 기본 골격(=ITRON 사양)을 회사의 특정 제품에 맞게 규격화시켜서 자회사의 임베디드 제품에 재사용성을 높일 수 있다는 것이 ITRON 운영체제의 특징이다.ITRON은 일반적인 임베디드 OS와 또 다른 특징이 있는데, 그것은 Hard Real Time OS로서 멀티 태스크 기반이며 원하는 함수를 태스크로 만들어 몇 십 ㎲를 보장하도록 실행을 할 수 있다는 것이다. 간단히 예를 들어 설명하면 다음과 같다. 에어컨에 서로 다른 기능의 모터가 3개가 연동하여 작동을 할 때, 각각의 모터의 제어 함수를 Motor_A(), Motor_B(), Motor_C() 지정하고 각각의 모터 함수를 태스크로 선언을 할 수가 있다. 다음의 코드는 Motor_A()를 태스크로 선언한 예이다.#include “itron.h”#include “kernel.h”void Motor_A(VP_INT exinf){/- A 모터 제어 알고리즘 -/}void main(){ T_CTSK ctsk; ctsk.tskatr = TA_HLNG; ctsk.exinf = 0x12AB; ctsk.task = Motor_A; /- Motor_A함수를 태스크로 선언 -/ ctsk.itskpri = 5; /-우선 순위 설정 -/ ctsk.stksz = 256; ctsk.stk = NULL; cre_tsk ( 10, &ctsk );이처럼 3개의 모터를 함수로써 각각의 태스크로 만들어 우선순위로 제어하여 몇 십 ㎲ 내의 제한 조건을 만족하여 함수를 실행할 수가 있는 것이 특징이다.그리고 앞에서 말했듯이 ITRON은 공개 소프트웨어 형태가 아니라 공개 사양서 형태이므로, 각 회사들이 공개 사양서를 참고하여 ITRON을 개발하여 사용하고 있다. 표 1을 보면 각 회사마다 ITRON 운영체제 이름이 서로 다르다는 것을 알 수 있다.앞에 여러 회사의 ITRON이 언급되었으므로 이제 ITRON에 대해서 로열티에 대해서 간단하게 설명하겠다. ITRON에 공개 사양서에 대해서는 로열티가 무료이다. 그러나 각 회사에서 만든 ITRON 운영체제의 소스에 대해서는 특별한 기능을 추가하여 로열티를 유료화 하거나 무료화 할 수 있으며, 공개하거나 공개하지 않을 수 있다.이는 각 개발 회사가 자유롭게 지정할 수 있다는 것이며, 리눅스의 GPL 라이선스와 다른 차이점이다. 나중에 뒤에서 설명하겠지만 일본의 대표적인 임베디드 오픈소스 협회인 TOPPERS (http://www.toppers.jp)에서는 자체 제작한 ITRON (=TOPPERS/JSP)을 오픈 소스로 하여 무료로 배포하고 있다면 양산 제품을 개발할 때에도 별도의 로열티가 없다.일반적으로 임베디드 소프트웨어와 관련하여 오픈 소스 형태로 무료로 배포하는 하더라도 양산 제품을 개발할 때 별도의 로열티를 부가하는 경우가 많다. 이러한 경우는 대부분 오픈 소스에 대해서 연구용이나 테스트 목적으로는 허용하지만 상업적 목적으로 사용하면 로열티를 부가하는 경우이다.ITRON을 언급함에 있어서 T-Kernel에 대한 설명이 필요하기에 간단히 짚어보도록 하겠다. ITRON이 각 회사마다 자체적으로 개발하다 보니, 미들웨어 유통이 어렵고 근래에 각 기업끼리 협업하여 임베디드 제품을 개발하는 경우가 많아졌다. 그리하여 앞에서 말한 요구를 해결하고 국제 표준화를 위하여 T-Engine 포럼을 만들었다. T-Engine 포럼에서는 ITRON에 미들웨어 유통이 강한 표준화인 T-Kernel을 만들었으며, 오픈 소스 형태와 공개 사양서를 둘 다 진행하고 있다. 또한 T-Kernel은 양산 제품 개발에 대해서 로열티가 없으며, T-Engine 포럼에서는 회원(약 500회사)이 IRP에 의해 특허 등 관련한 공업소유권에 대해 주장하지 않기로 하고 있다.공업소유권(工業所有權) : 공업상의 의장이나 발명 등을 독점하여 이용하는 권리, 특허권, 위장권, 실용시안권, 상표권의 네 가지로 나뉨.그럼 ITRON과 T-Kernel에 대해서 사양서에 대해서 비교를 해보겠다. 그림 3을 보면 T-Kernel과 ITRON의 Basic Profile을 공통으로 사용하고 있다는 것을 알 수 있다.또한 표 2를 보면 uITRON과 T-Kernel의 공통 커널 API가 있다는 것을 알 수 있다.그러므로 uITRON과 T-Kernel를 둘 중에 하나를 잘 할 줄 알면 나머지 하나도 잘 할 수 있으며, uITRON으로 제작된 제품을 T-Kernel로 쉽게 포팅을 할 수 있다.이어서 일본의 임베디드 분야에 ITRON 사용현황에 대해서 살펴보자. 그림 4를 보면 ?06년 11월 기준으로 전체의 33% 정도가 ITRON을 사용하고 있다는 것을 알 수 있으며, T-Kernel을 포함하면 38%라고 할 수 있겠다.그리고 그림 5에서처럼 일본에 임베디드 관련 제품을 개발할 때 ITRON API가 53%정도 사용되고 있다는 것을 알 수 있다. 그 이유는 TRON Project가 20년 동안 진행되어 오면서 ITRON을 공개 사양서 형태로 제공되어 왔으며, 그 결과 일본의 임베디드 개발 문화에 대해서 소스 작성과 문서 작성 양식에 많은 영향을 주었다는 것을 알 수가 있다. 이러한 결과에 따른 ITRON의 공개 사양서 기반의 제품 개발 노하우가 최근에 자동차 임베디드 운영체제로 유럽의 OSEK(http://www.osek-vdx.org)이라는 자동차에 표준화된 운영체제도 공개 사양서 형식으로 문서가 제공되고 있으므로, 일본에서는 자동차에 쉽게 적용해서 개발하고 있다.ITRON이 사용된 제품 현황ITRON은 일반적으로 다음과 같은 제품에 사용되고 있다.· AV기기, 가전 TV, 비디오, 디지털 카메라, 셋톱박스, 오디오 기기, 전자레인지, 밥솥, 에어컨, 세탁기·개인용 정보 기기, 오락/교육 기기 PDA, 전자수첩, 카 내비게이션, 게임기, 전자 악기·PC 주변기기, OA기기 프린터, 스캐너, 디스크 드라이버, CD-ROM 드라이브, 카피, FAX, 워드프로세서·통신 기기 자동응답 전화기, ISDN 전화기, 휴대전화, PHS, ATM 스위치·방송 기기/설비, 무선설비, 인공위성 운수 기기, 공업 제어/FA기기, 그 외 자동차, 플랜트 제어, 공업용 로봇, 엘리베이터, 자동판매기, 의료용 기기, 업무용 데이터 단말기그림 6은 실제 ITRON이 적용된 대표적인 제품들이다.ITRON은 도요타의 자동차 엔진과 NTT DOCOM의 휴대전화에 가장 먼저 사용되었으며, 그 후 여러 가전제품 회사들이 자회사 OS 형태로 발전시켜 제품을 개발하였다. 그리고 일본 디지털 카메라의 80% 정도가 ITRON을 사용하고 있다. 최근에는 TOPPERS의 공개 소스인 ITRON이 탑재된 제품도 출시가 되었는데, ZOOM의 MIRS를 비롯한 ROLAND의 음향 장비와 마쓰시다의 KARAOKE, EPSON의 프린터기 등에 적용됐다.일본의 휴대전화에는 대부분 ITRON이 탑재되어 있는데 가장 큰 이유는 ITRON에서 다양한 한자 글꼴을 제공하기 때문이다. 사실 TRON 프로젝트는 임베디드 소프트웨어뿐만 아니라 문과 쪽인 한자와 글꼴에 대해서도 연구를 해왔었다. TRON 문자수록센터((http://www2.tron.org)는 TRON 프로젝트가 규정하는 데이터 교환 규약 TAD(TRON Application Databus) 가운데, 문자 코드(TRON 코드)의 관리 및 보급 촉진을 실시하는 기관이다. TRON 코드는 세계의 모든 문자를 수록한다는 목표로 150만 자를 수록할 수 있는 코드 체계이다. 이에 따라 TRON은 현재 약 18만 문자(문자의 부품, 기호를 포함한다)를 지원하고 있다. 이러한 장점으로 최근 ITRON과 T-Kernel은 중국에서도 적극적으로 도입될 움직임이 나타나고 있다.TRON 엔지니어 시험 소개올해부터 일본에서는 TRON 엔지니어 시험(T-Engine 포럼과 트론 협회의 인정 시험)이 실시될 예정이다.T-Kernel나 ITRON를 이용하는 기술자로서 충분한 능력이 있다는 객관적인 평가를 받기 위해서, JASA(일본 임베디드 시스템 기술 협회)에서 시행하는 임베디드 기술자 1급 자격을 취득해야 이 시험에 응시할 수 있다. TRON 엔지니어 시험과 편성 소프트웨어 기술자 1급 시험에 모두 합격한 엔지니어는 TRON 임베디드 스페셜리스트로 인정된다.JASA의 임베디드 소프트웨어 기술자 시험은 임베디드 소프트웨어 기술자 시험 클래스(ETEC) 1급, 2급으로 나누며, 합격/불합격 형태가 아니라 800점 만점의 객관식 문제를 통한 CBT(Computer Based Test) 방식으로 임베디드 개발자의 능력을 평가한다. 보다 자세한 사항은 JASA의 ETEC 자격증(http:// etec.jasa.or.jp/index.html) 홈페이지에서 확인할 수 있다.TOPPERS란?앞으로 필자가 연재할 ITRON 운영체제는 TOPPERS에서 공개 소스로 제공하는 TOPPERS/JSP(uITRON4.0)을 중심으로 진행토록 하겠다. 따라서 다음 회로 넘어가기 전에 TOPPERS에 대해 소개하고자 한다.TOPPERS(NPO법인 TOPPERS 프로젝트)(http://www.toppres.jp)TOPPERS(Toyohasi Open Platform for Embedded Real-Time Systems)는 임베디드 시스템 구축의 기반이 되는 각종 소프트웨어를 개발하고 양질의 오픈 소스 소프트웨어를 공개함으로써 임베디드 시스템 기술로 산업의 진흥을 꾀하고자 내세운 프로젝트이다. 또한 교육 코스나 교재의 개발과 그것을 사용한 교육의 장을 제공하는 등의 활동을 통해 임베디드 시스템 기술자의 육성에 공헌한다는 것도 목적으로 하고 있다.오픈 소스인 uITRON 사양 OS는 uITRON 4.0 사양의 스탠다드 프로파일에 대응한 ‘TOPPERS/JSP’와 uITRON 4.0 사양의 Full Set를 지원하는 ‘TOPPERS/FI4’가 있으며 누구나 TOPPERS 프로젝트의 홈페이지에서 다운로드를 할 수 있다. 이들 OS는 무상으로 이용할 수 있으나 이용할 때는 ‘TOPPERS 라이선스’ 또는 ‘GNU GPL’에 따를 필요가 있다.TOPPERS 라이선스라고 하는 것은 제한 없이 누구나 자유롭게 사용할 수 있다는 것이며, 사용하는 조건으로 ‘이용했음을 TOPPERS 프로젝트에 보고’하는 것뿐이다. 그것은 TOPPERS 프로젝트의 성과물에 표현하기 위해서이다. 그리고 TOPPERS 프로젝트에서는 ITRON뿐만 아니라 유럽 자동차 OS 표준화 단체의 OSEK을 적용한 TOPPERS/OSEK 소스도 공개하고 있다.이번 회에서는 ITRON의 전반적인 사항에 대해서 알아보았다. ITRON의 C언어 작성 방식이나 Kernel API의 사용 방식이 기존에 우리가 알고 있던 WinCE와 임베디드 리눅스와 완전히 다르다. 그래서 기존의 임베디드 운영체제에 익숙한 개발자가 처음으로 ITRON을 사용한다는 데에는 여러 가지로 어려움이 있을 것이다. 다음 연재에는 그러한 내용을 담아서 TOPPERS에 제공하는 ITRON 공개 소스를 중심의 개발 환경에 대해서 설명하도록 하겠다.관련 사이트http://www.tron.orghttp://www.toppers.jphttp://www.t-engine.or.kr
회원가입 후 이용바랍니다.
개의 댓글
0 / 400
댓글 정렬
BEST댓글
BEST 댓글 답글과 추천수를 합산하여 자동으로 노출됩니다.
댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글수정
댓글 수정은 작성 후 1분내에만 가능합니다.
/ 400
내 댓글 모음
저작권자 © 테크월드뉴스 무단전재 및 재배포 금지