본문 바로가기

전공(Major)

[임베디드]임베디드용 리눅스 모음


임베디드 리눅스 툴킷 모두 모여랏 임베디드리눅스

2004/06/01 18:11

복사 http://blog.naver.com/luck379/120002929080

임베디드 리눅스 툴킷 모두 모여랏!


- 들어가기 -



이전의 기사 중에 존재하는 대표적인 임베디드 리눅스 툴킷에 대한 리스트를 나열한 적이 있다.
편집광적인 성격의 나는 이제 거기에 대한 좀더 완성적인 리스트를 작성하고자 한다.
조사하던 중에 나는 나와 비슷한 작업을 이미 한 사람을 발견했다. 우하하하.

그는 바로 "K Computing"사의 CEO인 Kevin Dankwardt이다. 그가 www.linuxdevices.com에 똑같은 주제의
기사를 실은것이다.(Feb. 14, 2002)


-역자 주- 그가 실리콘 밸리에서 교육사업을 하는 사람으로서 이런 그의 노력은 너무나도 당연하다고
생각한다. 그의 사진과 소개자료를 그림으로 첨부하였다. 이 훌륭한 서비스 정신!!!


표준 리눅스 배포판들에 대해서는 확실한 웹 사이트가 존재한다. 이 세상에 존재하는 거의 모든 배포판
종류들에 대한 소개와 깊은 정보를 얻을 수 있는 링크들로 구성된 사이트이다. 훌륭하다고 생각한다.
바로
http://www.distrowatch.com 이곳이다. 나는 이렇게 많은 리눅스 배포판이 있는 줄은 몰랐다.

또한 이런 배포판들의 ISO 이미지를 구할 수 있는 아주 좋은 사이트를 알게되었다.
다들 알고계시겠지만, 바로
http://www.linuxiso.org 이곳이다. 나는 2주 동안(6월 3,4주 동안)
리눅스 TOP 10 배포판들을 모두 설치해 보면서 나름대로 특징들과 장단점을 살펴보았다.

한번 정도는 다들 참고하시고... 다시 메인 토픽으로.


케빈은 다음 2곳의 사이트에서 주된 정보를 얻었으며, 웹 사이트 주소는 다음과 같다.

1)
http://linux-embedded.com
2)
http://www.linuxdevices.com/articles/AT2760742655.html

위의 2곳도 반드시 훑어 볼 것을 강력히 권한다. 이 기사보다 더욱 충실한 내용들이 많이 있으니까.
여기서는 케빈이 적은 기사를 번역하고 나의 생각을 덧붙이는 형식으로 글을 전개하겠다.



- 본 문 -


Where's the free beer ?


[Updated Feb. 19, 2002] 케빈 단크워트는 free로 구할 수 있는 임베디드 리눅스 툴킷들이 얼마나
많이 있는지 조사하기 시작하였다. 여기서 free 란 의미는 'free speech'의 자유가 아니라, 'free beer'
의 공짜를 의미하는 것이다.



공짜 맥주를 찾아서
------------------


임베디드 프로젝트에 리눅스를 사용하는 한 가지 장점은 바로 무료라는 점이다. 언뜻 보기에는,
대부분의 상용 임베디드 리눅스 툴킷이나 오픈 소스 프로젝트들을 완전한 배포판형태로 무료로 다운로드
받을 수 있을거라 생각했다. 하지만 약간의 조사끝에 이것이 일반적이지 않다는 것을 알게 되었다.


임베디드 리눅스 프로젝트는 많은 수의 소프트웨어를 필요로 한다: 타겟 디바이스에서 돌아 갈 소프트웨어
뿐만아니라, 호스트 컴퓨터에서 개발을 위한 소프트웨어까지 말이다.
호스트에선 크로스 개발 환경이 또한 필요하다. 이것은 예를 들면, bintutils, compiler등을 말한다.
타겟에서는 커널과 라이브러리, 디바이스 드라이버 그리고 다양한 다른 것들이 필요하다.

