41
임임임임 임임임 임임

임베디드 리눅스 소개

Embed Size (px)

DESCRIPTION

임베디드 리눅스 소개. 목차. 임베디드 리눅스 리눅스 소개 임베디드 리눅스 소개 임베디드 리눅스의 전략적 가치 임베디드 리눅스의 한계 리눅스 버전 상태 임베디드 리눅스 개발자 주의 사항. 리눅스 커널 내부 구조. 리눅스 소개. 리눅스의 정의 리눅스의 탄생 리눅스의 발전 리눅스의 특징 리눅스 배포판들 리눅스의 미래 리눅스 구하기. 리눅스의 정의. 유닉스 (Unix) 타입의 운영체제 Linus Torvals 에 의해 그 커널이 최초로 개발됨 - PowerPoint PPT Presentation

Citation preview

Page 1: 임베디드 리눅스 소개

임베디드 리눅스 소개

Page 2: 임베디드 리눅스 소개

목차

임베디드 리눅스 리눅스 소개 임베디드 리눅스 소개 임베디드 리눅스의 전략적 가치 임베디드 리눅스의 한계 리눅스 버전 상태 임베디드 리눅스 개발자 주의 사항

Page 3: 임베디드 리눅스 소개

리눅스 커널 내부 구조

Page 4: 임베디드 리눅스 소개

리눅스 소개

리눅스의 정의 리눅스의 탄생 리눅스의 발전 리눅스의 특징 리눅스 배포판들리눅스의 미래 리눅스 구하기

Page 5: 임베디드 리눅스 소개

리눅스의 정의

유닉스 (Unix) 타입의 운영체제Linus Torvals 에 의해 그 커널이 최초로

개발됨이후 전세계의 수많은 프로그래머들에

의해 지속적으로 개발됨초기는 서버용현재는 서버 /데스크탑용

Page 6: 임베디드 리눅스 소개

리눅스의 탄생

1991 년 리누즈 토발즈가 개인용 PC 에서 멀티태스킹을 구현하기 위한 운영체제로서 개발 .

인터넷 상에 그 소스코드를 공개함으로써 수많은 프로그래머들이 새로운 기능을 보강하여 오늘날의 리눅스 체제를 갖춤 .

Page 7: 임베디드 리눅스 소개

유닉스의 등장

유닉스 : 리눅스의 모태1969 년 벨 연구소의 Ken Tompson 에

의해 개발됨멀티유저 / 멀티태스킹이 가능초기 어셈블리 언어로 개발되었으나 C

언어로 다시 작성됨이식성이 높은 운영체제

Page 8: 임베디드 리눅스 소개

유닉스의 진화

대학과 연구소에 소스코드를 공개1969 년 버클리 대학에서 유닉스에

네트워크 기능을 보강한 BSD 버전을 개발AT&T 에서 System V 버전을 개발Free BSD 가 PC 용으로 포팅됨이후 BSD 와 System V 는 유닉스의 가장

중요한 버전으로 이어져오고 있다 .

Page 9: 임베디드 리눅스 소개

리눅스의 탄생

유닉스를 PC 버전으로 개발하려 노력 마이크로소프트사의 제닉스 앤드류 타넨바움의 미닉스

리눅스 유닉스 커널을 PC 에서 사용 가능하게 함 1991 년 최초의 리눅스 0.01 버전이 개발됨 리눅스 0.02 버전이 최초로 공개됨 0.02 버전은 bash, gnu-make, gcc 등이 실행될

수 있을 정도였음

Page 10: 임베디드 리눅스 소개

리눅스의 발전 리누즈 토발즈

리눅스 커널을 개발 , 공개 리눅스의 씨를 뿌린 사람 리눅스의 아버지

리처드 스톨만 Free Software Foundation 회장 소프트웨어의 자유로운 공유와 배포를 주장 리눅스라는 씨가 뿌려질 수 있는 환경을 개발 리눅스의 성자

인터넷 인터넷을 통하여 수많은 프로그래머들이 리눅스 프로그램에

참여 통합된 운영체제의 모습을 완성 빠른 도약을 하게 된 배경

Page 11: 임베디드 리눅스 소개

리눅스의 특징

