임베디드랜드

출처 - KELP 게시판
글쓴이 - 조형기

Embedded OS로의 리눅스

-들어가기-

임베디드 시스템이라는 용어는 참으로 오래 됐다.
인텔에서 4bit 마이크로 프로세서가 나올 때 부터 임베디드 시스템들은 개발되지 않았나 싶다.
최근에 IBM의 Technical Article에서 보니까, 60년대 후반, 전화 스위치를 제어하는 통신에
사용되었던 것이 최초의 임베디드 시스템으로 알려져 있다고 하였다.

www.embedded.com이라는 명실상부한 임베디드 시스템 포탈 사이트가 있다.
10년 전에는 이곳에서 주최하여 미국 샌프란시스코에서 열리는 임베디드 시스템 컨퍼런스에
참가하는 한국 개발자가 몇 명 없었다며, 응근히 자랑하던 한 교수님의 말씀이 떠오른다.
그러던 것이 지금은 아무나 쉽게 'embedded' 란 용어를 사용한다. 내가 사용하고 있지 않은가 ?

아주 오랜전부터 있던 'embedde'란 용어가 지금 이렇게 떠들썩 한 이유는 ... 나는 이렇게 생각한다.
해답은 대중성이다. 즉, 과대, 허풍성이 약간 포함되어 있다는 말이다.
과거의 임베디드 시스템은 지금에 비해 상대적으로 단순하였으며, 일반 대중들에게 팔 물건들이
전통적인 가전제품을 제외하고는 별로 없었다. 그러나 이 세계가 점차 발전함에 따라 새로운 수요가
창출되었다. (의도적으로 만들어 진건지도 모른다) 고성능, 다양한 기능을 원하게 되어 갔다.
또한 일반 대중들에게 필요한 임베디드 시스템이 필요하게 된 것이다.
1인당 1PC 시대인 오늘 날, post PC = embedded 이라는 등식이 성립되면서, 새로운 가전 제품의 개념과
인터넷 기기, 모바일 기기등에 대한 수요가 폭발하게 된 것이다.
수요가 폭발하는는 것은 돈이 폭발한다는 것이다. 신생 기업들은 그 줄기를 잡기 위해 전력을 다하게 되고,
... 조금 지켜 보다가 대기업들이 들고 들어오게 되는 것 같다.
결국 embedded 가 광고의 주 키워드가 되어 버린 것이다.
나의 이런 생각이 조금 이상하다면 피드 백을 부탁합니다.


- 임베디드 리눅스의 효시 -

언제부터 리눅스를 임베디드 시스템에 플랫폼으로 사용할려는 시도가 일어났는지 나는 정확히 모르겠다.
하지만 국내에 2000년도에 리눅스 포팅 붐이 일었으니까, 외국에는 한 2-3년 전이 아닌가 싶다.
나는 한때 '임베디드 리눅스의 효시'라는 주제에 대해 고민하고 조사를 한적이 있었다.
음, 그렇게 열심히 조사하지 않았지만, 다음과 같은 것들이 효시가 될만하다고 생각한다.

1) 리눅스의 다른 아키텍처로의 포팅 중, ARM이나 PPC로의 포팅 (http://www.arm.linux.org.uk/)
2) 컴팩 WRL(western research lab)의 Itsy 컴퓨터 (http://research.compaq.com/wrl/projects/itsy/)
3) uClinux 프로젝트 (http://www.uclinux.org)

1)번이 아마도 가장 효시가 될 것 같다. ARM으로의 포팅은 러셀 킹을 중심으로 아주 전략적으로
지금까지 꾸준히 진행되고 있다. ARM은 뭐니뭐니해도 모바일 용 프로세서이므로, 포팅 자체가
임베디드 리눅스로의 사용이라고 볼 수 있다. 언제 부터 시도 되었는지는 정확히 모르겠다.

2)번은 컴팩의 웨스턴 리서치 랩에서 개발한 초소형 컴퓨터이다.
프로토타입은 연구용인 것 같다. 위의 url에 가보면 여러가지 자료가 있다. 오픈 소스 프로젝트이다.
스트롱암 기반이며, 내가 알기로는 시기적으로 가장 빠른 것이다. (July 1998. Revision 1.0. )
커널 버전 2.0.30을 이용하였다. 그 다음에 인텔의 아사벳 보드, 그리고 인트린식의 서프보드에
리눅스가 포팅되었다.