어떤 이는 주어진 호스트와 타겟을 위한 소프트웨어 묶음을 'board support package'라고 간주할 수도 있다.

BSP가 지원되는 무료의 그리고 다운로드 가능한 것이 많은가 ? .. 거의 없다!


내가 최근에 이런 것에 관심이 생기고 조사를 하는 이유는 MontaVista가 최근에 그들의 무료 배포판인
Hard Hat Linux의 "Journeyman Edition"의 지원을 더이상 하지 않겠다고 발표했기 때문이다.

얼마간의 조사 후에, 나는 대부분의 임베디드 리눅스 벤더들이 완전하고, 최신의, 그리고 BSP를 포함한
툴킷을 무료로 다운로드해 주는 곳이 거의 없다는 것을 알게 되었다. 예를 들며, MontaVista는 제한적인
BSP를 가진 그들의 Hard Hat Linux의 "Jouneyman Edition"의 완전한 CD 이미지를 제공하다가, 슬프게도
이제는 중단하였다.



Free beer here
---------------


지금으로선, Timesys가 자사의 완전한 BSP를 무료로 제공하는 유일한 회사인 것 같다. 내가 처음, Timesys
에서 다운받은 tarball 파일을 보았을때는, 바깥 tarball 파일안에 완전한 툴체인을 포함하는 bzipped
tarball 파일이 존재한다는 것을 미처 알지 못하였다.

Timesys는 타겟에 필요한 툴들과 루트파일시스템을 만드기위한 인스톨 스크립트를 제공하였다.
toolsuite tarball을 위한 "crosstools"라는 서브 디렉토리를 살펴 보아라. 그리고,
루트 파일시스템과 그들의 리얼 타임 명령어들을 포함하는 tarball을 위한 "bin" 이라는 서브 디렉토리도
살펴 보아라.



A matter of common (dollars and) cents (피할 수 없는 돈 문제? --- 저의 번역 어때요 ?)
--------------------------------------


왜 벤더들이 애써서 짠 자사의 소프트웨어 집합을 비고객들에게 무료로 제공하지 않는지 그리 어렵지 않게
이해할 수 있다. 결국 그들은 비고객들의 질문에 답할 여력이 없는 것이다. 당연한 것이지 않은가 ?
또한 GPL은 GPL-release된 제품의 소스나 바이너리가 비고객에게까지 무료로 제공되어야 한다는 것을
강요하지 않는다는 것을 이해하는 것은 중요하다. 이것에 대해 불평할 아무런 이유가 없다.



More free stuff
----------------


물론 임베디드 리눅스 개발자들에 의해 개발된 무료로 구할 수 있는 비상용 소프트웨어가 많이 있다.
그러나 그것을 이용하는 것은 상용 툴킷을 이용하는 것보다는 더 많은 시간을 투자해야 할 것이다.
나는 "LinuxDevices.com"에서 나열한 모든 상용 툴킷과 오픈 소스 툴킷에 대해 조사를 해 보았다.
아래에 그 결과가 있다.


-역자 주- 너무 간단하게 나와 있어서 내가 내용을 좀 보충하였다.


모든 오픈 소스 프로젝트들에는 다운로드 가능한 뭔가 가치있는 것들이 있다.
몇몇 상용 벤더들도 그렇지만, 가끔씩 그들이 제공하는 것이 그들의 공식 웹사이트에 있는 것이 아니라서
?기가 힘들 경우가 있다. 예를 들면, MontaVista는 preemptible kernel 에 대한 노력을 SourceForge에서
하는 경우다. MontaVista의 preemptible kernel은 최근에 공식적인 2.5 커널에 포함되었다.

넓은 범위의 어플리케이션을 지원하는 상용 제품에 반해서, 오픈 소스 프로젝트들은 단일 목적의 리눅스
이미지를 생성한다. 그러나 소스를 구해 볼 수 있고, 프로젝트를 역공학할 수 있기 때문에 많은 것을
얻을 수 있을 것이다. 예를 들면, router or firewall !
Embedded Debian project같은 프로젝트는 심지어 크로스 개발 도구까지 지원한다.