리눅스의 장점 유닉스와 완벽하게 호환 가능 공개 운영체제 다른 PC 운영체제보다 안정적 무료 하드웨어의 기능을 효과적으로 사용 강력한 네트웨크를 구축할 수 있게 함 다양한 응용프로그램을 제공 다중 작업이 가능 인터넷의 모든 기능을 지원

Page 12: 임베디드 리눅스 소개

리눅스의 특징

리눅스의 단점 공개 운영체제이기 때문에 문제점 발생시

보상받을 수 없음 공개 운영체제이기 때문에 보안에 취약할

것이라는 선입관이 있다 . 리눅스 커널이 너무 자주 , 너무 빨리 바뀐다 .

Page 13: 임베디드 리눅스 소개

리눅스 배포판들

해외 배포판의 종류 레드햇 (Red Hat)

레드햇 소프트웨어사에서 공급쉬운 인스톨러 (RPM) 와 관리 툴이 있다 .

슬렉웨어 (Slackware)초창기의 배포판으로 패트릭 볼거딩이 개발하여 보급구조가 간결 : 내용을 파악하기 쉽다 .패키지 관리가 쉽지 않다 .설정이 에디터의 텍스트 파일을 다시 작성하는 방법으로

이루어 짐 : 초보자에게는 매우 어렵다 . 데비안 (Debian)

데비안 프로젝트에 의해서 발전 : 다양한 개발자들이 참여패키지에 문제점이 발견되면 몇일 후에 바로 수정

패키지가 만들어져 보급됨 리눅스 - 맨드레이크 (Linux-Mandrake)

다양한 그래픽 환경을 제공 : 친숙한 윈도우 환경을 제공

Page 14: 임베디드 리눅스 소개

리눅스 배포판들

한글 배포판의 종류 K 리눅스

리눅스 인터내셔널에서 출시한 제품 레드햇 기반 한글 입력기 K-input, 인터넷을 통해 자동으로 소프트웨어를

업그레이드 해주는 K-linux 업데이트 인스톨러 제공 트루타입 글꼴을 제공

엑셀 리눅스 레드햇 기반 KDE 환경을 기본 데스크탑으로 채용 다양한 하드웨어 드라이버 지원과 한글화 작업

알짜 리눅스 기업을 위한 상용 버전으로 적합 레드햇 기반 , 아나콘다를 도입하여 한글화

Page 15: 임베디드 리눅스 소개

리눅스 업체의 현황

서버시장 중심에서 데스크탑 , 노트북 , PDA 시장으로 빠르게 확산

소규모 리눅스 업체들이 적극적인 사업 진출을 위해 전략적 제휴나 합병에 가담

벤처기업들이 인터넷 서버 시장에 진출유닉스나 NT 서버에 주력했던 중대형 컴퓨터 업체의 리눅스 대중화를 위한 지원이 증가

Page 16: 임베디드 리눅스 소개

리눅스 구하기

인터넷의 FTP 와 BBS 에서 메일을 통해 디스켓이나 CD-ROM 형태고 구할 수 있다 .

밀러링 사이트인 http://www.redhat.com/mirrors.html 에서 자세한 정보를 얻을 수 있다 .

Page 17: 임베디드 리눅스 소개

리눅스 현재 (2002 년 11월 ) 버전 상태

안정 커널 : 2.4.19 prepatch: 2.4.20-pre10 ac path: 2.4.20-pre10-ac2 2.5 개발 트리

안정화 버전 : 둘째자리가 짝수 (예 : 2.0.x, 2.2.x, 2.4.x)

개발 버전 : 둘째자리가 홀수 (예 : 2.3.x, 2.5.x)

Page 18: 임베디드 리눅스 소개

임베디드 리눅스

임베디드 리눅스란 ?국내에서 개발 개발된 임베디드 리눅스국외 임베디드 리눅스 개발 현황임베디드 리눅스 개발의 한계와 해결책

Page 19: 임베디드 리눅스 소개

임베디드 리눅스란 ?

일반적인 상용 리눅스의 정의 고성능 프로세서와 대용량 메모리를 장착하고 있는 범용 컴퓨터 시스템 용으로 개발된 리눅스

임베디드 리눅스의 정의 저성능 프로세서와 소용량의 메모리를 가진 임베디드

시스템 용으로 개발된 리눅스

