IT 기획시리즈 임베디드소프트웨어 3 IT 기획시리즈 임베디드소프트웨어 3 Mobile 用범용 OS 기술개요 김종득 엘지텔레콤단말플랫폼팀차장 jdkim@lgtel.co.kr 1. 서론 2. 플랫폼의구분 3. 범용 OS 현황 4. 결론 1. 서론 최근에단말에사용되는 chip 의고도화에따라 H/W 의성능이범용 OS 를수용할만큼의수준이되었으며, 또한안드로이드라는 OHA 단체의리눅스플랫폼을통한서비스패키지가이슈화되면서모바일환경에서도범용 OS 를고려할필요가대두되었다. 여기서플랫폼이란응용프로그램이수행되는소프트웨어적인기반환경을말하며특히, 모바일플랫폼이라함은애플리케이션을위한소프트웨어적인기반환경이면서이동통신단말에서구동되는환경으로정의한다. 플랫폼의종류에는무선인터넷플랫폼, 애플리케이션실행환경, 애플리케이션플랫폼, 서비스및콘텐츠실행환경, 단말소프트웨어플랫폼, 칩셋소프트웨어플랫폼등이있다. 단말기의특성에따라단말기를구성하는플랫폼이다르고플랫폼의계층과구성요소가다르다. 이고는어떤종류의모바일플랫폼이현존하고있는지를살펴보고, 그각각의특성을비교하여이에따리단말기의특성에맞는범용 OS 를선택하는데참고할수있도록하는데그목적이있다. 2. 플랫폼의구분 ( 그림 1) 은모바일분야의 2006 년 Hype Cycle 을보여주고있다. Global market 을대상으로한것이므로국내사정과는다소다를수있으나, Windows Mobile, Symbian 같은범용 OS 와이를기반으로한스마트폰이시장에서자리를잡아가고있으며몇년내급속히성장해모바일시장을주도할것으로예상된다. Java 는일부서비스에한정되어사용되어왔으나지금은 * 본컬럼은엘지텔레콤단말플랫폼팀에서작성한내용입니다. 본내용과관련된사항은엘지텔레콤단말플랫폼팀김종득차장 ( 02-2005-7436) 에게문의하시기바랍니다. ** 본내용은필자의주관적인의견이며 IITA 의공식적인입장이아님을밝힙니다. 27
주간기술동향 통권 1346 호 2008. 5. 14. (그림 1) Hype Cycle for Wireless Hardware, Software and Services 단말 서비스 전체를 대상으로 하는 플랫폼으로 확장되고 있다. 화상통화, SIP 기반 Push-toTalk 등은 아직 서비스 초기지만 향후 모바일 환경의 보편적인 서비스로 자리를 잡을 것으로 예 상하고 있다. (그림2)는 feature 에 따라 handset 을 분류하고 이를 다시 layered architecture 에 (그림 2) 플랫폼의 계층적 구분 28
IT 기획시리즈 임베디드 소프트웨어 ③ (그림 3) 플랫폼별 개방성 수준 따라 플랫폼의 영역을 계층적으로 분류한 후 다양한 플랫폼 소프트웨어들이 어느 영역을 target 으로 삼고 있는지를 보여주고 있다. 각 플랫폼은 상하좌우 영역을 확대해 나가고 있다. 플랫폼을 개방성 기준으로 Handset segmentation 별로 분류하면 (그림 3)과 같다. Smart phone 은 Advanced OS 를 요구하므로 Linux, Windows Mobile, Symbian 등 Open OS 계열의 플랫폼이 대부분이다. Proprietary OS 로는 RIM 사의 Blackberry OS 가 있는데, Blackberry 의 모바일 비즈니스 애플리케이션이 북미 시장을 선점한 반면에 OS 자체의 기능은 다른 제품에 비 해 다소 떨어진다고 볼 수 있다. 3. 범용 OS 현황 가. 리눅스 대표적인 Open Source Operating System 으로, 차세대 단말 OS 로 주목 받고 있다. 여기서 언급하는 Linux 는 일반적으로 Kernel(Process Scheduler, Controller)를 의미하며, 실제 서비스 가 구동되는 Application Platform 은 다양하게 존재 한다. 기존범용 Linux OS 를 Embedding System 에 올릴 수 있도록 모듈화한 Embedded OS 로 3rd Party HW 의 Linux Device Driver 를 조합한 것이다. Linux 는 Source 코드가 공개되어 있어 누구나 쉽게 접근할 수 있다. Linux 가 Open Source 29
주간기술동향통권 1346 호 2008. 5. 14. App App Lib Linux Kernel Process Manager Memory Manager Device Driver INET & Network P/L Network I/F Drivers Hardware Main CPU, Launcher Memory, (Main Display, UI Platform) Console,.. ( 그림 4) 리눅스플랫폼구조 를표방하고는있지만, 공개된 Embedded Linux 커널은휴대폰을만드는데필요한모바일플랫폼의일부에불과하다. 완전한모바일플랫폼을만들기위해서는수많은소프트웨어구성요소가추가되어야하고이들은대부분공개되어있지않다. 이때문에수많은모바일리눅스개발자커뮤니티가난립하게되었고이를표준화하기위한여러개의표준화단체가활동하고있다. 나. 안드로이드 Google 에서개발중인 Linux OS 기반의개방형휴대폰용플랫폼으로 OHA(Open Handset < 자료 >: http://www.openhandsetalliance.com/index.html ( 그림 5) 안드로이드플랫폼구조 30
IT 기획시리즈 임베디드소프트웨어 3 < 표 1> 안드로이드요소별기능 구성요소상세구성요소기능설명 Application Application Framework Middleware Kernel Email SMS Program Calendar Map Browser Contacts Others Activity Manager Window Manager Content Providers View System Notification Manager Package Manager Telephony Manager Resource Manager Location Manager XMPP Service Surface Manager Media Framework SQLite OpenGL ES Free Type Webkit SGL SSL Libc Core Libraries Dalvik Virtual Machine Display Drier Camera Driver Bluetooth Driver Flash Memory Driver Binder(IPC) Driver USB Driver Keypad Driver Wi-Fi Driver Audio Drivers Power management 이메일애플리케이션 SMS 를통한메시지송수신을지원하는애플리케이션 일정디스플레이및관리애플리케이션 위치정보를맵상에디스플레이, 검색등을지원하는애플리케이션 HTTP 기반의인터넷서비스중인터넷검색을지원하는애플리케이션 주소록을저장관리하는애플리케이션 기타애플리케이션 애플리케이션의생명주기를관리하며네비게이션스팩을관장함 윈도의모양이나크기등을관리하는윈도클라이언트프로그램 다른애플리케이션의데이터에저속하게허용하거나자신의데이터를공유하게함 리스트, 텍스박스, 버튼등애플리케이션제작을용이하게하는 UI 세트 콜수신, 메시지수신, 시스템상태변화네트워크시그널등이벤트방생을애플리케이션에알리거나상태바에디스플레이하는관리자패키지의설치, 제거등을지원하는관리자음성및영상통화제어, 통화요구정보관리, SIM/USIM 관리애플리케이션의동작을위한자원할당및해제관리자단말기에대한위치확인을지원하는관리자 XMPP 기반의표준인스턴트메신저서비스및 Presence 를지원하는서비스 다수애플리케이션의 2D, 3D 그래픽을합성하고, 다른서브시스템에접근하는것을관장여러음성, 영상포맷의재생과기록을지원하는라이브러리경량관계형데이터베이스엔진 OpenGL ES 1.0 스팩기반의 2D, 3D 그래픽라이브러리제공비트맵및벡터방식의폰트렌더링제공오픈소스웹브라우저엔진 2D 그래픽엔진 브라우저와서버간의통신에서정보를암호화함으로써정보의내용을보호하는보안솔루션임베디드리눅스기반의장비에최적화한표준 C 시스템라이브러리주요기능을제공하는자바언어기반의핵심라이브러리 장비가다수의 VM 을효과적으로동작시킬수있도록만들어진 VM, 쓰레딩및저수준메모리관리는리눅스커널에의존함디스플레이드라이버카메라장비를지원하는드라이버블루투스를지원하며파일교환, 네트워크장치, 리모콘등의입출력을지원플래시메모리를관리하고, 일반 FS 처럼사용하기위한 MTD 기능지원 프로그램과타프로그램과의인터페이스제공을통해 Interprocess communication 을지원 USB 에기반한대용량스토리지, 호스트네트워크등을지원하는드라이버표준입력기의일종인키패드의입력처리를지원하기위한드라이버 Wi-Fi 드라이버오디오코덱제공을통해음성재생, 음악재생등을지원하는드라이버 단말기및내부컴포넌트등의전력을통제하는관리자 31
주간기술동향통권 1346 호 2008. 5. 14. Alliance) 를구성하여구글서비스에최적화된폰출시를목표로한다. UI, Application Layer 개발은 Google 이주도, 그밖의 Kernel 개발은 GPL 진영의소스를이용하여개발한다. Android 플랫폼은단말기를위한소프트웨어스택으로 OS, 미들웨어, 주요애플리케이션으로구성된다. 애플리케이션은자바언어를사용하는데버츄얼머신은 Linux 커널위에서돌아가는 Dalvik 이다. 컴포넌트의재사용과교체가가능한 Application framework 으로모바일디바이스에최적화된 Dalvik virtual machine 이다. ( 그림 5) 의구조를보면오픈소스의 Webkit 엔진기반의통합된브라우저이며, 2D 그래픽및 OpenGL ES1.0 스팩기반의 3D 를지원하는최적화된그래픽 ( 옵션으로하드웨어가속지원 ) 이지원되며아래의기능을제공한다. 구조화된데이터를지원하는 SQLite, 오디오, 비디오지원 (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF),GSM, Bluetooth, EDGE, 3G, WiFi,Camera, GPS, compass, accelerometer 에뮬레이터, 디버거, 메모리및성능파일포함된통합개발환경이제공된다. < 표 1> 은안드로이드의구성요소별상세기능설명을나타내고있다. 다. LiMo LiMo(Linux Mobile) 는 2007 년 Motorola, NEC, NTT DoCoMo, Panasonic Mobile Communications, Samsung, Vodafone 등모바일기술리더들이설립한 Open Linux-based software Platform 개발협회이다. OEM, 오픈소스공동체가공헌하는애플리케이션코드를통합하고관리할추가툴을공급한다. < 표 2> 는 LiMo 의특징을간략히보여주고있으며, ( 그림 6) 은그구조를보여주고있다. < 표 3> 은 LiMo 의구성요소별상세기능설명을나타내고있다. < 표 2> LiMo 특징분류활동목적 표준화활동상황 표준활동개방여부 표준단말요구사항문서 LiMo 특징 Linux 기반의모바일 ( 핸드폰 ) 개발환경표준화 NTT Docomo 의 Linux 단말개발을위한표준요구사항을기반으로하여단말제조사와다른이통사의요구사항을반영하는방식으로진행함. NTT Docomo 의요구사항중심 08. 3 월배포예정 (SDK) 상용화적용단말여부 NTT Docomo (MWC 2008 출시모델데모 ) 개발용 SDK 제공여부 제공예정 32
IT 기획시리즈 임베디드소프트웨어 3 < 자료 >: Supplementary Technical Document ( 그림 6) LiMo 플랫폼구조 < 표 3> LiMo 구성요소별기능 구성요소상세구성요소기능설명 Application Application Manager Framework Application UI Framework Middleware N/A N/A N/A Registry Conflict Management Event Dellvery/IPC Security Framework Telephony Framework - 사용자입력및디스플레이관련상태로직을유지함 - 미들웨어내의데온및객체를참조할수있음 - 애플리케이션구동 - 사용자입력값수신 - 안전한패키지설치 - 사용자인터페이스의정의 - GTK+ 등을통한디스플레이 - 키나특정값등을저장하기위한공산 - 트리형태로구현되어여러데이터형을지원 - 데이터접근관리지원 - 공유자원에대한동시접근문체해결 - 애플리케이션영역과시스템영역에서의동시접근문제해결 - 임의의다수의등록자에게상태정보를전달할수있도록메시징기능수행 - 서비스구동및종료, 배포및설정, 클라이언트와서버간통신기능 (IPC) 을제공 - 콘텐츠및애플리케이션접속에대한스캔기능제공 - 네트워크등록, 음성및영상통화제어, 통화요구정보관리, SIM/USIM 관리 33
주간기술동향통권 1346 호 2008. 5. 14. 구성요소상세구성요소기능설명 Kernel Networking Framework Messaging Framework Multimedia Framework DRM Framework Database Other Framework Linux Kernel Device Drivers Modem Interface - 연결을위한송수신 IP 획득 - 데이터통신관리 - 계정및프로파일관리 - SMS, MMS 등을통해메시지송수신 - 음성, 영상, 비디오등의재생및캡처지원 - 여러포맷지원 - 디지털콘텐츠에대한사용및접근제한기능제공 - 데이터레코드의생성, 질의, 갱신, 삭제등 ACID(Atomic Consistent Isolation Durabel) 기반데이터관리제공 - 향후추가될기타서비스 - 메모리및 CPU 관리, 클럭관리, 프로세서관리, 파일시스템, 콘솔핸들링, IPC, 네트워크통신지원 - 장비의고유기능을지원하기위한드라이버지원 - 모뎀장비의메시지및데이터통신을위한인터페이스 Modem N/A - 공중파를통한네트워크접속기능제공 라. 심비안 1998 년 6 월설립된영국의 Symbian 사가그소유권을가지고있는 Date-Enabled 2G, 3G 용스마트폰을위한단말운영체제이다. 다양한 Application Engine 을가지고있으며아래의기능들이지원된다. ( 그림 7) 는심비안의구조를보여주고있다. WAP 1.2.1 을지원하는 WAP Stack, POP3, IMAP4, SMTP, MHTML, Attachment, Fax 등 ( 그림 7) 심비안플랫폼구조 34
IT 기획시리즈 임베디드 소프트웨어 ③ 을 이용한 MMS, EMS, SMS, Image Conversion, Playback, Streaming, Recording 이 가능한 Video, Audio, GPRS, UMTS Network 을 위한 TCP/IP(Dual mode IPv4/v6), WAP, Bluetooth, USB 등의 Communication Protocol, C++, Java(J2ME) MIDP 2.0, Personal-Java 1.1.1a, WAP, Web 을 이용한 프로그래밍 및 Contents 개발, Full Keyboard, Keypad, Voice, Handwriting Recognition, Predictive Text Input 기능이 있다. 마. S60 Symbian OS 를 포함한 Nokia 단말 개발 환경으로 C++, Java 애플리케이션 개발 플랫폼이 다. S60 은 UI Framework 일 뿐만 아니라 단말 구성에 필요한 주요 App 를 모두 제공하는 미 들웨어 엔진이다. 단말 제조사들에게 S60 모바일 애플리케이션 플랫폼을 패키징해 공급한다. (그림 8)은 S60 의 구조를 보여주고 있다. 대부분의 주요 폰 Apps 을 제공(idle-screen, dialler, application launcher or menu screen, contacts, calendar, inbox, browser shell and settings screens)하며, 다양한 그래픽 Components, Apps Manager 및 Apis 제공되고, Massaging Engine, WAP/WEB renderers, Codec, security Library 제공과 Device Controling 및 Process Scheduling 이 가능하다 (그림 8) S60 플랫폼 구조 바. Windows Mobile Windows Mobile 은 MicroSoft 사에서 제작한 모바일 디바이스용 플랫폼으로 Windows CE OS 위에.NET Compact Version 을 올린 것이다. Windows Embedded CE, Windows Embedded 35
주간기술동향통권 1346 호 2008. 5. 14. XP, Windows Embedded for pointing of service 가있다. Visual Studio 통합개발환경과연동하여개발이용이하고, Native 헤더파일및다양한라이브러리파일들을제공하며커널, 미들웨어와 AEE, Application Suite 사이에완벽한소프트웨어스택을지원한다. < 표 4> 는상용화된폰을보여주고있다. ( 그림 9) 는 Windows Mobile 의구조를보여주고있다 < 표 4> W.M 상용화현황 Platform OEM/Model SKT KTF(KT) LGT Ver. Samsung M-450/4500 5 Samsung M-8100/8200 5 Samsung M-4650 6 Professional BlueBird BM-500 6 Samsung M-470/4700 6 HP 2 Model 6? 검토중 6? 검토중 6 Standard Samsung M-620/6200 5 Classic LGE KC1 5 ( 그림 9) W.M 플랫폼구조 사. iphone MAC OS X 를포함한애플의단말플랫폼으로터치스크린과같은혁신적인 UI 제공으로 36
IT 기획시리즈 임베디드소프트웨어 3 2007 년출시후폭발적인반응을보임. Apple 의폐쇄적인개발구조로네트워크, 컴퓨터, IPOD 와의쉬운데이터연동이가능하다. < 표 5> iphone 특징 Developer/Manufacturer 애플社 License/Biz Model Proprietary/H/W( 휴대폰 ) 공개정책 / 개발 Tool 일부공개 /Xcode( 유료 ) 기술 ( 언어 ) AJAX, Cocoa/OpenGL ( 그림 10) iphone 플랫폼구조 아. JAVA 프로그래밍언어이면서 Java 애플리케이션실행환경이고동시에 Java 기반의다양한솔루션을포함하는플랫폼이다. Java 프로세서 +Java OS+Java 솔루션 ( 미들웨어 )+Java 애플리케이션으로구성이가능하지만사업자나단말제조사가이렇게구성한단말의시장성을높게보지않으므로 Java VM 을 OS 나자체플랫폼위에올려서사용하며, Java 의확장규격에 API 호환성이없다. Write Once, Run Anywhere 라는개념을갖고있으나단말대당 royalty+ 연간 MSA BPK licensee fee 를지급해야한다. 37
주간기술동향통권 1346 호 2008. 5. 14. ( 그림 11) JAVA 자. JAVA FX Mobile 기존자바플랫폼 (J2SE, J2ME CLDC/MIDP) 에 Telephony Framework, Phone Application 포함하여패키징된자바모바일플랫폼 Savaje Technologies 에서개발된자바기술로 SUN 에서인수하여 Script Language, Phone Applications, Framework 을구성하여 Mobile Platform 을구성이동통신사업자나제조사에직접제공하는 Business Model 을검토중이다. Linux- Based Platform 으로 HW 는 ARM core 에 Java Swing UI Platform 을사용하고 Rich Application Supported Script Language 를사용하는 Phone Application, Telephony Framework 이다. ( 그림 12) JAVA FX Mobile 38
IT 기획시리즈 임베디드소프트웨어 3 4. 결론 Proprietary OS( 또는 Platform) 는단말벤더들의독자적인플랫폼이므로플랫폼의목표에따라기능의차이가크다. Proprietary OS 는작은 Size 와저사양의 handset 에서동작할수있도록만들어졌고다양한 HW 칩셋에효과적으로대응하기위해발전해왔다. 최근에는멀티미디어기능과비즈니스애플리케이션지원을강화하기위해많은미들웨어기능을추가하고있고, Feature 에의해정의된 User segment 에대해최적화된플랫폼을구성할수있게한다. Windows Mobile, Symbian, Linux, SaveJe 는 Smart phone 영역에위치하며 Windows 를제외하고는계층구조의 SW 에서전체계층을포함하지못한다. Smartphone 용과 Pocket PC 용두종류가있다. 이두버전의소스와기능은 80~90% 가동일하며, Application Suite 와 UI 프레임워크의일부분이상이하다. Windows Embedded 제품은 MS 의 OS 를임베디드장치용으로사용할수있도록제공한다. 현재표준 Linux 는실행환경조차도없으므로단말벤더들은제품을빠르게시장에내놓기위해서상용리눅스솔루션을구매하게된다. 이시장은빠르게성장하고있다. LiMo 는모든사업자 ( 통신사업자, 제조사 ) 들이각기다른제품, App, 서비스를균형과투명성이보장된무선기기를개발할수있도록 Open Platform 을구현하였다. 모바일소프트웨어공급업체들은자체적인부가가치기술개발에주력할수있으며, 개발자들은개방소스환경내에서프로그래밍모델들을시도하고작업할수있다. 심비안은높은사용로열티를내야하나하드리얼타임을지원하는멀티쓰레딩이가능하고, 최근 CPU 에대한지원과호환이된다. JAVA 는 J2ME CLDC/MIDP 는 OMA, 3GPP 등에서표준으로채택되었고, 전세계 30 여 carrier 에서채택하는등가장널리사용되고있는플랫폼이다. < 참고문헌 > [1] http://www.omg.org/gettingstarted/ [2] Gartner 보고서, 2006. 6. [3] Wireless Personal Area Network, Near Field Communication [4] www.nokia.com [5] ROA Group Korea. 최근부각되고있는스마트폰에대한재조명과전망, 2006. 11. [6] http://www.microsoft.com/korea/windows/embedded/ [7] QUALCOMM Roadmap 39
주간기술동향통권 1346 호 2008. 5. 14. [8] http://www.symbian.com/developer [9] www.informa.com [10] 임베디드월드 [11] www.wikipedia.org [12] www.opengroup.org 40