유용한 자원들로의 링크
-----------------------


모든 상용 벤더들과 오픈 소스 프로젝트들에 대한 링크를 제공한다. 간단한 개요와 툴킷의 사용여부에 대해서
표시하였다.


-역자 주- 설명이 너무 간단하여 위의 2)번 사이트의 자료를 참고하여 내용을 보충하였다.


---------------------------
Commercial Products . . .
---------------------------



1) AMIRIX: Embedded Linux ---->
http://www.amirixlinux.com/
---------------------------

표준의 Debian GNU/Linux로 부터 파생되었고, 하드웨어 특화된 디비아스 드라이버와 시스템 설정 툴이 추가
되었다. 작은 실행 이미지, diskless, 플래쉬 기반, headless system requiredments이다.

none available



2) Coollogic: Coollinux ---->
http://www.coollogic.com/
-------------------------

Coollinux AE(Application Edition)는 인터넷 정보기기의 다음 세대 OS를 위해 임베디드 리눅스와 자바 기술
을 접목하였다.

none available



3) Coventive: XLinux ---->
http://www.coventive.com/
---------------------

정보 가전기기와 임베디드 장치를 위한 143KB 사이즈의 임베디드 리눅스 커널, 물론 모든 기능이 다 들어가
있다. 586,686, MediaGX, STPC, StrongARM, SH3.SH$, PA-RISC, ARM-7 등을 지원한다.

none available



4) Esfia: RedBlue Linux ---->
http://www.esfia.com/
-------------------------

pre-release Linux 2.4 를 기반으로 제작된 wireless communication을 위한 임베디드 리눅스 툴킷.
MMU가 있는 프로세서와 없는 프로세서를 모두 지원하며 전형적인 커널 사이즈는 400KB 정도이다.

none available



5) FSMLabs: RTlinux ---->
http://www.fsmlabs.com/
--------------------

표준 리눅스에 Hard Real Time을 가능하게 해주는 리눅스의 변형체 RT-Linux를 제공하는 회사

none available



6) KYZO: PizzaBox Linux ---->
http://www.kyzo.com/
------------------------

a Linux and Samba based file, print, and CD Server designed to run from 6MB of Flash ROM on a 486
(or higher) CPU.

binary floppy images available ---->
http://www.kyzo.com/



7) Lineo: Embedix ---->
http://www.lineo.com/
------------------

임베디드 디바이스에 필요한 독특한 요소인 속도, 메모리와 스토리지 제한문제를 해결한 임베디드 리눅스
기반의 소프트웨어 솔루션이다. x86, PowerPC, ARM, MIPS등의 다양한 CPU 아키텍처를 지원한다.
작은 이미지 사이즈, 리얼 타임성(RTAI나 RTLinux 중에서 선택) high-availability 솔루션도 지원한다.

old version available ---->
ftp://ftp.lineo.com/pub/downloads/embedix_source/



8) LynuxWorks: BlueCat Linux ---->
http://www.lynuxworks.com/
------------------------------

작은 소형기기에서 대형 multi-CPU 시스템, 그리고 high-availability 어플리케이션까지, 임베디드 개발에
필요한 사항들에 정확히 충족시키기 위해 쉽게 설정가능하고, 임베디드 개발자의 요구에 맞추기위해 강화
된 오픈소스 리눅스의 배포판이다. x86, PowerPC, ARM, MIPS등의 다양한 CPU 아키텍처를 지원한다.

old version of fairly complete software available
note: you must agree to their license terms before installing their proprietary pieces.



9) Mizi: Linu@ ---->
http://www.mizi.co.kr/
----------------

Linu@ 은 Internet Appliance, Smart Phone, and PDA 어플리케이션에 최적화되어 설계된 Qt/Embedded
를 GUI기반으로 하는 임베디드 리눅스이다. ARM, StrongARM, MIPS, x86, and MPC 아키텍처를 지원하며,
OS는 2MB 의 DRAM 과 4MB 의 Flash memory를 필요로 한다.