Page 20: 임베디드 리눅스 소개

임베디드 리눅스 소개

HPC, PDA, 핸드폰 등과 같은 모빌컴퓨팅 기기나 마이크로프로세서를 보유한 가전제품 ,

공장자동화기기와 같은 임베디드 시스템을 위한 운영시스템으로 쓰이는 리눅스

적은 메모리와 느린 CPU 에서 동작해야 하며 , 실시간 요구를 어느 정도 충족시켜야 한다 .

필요에 따라 그림 사용자 인터페이스를 탑재하기도 한다 .

Page 21: 임베디드 리눅스 소개

Why Embedded Linux ?

Big needs for a New O/S New Applications (Internet, Multimedia,

Wireless…) New Hardware (fast & cool CPUs, Devices, …) Just-in-Time Technical Support Lowering Total costs: NRE, Unit-base, Support

Page 22: 임베디드 리눅스 소개

임베디드 리눅스

임베디드 시스템용으로 리눅스를 선택한 이유안정된 운영체제의 제공 ( 멀티태스킹의 제공 )강력하고 다양한 네트워크 환경의 제공확장성의 다양함과 용이함의 제공다양한 형태의 파일시스템과 실행파일 포맷 지원Free Software

임베디드 리눅스의 한계성윈도우 기반의 데스크탑 환경의 극복연구 개발인력의 부족 ( 커널 , 디바이스 드라이버

등의 개발인력 )

Page 23: 임베디드 리눅스 소개

Embedded Linux: Market

Real-time Data

Acquisition

InternetShopping

H.32x (VoIP)MP3Phone, Small

GUI, WAPApplications

PCI, DOC, … MPEG2, …Camera,

ISDN, ADSL, ..USB, MMC

Dual CPU(Phone + PDA)

SpecialDevices

High Availability

Real-timeRequireme

nt

MultimediaCommunication

General Platform

Small MemoryLow Power

SpecialFeatures

2 – 64MB16 – 32MB16 – 32MB8 – 32MB4 – 32MBFlash(Mask ROM)

2 – 64MB8 – 32MB8 – 32MB4 – 32MB2 – 32MBDRAM

IndustryApplication

InternetDigital

Set-top Box

WebScreen/Video

Phone

PDA/Web Pad

SmartMobile Phone

Page 24: 임베디드 리눅스 소개

Requirements forEmbedded Linux: Kernel

File Systems Flash File System ROM/RAM File System

Power Management Minimize Power

Consumption Monitor/Signal Power State

Memory Management Protect Applications each

other Free memory Management XIP (Execute In Place)

Soft Real-Time Scheduler for Periodic Multimedia

Application

Various Device Support Display : LCD, TV-Monitor

Multimedia DevicesCodecs: Camera, Voice, MP3

Network/Connectivity DevicesHomeRF, HomePNA, Bluetooth,

IrDAIEEE-1394, Ethernet, ASDL

Optional Device SupportPCMCIA, Compact Flash slot

Page 25: 임베디드 리눅스 소개

Requirements forEmbedded Linux: Application

Content Viewer / Editor Microsoft Compatibility

(Word, Excel, PowerPoint) Internet Browser / E-Mail Multimedia Players

(MPEG4 Streaming, MP3, …)

Conventional PIMS Address Book, Todo list,

Memo, Calendar, Scheduler Synchronization thru

Desktop PC or Internet Server

Two-way Communication Voice Communication Video Conferencing Server Based Instant

Messaging Network Games

B2B, B2C Solutions Middleware for Remote DB

access Security Solutions

VPN over wireless link Encryption Mechanism

Distributed Object Support …

Page 26: 임베디드 리눅스 소개

Requirements forEmbedded Linux: Solution

• One-Stop Solution– Embedded Linux Kernel

• 100% Linux Compatibility• Embedded Features Ready

– Application Software and Platform• All the Basic / Internet Applications• GUI/Library for New Applications

– Tools for 3rd Party S/W vendors• Cross Compiler / Debugger• Software Development Kit

– Technical Support at all level• H/W - Kernel - GUI - Application

H/W Vendor

IndependentSoftwareVendor

End User

ISP/ServiceOperator

Page 27: 임베디드 리눅스 소개

임베디드 리눅스