3)번은 MMU가 없는 이른바 '마이크로 컨틀롤러'에 리눅스를 포팅한 프로젝트이다.
처음에는 모톨로라의 드래곤 볼 (MC68328)에 포팅되었고, aplio라는 회사에서 arm7tdmi 에 포팅을
하였다. 이것을 가지고 구식이 된 삼성 50100 보드에 포팅이 많이 시도되었고 성공되었다.
그리고 서계적인 네트워크 카메라 업체인 Axis라는 기업에서는 자사의 암코어 프로세서인
ETRAX에 포팅을 하였다. 오픈 소스이다. 이 기업은 jffs 를 오픈 소스화해서 또한 유명하다.
(참고로, MTD를 이끌고 있는 David Woodhouse가 이것을 보고, 레드햇의 재정적 지원을 받고,
jffs2를 개발하였다. 오픈 소스의 아주 좋은 현상이다. )

또 다른 효시가 될 만한 것이 있으면 피드 백을 주세요.


- 개념 -

그럼 지금부터 본론으로 들어가 보자.

임베디드 시스템에 사용되는 리눅스를 임베디드 리눅스라고 한다.
엔터프라이즈 급 커널 2.4를 임베디드에 사용하는 것이 좀 무리가 있을 지도 모른다는
조심스런 생각이 든다. 그래서 개발자들은 커널 2.2.18을 가장 선호한다는 소문을 들었다.
소문은 소문일 뿐이다.

우선 임베디드 리눅스와 보통의 리눅스와의 차이점을 살펴보자.
근본적인 커널의 차이점은 없다. 다만 차이점이란 커널을 최소화, 최적화 시켰다는 것이다.
필요한 기능만 커널 옵션에서 선택하여 컴파일한다. (수많은 커널 컴파일 옵션이 있지 않은가? 대략 2000개)
그 다음 차이점은 바로 사용되는 파일 시스템의 타입 종류와 루트 파일 시스템에 들어가는 내용물(?)들
의 차이점이다. 불필요한 모든 것을 제거하고, 시스템 본연의 기능을 가장 빠르게 수행할 수 있는 상태를
만들어 놓은 것이 다다. 정리를 하자면,

1) 커널의 최소화, 최적화
2) 사용되는 파일 시스템 타입 (주로, ext2, minix를 램디스크란 메카니즘으로 사용, 또는 cromfs, jffs, jffs2)
3) 루트 파일 시스템에 들어가는 시스템 유틸리티, 각가지 설정파일, 어플리케이션을 최소화 , 최적화

등이다.



- 상용/오픈소스 임베디드 리눅스 툴킷 -

임베디드 리눅스를 이용하여 제품을 개발하는 회사가 급격히 많아지니까 당연히 그런 개발을 위한
솔루션 회사들이 많이 나타났다. 이른바 상용 임베디드 리눅스 툴킷을 판매하는 회사이다.

여기섯는 서계적으로 유명한 임베디드 리눅스 툴킷들을 상용/오픈소스 로 나누어서 알아보았다.
===========================================================================================================

I) 상용 임베디드 리눅스 툴킷

(1) LynuxWorks 사의 Blue Cat Linux ----> http://www.lynuxworks.com
(2) Lineo 사의 Embedix ----> http://www.lineo.com
(3) MontaVista 사의 MontaVista Linux ----> http://www.mvista.com
(4) Red Hat 사의 Embedded DevKit ----> http://www.redhat.com
(5) 독일의 SysGo 사의 ELinOS ----> http://www.elinos.com/
(6) Timesys 사의 Timesys Linux ----> http://www.timesys.com/
(7) RedSonic 사의 RedICE Linux ----> http://www.redsonic.com/


II) 오픈 소스 임베디드 리눅스 툴킷