600 MB of source available ---->
http://www.mizi.com/en/download/down.htm



10) MontaVista: MontaVista Linux ---->
http://www.mvista.com/
---------------------------------

Hard Hat Linux Cross Development Kit은 넓은 범위의 임베디드 CPU 아키텍처 보드와 인터넷 기기들을 위한
시스템 레벨 플랫폼, 이동기기, 네트워킹 기능이 포함된, telephony interfaces등 많은 임베디드 어플리
케이션을 타겟으로 하고 있다.

none available



11) Neoware: NeoLinux ---->
http://www.neolinux.org/
----------------------

Red Hat Linux로 부터 파생된 임베디드 리눅스 배포판이며, 정보 가전기기에 최적화 되어 있다.
Flash 메모리 또는 리모트 네트워크 서버로의 부팅을 지원하며, 리모트 시스템 관리를 할수 있는 기능을
제공한다.

updates for customers available ---->
http://www.neoware.com/downloads/software.html



12) OnCore
-----------

none available



13) PalmPalm: Tynux ---->
http://www.palmpalm.co.kr/
---------------------

An Embedded Linux solution optimized for Internet Appliances including MP3 players, video players,
Internet TVs, PDA/cell phones, Internet phones, Video conferencing equipment, Video phones, etc.

none available (역자 주 - 이상하네.... CD 이미지를 제공하고 있는 걸로 알고 있는데. )



14) Red Hat: Embedded Linux Developer Suite ---->
http://www.redhat.com/embedded/
--------------------------------------------

Red Hat은 전통적인 임베디드 장비에서 부터 하이-엔드 어플리케이션까지 임베디드와 데디케이티드 시스템을
위한 런타임 그리고 개발 기술을 제공한다. 포팅/최적화 서비스는 물론, EL/IX, RedBoot, uClinux, and GNUPro
등의 임베디드 관련 제품을 제공한다.

none available



15) RedSonic: RedIce-Linux ---->
http://www.redsonic.com/
----------------------------

많은 임베디들 싱글 보드들을 지원하며, DiskOnChip 이나 CompactFlash 매체로부터 부팅가능하다.
또한 real-time성도 지원한다.

old (version 1.0) SDK available ---->
http://www.redsonic.com/en/downloads.html



16) RidgeRun : DSPLinux ---->
http://www.ridgerun.com/
--------------------------

ARM 코어에 DSP코어를 하나의 칩에 집적한 dual-core processors를 이용하여 멀티미디어, 무선, 브로드밴드
디바이스에 초점을 둔 임베디드 리눅스 배포판이자 툴킷이다. DSPLinux 커널은 ARM 코어 위에서 돌고,
실시간 태스크들은 DSP위에서 동작한다.

none available



17) Sysgo: ELinOS Embedded Linux ---->
http://www.sysgo.de/
--------------------------------

ELinOS은 리눅스 2.4 커널을 기반으로 하고 있고, 최신의 Journaling Flash File System (JFFS),
Memory Technology Devices (MTD), USB에 대한 폭넓은 지원을 제공한다.
RTAI kernel 확장으로 리얼 타임 태스크들을 지원한다.

binary floppy images available ---->
http://www.elinos.com/frame.php?lang=gb&ktext=demo



18) TimeSys: Linux GPL ---->
http://www.timesys.com/
------------------------

임베디드 보드를 위한 리눅스 배포판. 라이브러리, 툴 체인, 유틸리티, 드라이버, 스크립트, 문서등에
low-latency enhanced Linux kernel 을 포함한다. 이 모든 것이 GPL 로써 배포된다.
시스템의 리얼 타임성을 향상시키거나, 서비스의 질을 높이거나, 네트워킹 기능을 보강하는 추가적인 옵션
을 지원한다.

full board support packages available ---->
http://www.timesys.com/prodserv/index.cfm
Web interface requires giving name, address, etc. but supplies software for ARM, SH, x86 and PowerPC.