임베디드 리눅스가 가져야 하는 필수 조건 리눅스 자체 크기와 기능의 최소화 , 경량화 목표로 하는 시스템에 맞게 쉽게 재구성이 가능 저성능 프로세서를 위한 성능의 최적화

임베디드 리눅스의 개발 붐 “정보가전”이라 통칭되는 새로운 임베디드 시스템의

등장과 이 시스템들을 위한 운영체제의 필요 새롭게 생겨나는 기능적 요구와 고품질의 창조형

서비스의 적시 공급을 위해

Page 28: 임베디드 리눅스 소개

임베디드 운영체제

윈도우 CE 윈도우 및 윈도우 응용프로그램의 사용 친숙도가 높음 데스크탑 윈도우와 응용프로그램 및 데이터의

호환성이 우수 프로그램 개발 환경이 잘 갖추어져 있음 하지만 가격이 비쌈 사용시 많은 양의 메모리를 요구 속도가 느림 자유로운 재구성화가 불가능

Page 29: 임베디드 리눅스 소개

임베디드 운영체제

자바스크린폰 , 셋톱박스 등을 중심으로 사용이 확산되고

있음 : 주로 퍼서널자바를 이용휴대폰 등 이동 서비스 : K 자바 기반의

KVM(Kilobyte Virtual Machine) 기술을 적용 임베디드 리눅스

정보가전에 최적크기가 작음쉽게 재구성화가 가능인터넷과 최상으로 호환공개 소프트웨어이므로 무료

Page 30: 임베디드 리눅스 소개

국내에서 개발된 임베디드 리눅스

타이눅스 (Tynux)임베닉스 (Embenix)리누엣 (Linuette)

Page 31: 임베디드 리눅스 소개

타이눅스 (Tynux)

팜팜테크사에서 개발PDA, 무선 단말기용 임베디드 리눅스미국 링크업시스템사에 공급스마트폰 , 전자도서 , PDA 등에 적용하기 위해

연구되고 있음SK 텔레콤과 제휴하여 타이눅스를 내장한

CDMA 방식의 스마트폰을 개발 중 “타이눅스 박스”라는 타이눅스가 내장된 레퍼런스

보드와 개발 환경을 개발하여 판매 중

Page 32: 임베디드 리눅스 소개

임베닉스 (Embenix)

다산인터넷사에서 개발 모토롤라의 MPC850/C860, MPC8240 및

MPC750, 인텔의 스트롱암 (StrongARM) 마이크로프로세서를 지원

리눅스의 임베디드화 기술 , 각종 디바이스 드라이버 구현 , 커널의 최적화 기술 , 디버깅툴 기술 , 로드 분산 처리 기술 , 분산 데이터베이스 기술 포함

기산텔 레콤에 공급 , 미국 MMC 사에 납품 예정 통신 및 네트워크 장비 분야에 응용이 가능 상용 RTOS 를 대체할 수 있는 솔루션으로 등장

Page 33: 임베디드 리눅스 소개

리누엣 (Linuette)

미지리서치사에서 개발 이동전화기 , 스마트폰 , 셋톱박스 , PDA 등을 위해서 개발 리누엣을 위한 개이정보관리시스템 (PIMS), 한글 펜인식

프로그램 , 사인 인증 프로그램도 개발 Qt 임베디드를 최적화시킨 GUI 를 사용 효과적인 전원관리 정책을 적용 : 사용 시간의 연장 데스크탑 컴퓨터와의 동기화 : 운영체제에 영향을 받지

않는 SyncML 방식을 도입 QVFB(Qt Virtual Frame Buffer) 같은 개발 환경을

제공

Page 34: 임베디드 리눅스 소개

그 밖의 업체 동향 삼성전기는 리니오사와 전략적 제휴 : 임베디드 리눅스를 탑제할 수

있는 상용 제품 개발을 준비 중 대신정보통신 : 리니오사의 임베딕스 (Embedix) 도입 결정 시네티아정보통신 : 스트롱암 기반의 임베디드 시스템 개발 완료 가산전자 : OSK 에 대한 지분 투자를 통하여 3COM 사의 팜OS 와