(1) 데비안 배포판에서의 Emdebian ----> http://www.emdebian.org
(2) PeeWeeLinux ----> http://www.peeweelinux.org
(3) Linux Router Project ----> http://linuxrouter.org
(4) ELKS(Embedable Linux Kernel Subset ----> http://elks.sourceforge.net/

============================================================================================================
음, 참 많다. 선택의 폭이 넓다. 그 만큼 해골은 복잡해진다.



- 국내 임베디드 리눅스 업체 개요 -

국내에도 임베디드 리눅스 관련 업체들이 많이 있다.
대표적인 기업들을 알아보자. 이것은 순전히 개인적인 소견일 뿐이다.

여기서는 10개의 대표 업체들을 조사해 보았다.
회사명과 간단한 요약 글로 마무리 하겠다.

==========================================================================================================
(1) 팜팜테크 - 국내에선 가장 선구적인 기업인 듯 하며, 현재 인텔의 차세대 프로세서 Xscale의 리눅스
포팅을 맡은 세계적으로 알려진 기업이다. 샤프의 자우루스 PDA의 한국 총판을 맡고 있다.
현재까지 100대 남짓을 팔았다고 한다. 장사가 잘 안되는 모양이다.


(2) 미지 리서치 - 패포판 뿐만아니라, 임베디드에 활성화 되어 있다. 국내에서 QT-Embedded 총판을 맡고
있으며, 주로 임베디드에서의 어플리케이션에 강세이다. HNT에서 만든 개발보드를
자사의 리누엣과 함께 판매하고 있다.
'임베디드 리눅스 프로그래밍' 이라는 책이 이 회사의 개발자에 의해 쓰여져 출판되어
있다. 국내 유일의 책이다. 개발자 사이트를 운영하고 있다.


(3) 알코정보통신 - 주) 알코정보통신 : PowerPC, ARM CPU 관련 Core B/D 개발 및 판매,
통신관련 프로그램 개발
개인적으로 잘 모름.


(4) 아델리눅스 - 처음에는 배포판을 제작하기도 했었는데... 지금은 임베디드 용역을 주로 하고 있다.
교육사업도 활발히 추진하고 있다.

(5) 애스톤 리눅스 - '코드메이커'라는 개발 툴을 만드는 회사이다. 국내에선 개발 툴을 만드는 유일한
회사인 것 같다.
RT-linux 를 아태지역에 판매하고 있다.


(6) 바이탈즈 시스템 - 이 기업은 주로 삼성 ARM 코아 프로세서에 리눅스 포팅을 하고 있다.
전반적으로 좋은 제품 라인이 구성되어 있다.


(7) 아이트로닉스 - (주)아이트로닉스 정보통신 - 마이크로 프로세서 및 DSP 관련 개발,
Embedded B/D.router.PowerPC MPC860/8260/755 기반, 임베디드 하드웨어 및
소프트웨어 개발

(8) 하이버스 - Embedded Linux 대중화 선도 업체 HyBus 사업영역 : 1. Evaluation 보드 사업,
2.Linux upgrade 사업, 3.Customized 보드 사업,
4.수주 사업(개발 용역 및 보드 레벨 납품)

(9) J.D&T - 현재 kelp 에서 활발한 활동을 하고 있는 유영창님과 푸지 님이 함께 있는 회사.
주로 공장자동화 기기쪽에 임베디드 리눅스를 활용하는 것을 주로 함.


(10) T&B (현재 상호명을 린포스로 바꾸었음) - tbell 보드로 유명함.
현재는 임베디드 리눅스 솔루션으로 DVR을 개발하여
판매하고 있음.

==========================================================================================================


- 마무리 -

'임베디드 리눅스' 그것은 쉽고 간단한 것이 절대 아닌 것 같습니다.
하드웨어 설계 능력과 시스템 프로그래밍 실력, 어플리케이션 제작 능력, 그리고 자체 원천기술이 있어서.
이것들이 어우러져 어떤 하나의 제품으로 나온다고 생각합니다. 무슨 소리야 ?

자체 원천 기술이야 그 회사의 지적 재산인 거고, 그 외의 것들이 다 필요한 것이지요.
그 만큼 공부할 양이 방대하다는 것입니다.
임베디드 리눅스는 결국 리눅스를 축소한 것입니다.
그리니 리눅스 자체에 대한 공부도 해야만 한다는 것입니다.

그리고 리눅스는 전통적인 유닉스를 자유롭게 구현한 운영체제입니다.
결국 유닉스에서 공부해야할 것들도 공부를 해야한다는 결론이 나옵니다.
그래서 임베디드 리눅스에 대한 처계적인 컬리큘럼을 정하기가 참으로
힘들다고 생각합니다.

에이 ! 글이 좀 어수선 하군요. 다음에는 '리눅스의 개발환경 개요도'란 글을 올리겠습니다.
그 다음엔 나름대로의 제가 생각한 커리큘럼 차례를 올려 보도록 하겠습니다.

Posted by suvisor