19) Tuxia: TASTE ---->
http://www.tuxia.com/
------------------

webpads, set-top boxes, thin clients, and screen phones 등을 겨냥한 임베디드 리눅스 배포판이다.
하드웨어 드라이버, 임베디드 리눅스 커널, 그래픽 엔진, Java Virtual Machine, 어플리케이션 레벨의 소스
를 포함하는 충분한 소프트웨어 컴포넌트를 가지고 있다.

available ---->
http://www.tuxia.com/SoftwareDownload.htm
note: registration required



20) Vitals System: vLinux ---->
http://www.armlinux.net/
--------------------------

주로 삼성에서 만든 ARM 기반의 리눅스 포트이다. 상용 제품의 저렴한 설계에 맞는 non-MMU ARM processors
를 지원하며, 여러 종류(모델)를 계속 지원중이다.

binary images available ---->
http://www.armlinux.net/






----------------------------
Open Source Projects . . .
----------------------------



1) Embedded Debian Project ---->
http://www.emdebian.org
----------------------------

Debian GNU/Linux를 임베디드 용으로 만드는 프로젝트이다. 데비안을 좋아하는 개발자에게는 정말 안성
맞춤이 아닐까 ? ARM 과 PowerPC용 크로스 컴파일러와 바이너리 유틸리티들이 제공된다.



2) ETLinux ---->
http://www.prosa.it/etlinux

------------

소형의 산업용 컴퓨터를 위한, 특히 PC/104 모듈, 완전한 임베디드 리눅스 배포판이다.
ETLinux에 대한 백서는 이곳에서 ---->
http://www.linuxdevices.com/articles/AT7308984842.html



3) FREESCO ---->
http://www.freesco.org
------------

router replacement; old 2.0 kernel.



4) kernel.org ---->
http://www.kernel.org/
---------------

standard kernel support for: alpha, arm, cris, i386, ia64, m68k, mips, mips64,
parisc, ppc, s390, s390x, sh, sparc, sparc64



5) Linux Router Project ---->
http://www.linuxrouter.org/
-------------------------

리눅스의 "networking-centric micro-distribution" 라우터로 동작하고 구성과 관리를 쉽게 할 수 있다.
access servers, thin servers, thin clients, network appliances와 같은 임베디드 시스템을 구성할 수
있다. LRP 는 하나의 floppy에 다 들어간다.

-역자 주- 얼마전에 홈페이지를 서핑한 적이 있는데, 요즘에는 거의 활동을 하지 않았으며, 커널 버전도
2.0인가 2.2인가 그랬다.



6) Linux-VR Project ---->
http://www.linux-vr.org
---------------------

이 프로젝트는 NEC VR Series system-on-chip processors를 위한 리눅스 포트이다. NEC VR Series의 대부분
은 원래 WindowCE기반의 핸드 핼드 컴퓨터를 위한 것이지만, 리눅스를 못 돌릴 이유가 전혀 없지 않은가?

adds vr41xx kernel to arch directory of linux 2.3 kernel version.



7) Linux On A Floppy (LOAF) ---->
http://www.ecks.org/loaf/ (사이트가 죽은 것 같다.)
----------------------------

x86 and floppy based client.

LOAF supports various network protocols including the lynx browser, ftp, telnet, and ssh.



8) Midori Linux ---->
http://midori.transmeta.com

----------------

소형 디바이스를 위한 '트랜스메타'의 오픈 소스 프로젝트. 빌드 시스템을 가지고 있다. 그리고
memory- and storage- and power-conserving 특징들을 커널에서 지원해 준다.



9) muLinux ---->
http://sunsite.auc.dk/mulinux/ (사이트가 죽은 것 같다.)
------------

another "Linux on a floppy" kind of distribution.



10) PeeWeeLinux ---->
http://www.peeweelinux.com
----------------

임베디드 디바이스를 위한 작은 리눅스 배포판이다. PeeWeeLinux의 한가지 목적은 바로 가능한 편하게 ,
"as painless as possible", 임베디드 플랫폼상에 리눅스 OS를 설치하고 설정하는 것이다.