호환되는 리눅스 기반 임베디드 운영체제 개발 효과를 거둠 리눅스원 : 대만의 X 리눅스사와 제휴 웹데이터뱅크와 리눅스코리아도 임베디드 리눅스 시장에 진출 예정 바이탈시스템즈의 vLinux, 이노피아테크의 IALinux, 두울정보통신의 VeLix 등

Page 35: 임베디드 리눅스 소개

국외 임베디드 리눅스 개발 현황

개발자들과 사용자들을 위한 컨소시움 구성 (http://www.embedded-linux.org)

Page 36: 임베디드 리눅스 소개

외국의 임베디드 리눅스

miniRTL 1.4 MB 디스켓 한장에 들어가는 리눅스 미국의 FSMLab 이 개발 RTLinux 를 기반 : 실시간 처리 기능 포함 HDD 가 필요없고 FDD 나 플래쉬 메모리에서 부팅 가능 CGI 지원 : 작은 크기의 웹서버를 탑제하면 웹을 경유하여

시스템 모니터링이 가능 리니오 : 임베디드 니룩스 개발의 선두 주자

임베딕스 (Embedix) 를 개발 OEM 소프트웨어 개발 키트인 SDK, GUI 기반의 마이크로 웹 브라우저 , 윈도우 CE 호환 API 등으로 구성

Page 37: 임베디드 리눅스 소개

외국의 임베디드 리눅스

레드햇 임베디드 시스템용의 다양한 응용프로그램 개발을

위한 오픈 소스 툴과 서비스를 제공몬타 비스타

하드햇 (Hard Hat) 리눅스 개발 모토롤라의 MPC7XX/8XX/82XX, IBM 의 PPC

405GP, 인텔의 IA32, 스트롱암 , NEC 의 MIPS VR41XX/43XX/54XX 등에 포팅됨

20 여종의 레퍼런스 보드를 지원 국내의 아델리눅스가 공급

Page 38: 임베디드 리눅스 소개

외국의 임베디드 리눅스

터보리눅스 중국어판 임베디드 리눅스를 세계 최초로 개발

리눅스웍스 블루캣 (BlueCat) 리눅스 개발 임베디드 툴과 소프트웨어에서 가장 뛰어난 개발이라는 평가를

받음 Emeralds

미국 미시건 대학의 신강근 교수가 주도 아주 적은 메모리의 실시간 마이크로 커널 코드 크기 : 10 KB 정도

Page 39: 임베디드 리눅스 소개

임베디드 리눅스의 전략적 가치

공개 소스 소프트웨어 : 로열티 문제 해결 두터운 개발자 층 : 수 많은 리눅스 프로그래머 검증된 운영 시스템 : 10 년에 걸쳐 사용 다양한 환경 지원 : x86, alpha, ppc, SA,

sparc, 메인 프레임에 이르기까지 각종 CPU 지원

모듈화 , 이식성 : 쉽고 빠르게 불필요한 부분을 빼고 필요한 부분을 추가

개발 과정 단순화 : PC 에서 개발 대상 플랫폼으로 이식

Page 40: 임베디드 리눅스 소개

임베디드 리눅스의 한계 실시간성 : 임베디드 시스템을 위한 전용 OS 에

비해 취약하다 . 최근에는 다음과 같은 방식으로 리눅스에 실시간성을 보강하는 추세이다 . 최근 몬타비스타에서 선점형 (preemptible) 커널 발표 실시간을 지원하도록 스케쥴러를 개선하려는 움직임 부 커널 방식 (RTLinux 와 RTAI) 커널 모듈 개발

메모리와 전력 : 여전히 전용 OS 와 비교하여 부족한 점이 많다 .

윈도우 시스템 : 덩치가 크거나 안정화 작업이 필요하다 .

Page 41: 임베디드 리눅스 소개

임베디드 리눅스 개발자 주의 사항 리눅스 자체에 대한 지식

커널 , 디바이스 드라이버 , 메모리 구조 , 프로세스 구조 , 파일 시스템 , 시스템 호출 , I/O, 인터럽트 , etc.

하드웨어에 대한 지식 CPU, 주변 장치 , 직 /병렬 /네트워크 통신

소프트웨어에 대한 지식 윈도 시스템 , C 프로그래밍 언어 , 시스템 프로그래밍

방법 업무에 대한 지식

하드웨어와 사용자 요구 사항을 연관시켜 분석할 수 있어야 한다 .