Development toolset, including convenient configuration tool, for embedded x86
based systems.



11) ThinLinux ---->
http://www.thinlinux.org
---------------

최소 사항의 인텔 PC상에서 돌아가도록 설계된, 임베디드와 전용 어플리케이션을 위한 리눅스 배포판.

packages and other software for x86 based embedded Linux systems.



12) Uclinux ---->
http://www.uClinux.org
------------

Memory Management Units (MMUs)이 없는 마이크로프로세서에 리눅스를 포팅한 프로젝트. 임베디드에 굉장히
큰 이변을 낳은 프로젝트이다. 점점 더 많은 프로세서들을 지원하고 있다.
Motorola DragonBall (M68EZ328), M68328, M68EN322, ColdFire, QUICC; ARM7TDMI; MC68EN302; Axis ETRAX;
Intel i960; PRISMA; Atari 68k; 등이 지원되며, 포팅은 계속 된다.
이 오픈 소스 프로젝트는 리니오에 의해서 지원받고 있으며, uClinux와 관련된 참조 사이트가 있다.

- Running Linux on low cost, low power, MMU-less processors
---->
http://www.linuxdevices.com/articles/AT6245686197.html

- uClinux DOES multi-task
---->
http://www.linuxdevices.com/articles/AT7877270060.html






- 마무리 -



이야! 정말 많구나. 많아. 이렇게 많은 것을 다 접해 보아야 하나요? 음... 답은 당신 마음대로 입니다.
하지만 한가지 확실한 것은, 우리가 프로그래밍 언어를 배우는 거에서 이미 느꼈겠지만, 우선 마음에 드는
하나를 깊게 공부하라는 것입니다. 그렇지 않은가? 한 가지를 깊게 공부하고 연구하다 보면, 어느덧 모든
것이 한결 같이 느껴질 때가 올 것이기 때문이죠. 적어도 다른 것을 금방 읽힐 내공이 쌓인다고나 할까요?


저의 견해를 말씀드리자면, 상용 툴킷들은 "리눅스 기본기(좀 애매하지만...)"에 툴킷 벤더에서 제공되는
메뉴얼을 잘 공부하면 금방 익숙해질 것이라고 생각합니다.(이미 여기에 대해선 대충 살펴 보았죠?)


문제는 금전적인 이유나 개인적인 견해로 인해 오픈 소스 프로젝트를 이용할 때 인데요.
더 깊은 리눅스 실력이 필요하고, 더 많은 삽질이 필요할 것입니다. 하지만 그 만큼의 장점이 있는 거죠.
개인적인 생각이지만, 저는 위에서

Embedded Debian Project
Midori Linux
PeeWeeLinux
Uclinux

등을 섭렵해 볼려구 합니다. 나름대로의 장단점을 비교/분석하면서 연구해 본다면 확실한 비젼이 생길 것
입니다. 물론 세월아 내월아(?) 하면서 천천히 익혀 볼 것입니다. 일도 해야 되니까요.

솔직히 말하면, 오픈 소스 임베디드 리눅스 툴킷을 제작해 보고 싶은게 저의 욕심입니다. 과욕인가요 ?
상용 임베디드 리눅스 툴킷 못지 않은 놈을 한번 만들고 싶네요. 다른 것은 이미 리눅스가 다 이룩해 놓은
것이구요, 아마 루트 파일스시템을 설정/구축해 주는 GUI설정 툴을 만드는 것이 가장 주된 작업이겠죠.
헛 쓸데없는 소리를 했군요...

다음 글은 약속대로 "CPU 아키텍쳐 종류에 관한 글" 을 올리도록 하겠습니다.
음. 굉장히 어려운 주제라서... 저의 짧은 지식이 들통나는 글이겠지만, 쪽팔리더라도 적어 보겠습니다.
왜냐면, 난 이기적이거든요. 우헤헤헤!

 

글쓴이 - 조형기

출처 - KELP 게시판