Journal of the Korea Institute of Information and Communication Engineering 김호성 1 서종균 2 박한수 2 정회경 1* Implementation of Device Driver for Virtual Machine Based-on Android Ho-Sung Kim 1 Jong-Kyoun Seo 2 Han-Su Park 2 Hoe-Kyung Jung 1* 1* Department of Computer Engineering, Paichai University, Daejeon 302-735, Korea 2 UbiTech Co.,Ltd, Daejeon 305-340, Korea 요약 스마트폰의보급량은기하급수적으로증가하고있지만, 주기적인고성능스마트폰및업그레이드된운영체제의출시로인하여 1 년 ~2 년사이에구형스마트폰이된다. 이러한스마트폰의환경적인제약부분을해결하기위하여 Thin-Client 단말을이용한가상화기술이개발되고있다. 하지만가상머신 (VM: Virtual Machine) 의경우센서및 GPS 장치가장착되지않아센서와 GPS 장치와관련된응용프로그램을구동할수없다. 본논문에서 x86 기반의시스템에서가상머신으로동작하는 Android 용가상머신의디바이스드라이버를구현하여가상머신환경에서최신스마트폰을사용하는것같은 Android 가상화기능을제공하고자한다. 가상디바이스드라이버는실제로동작하는구형 Android 스마트폰 (Thin-Client) 으로부터센서및 GPS 정보를수신하여가상장치에실제디바이스가있는것처럼동작하는방법을제안하고자한다. ABSTRACT The amount of smart phones has increased exponentially. Due to the periodic release of high-performance smart phones and upgraded operating system, new smart phones become out-dated over 1 or 2 years. In order to solve environmental constraints of these smart phones, virtualization technology using Thin-Client terminal has been developed. However, in the case of Virtual Machine(VM), the applications associated with sensors and a GPS device can not run because they are not included. In this paper, by implementing the device driver for Android running in a virtual machine in the x86-based systems, it is to provide Android virtualization capabilities such as using the latest smart phones in the virtual machine environment. It would like to propose a method that the virtual device driver receives sensors and GPS information from the old Android smart phones(thin-client) that actually work and run as if the real device exists. 키워드 : 가상디바이스드라이버, 가상머신, 센서, 안드로이드, GPS Key word : Virtual Device Driver, Virtual Machine, Sensor, Android, GPS Received 02 January 2015, Revised 29 January 2015, Accepted 16 February 2015 * Corresponding Author Hoe-Kyung Jung(E-mail:hkjung@pcu.ac.kr, Tel:+82-42-520-5640) Department of Computer Engineering, Paichai University, Daejeon 302-735, Korea Open Access http://dx.doi.org/10.6109/jkiice.2015.19.4.1017 print ISSN: 2234-4772 online ISSN: 2288-4165 This is an Open Access article distributed under the terms of the Creative Commons Attribution Non-Commercial License(http://creativecommons.org/li-censes/ by-nc/3.0/) which permits unrestricted non-commercial use, distribution, and reproduction in any medium, provided the original work is properly cited. Copyright C The Korea Institute of Information and Communication Engineering.
Ⅰ. 서론전세계스마트폰의판매량은꾸준히증가하고있다. Gartner 자료에의하면, 2013년도까지스마트폰판매량은 968만대로전년도대비 42.3% 판매량이증가되었고, 올해안에스마트폰판매량이 10억대에도달할것으로예상하고있다 [1]. 판매되는스마트폰의 OS별점유율은 Android가약 85% 정도를차지하고있으며, 국내의경우거의 90% 를차지하고있다 [2,3]. Android OS는주기적인업데이트가이루어지고있지만, 기존사용자들이직접 Android OS를업데이트하기에는상당한어려움이발생한다. 또한제조사의새로운단말출시는고사양의 H/W를적용하고고성능 3D 게임등을지원함으로써기존에사용하던스마트폰은점차구형스마트폰이되어고사양을지원하는어플리케이션을사용하지못하게되는문제점이발생하게된다. 그리고, IDC 모바일연구팀의보고서에따르면신흥시장에서저가형스마트폰이성과를내고있으며, 저가형스마트폰시장이앞으로도계속성장할것이라고예상하였다. 하지만저가형스마트폰의경우제한된 H/W 성능으로고성능어플리케이션구동에제약사항이발생한다 [4-7]. 본논문에서는위에서언급한 H/W 및 S/W 환경에제약없이 Thin-Client( 저가형스마트폰또는 Low Android OS 버전 ) 에서도사용자에게최신 OS 버전에서제공되는고성능어플리케이션구동이가능하도록모바일클라우드기반가상화서비스를제공하기위한방법과, 단순한 Android OS 환경뿐만아니라센서및 GPS등의가상디바이스드라이버구현방법을제안한다. Ⅱ. 관련연구모바일클라우드기반가상화서비스기술은스마트단말에가상화기술을적용하는방법과클라우드상에서가상단말또는에뮬레이터를제공하는경우로나누어진다. 단말에적용하는가상화기술은스마트단말에다수의 OS를동작시키는기술로 Red Bend, VMware Mobile Virtual Platform(MVP), Motorola Atrix 4G 등이이에속한다. 단말에가상화기술을사용하는 VMware Mobile Virtual Platform의경우스마트단말에서두개의 OS를구동할수있도록하는기술이다. 각각의 OS는개인용도 (Normal Domain) 와업무및사생활보호용 (Secure Domain) 으로나뉘어별도로동작함으로써개인정보및회사업무와관련된데이터를 Secure Domain에저장하여보안기능을강화한다. 이기술은TYPE1 가상화와 TYPE2 가상화로분류되며, TYPE1 가상화는프로세서모듈에서제공하는가상화기능을이용하여구현된것으로각각의 OS가완전히독립적으로동작한다. TYPE2 가상화는기존의 OS위에가상화기능을구현하는것이다. 그림1은 VMware Mobile Virtual Platform 의구성도를나타낸다. 그림 1. VMware MVP Fig. 1 VMware MVP 클라우드상에서가상단말또는에뮬레이터를제공하는기술은카네기멜론대학에서연구된 Cloudlet상의서버를통하여가상머신을실행시키고실제단말과연동한다. Cloudlet은스마트단말 H/W의자원제약, 네트워크환경의높은지연율, 낮은대역폭문제를해결하기위하여구현된기술이다. 스마트단말에서직접적으로클라우드환경과연결되지않고 Cloudlet과연결된다. 이때네트워크환경은무선환경으로구성되며, Cloudlet 은낮은지연율, 높은대역폭을보장하고풍부한 H/W 리소스자원을제공한다. Cloudlet은기본VM과오버레이VM으로구성되며, 기본 VM은 Cloudlet에동작하고오버레이 VM은스마트단말에서동작한다. Cloudlet의개요는아래그림 2 와같다. 1018
물리장치가없기때문에장치들이있는것처럼인식하도록해야하기때문이다. x86 기반의 Android의전체 S/W 구조와가상드라이버가추가된구조는그림 4 와같다. 그림 2. Cloudlet 개요 Fig. 2 Overview of the Cloudlet Ⅲ. 시스템설계 본논문에서는클라우드상에서가상단말을구현하고, 실제스마트폰에클라이언트를구현한다. 클라이언트는센서및 GPS 값을가상단말의서버프로그램으로주기적 (100ms) 으로전달하게되며, 가상단말에는센서및 GPS 값을처리하는서버프로그램, 가상디바이스드라이버및가상 HAL 라이브러리를구현한다. 이는저가형스마트폰및노후화된스마트폰의 S/W와 H/W 특성에제한받지않고고성능앱콘텐츠를원활하게이용할수있도록할수있다. 전체시스템의구성도는그림 3과같다. 그림 4. Android 구조도 Fig. 4 Android Structure 가상디바이스에대한드라이버를리눅스커널에구현하고 Android와의연결을위하여 HAL에라이브러리를구현하며, 실제스마트폰에서데이터를송수신할수있는클라이언트프로그램과서버프로그램을구현한다. 본논문에서가상머신과실제스마트폰의동작구조는그림 5와같다. 그림 3. Android 가상머신구조도 Fig. 3 Android Virtual machine Structure 본장에서는 x86기반의 Android 가상머신에서동작하는서버프로그램, 가상디바이스드라이버, 가상 HAL 라이브러리및실제스마트폰에서구성되는클라이언트의구현에관한내용을기술한다. 실제스마트폰과 x86 기반의 Android OS 와연동하기위해서는가상라이브러리와가상의디바이스드라이버를구현해줘야한다. Android 의경우센서및 GPS 값은 HAL을통해서 Android Framework에전달하게되는데, x86 기반의 Android 의경우실제센서및 GPS 그림 5. Android 가상디바이스드라이버 Fig. 5 Android Virtual Devices Driver 본논문에서구현하는프로그램은다음과같다. - 클라이언트프로그램 - 서버프로그램 - 가상디바이스드라이버 - 가상라이브러리클라이언트프로그램은스마트폰에서동작하는프로그램이며, 가상머신에서필요로하는센서및 GPS 값을캡처해서가상머신으로전달하는역할을한다 ( 그림 6). 1019
그림 6. 클라이언트프로그램동작절차 Fig. 6 Client Program operation process 서버프로그램은스마트폰의클라이언트프로그램으로부터센서및 GPS 값을수신하는역할을한다. Daemon 형태로동작하고있으며, Android 부팅시자동으로실행되어클라이언트프로그램의연결을대기한다. 또한수신된값들을파싱 (Parsing) 해서알맞은가상디바이스드라이버로데이터를전달하는역할을한다 ( 그림 7). 그림 8. GPS 디바이스드라이버동작절차 Fig. 8 GPS device driver operation process 가상라이브러리는 HAL 에존재하며, Android 는디바이스드라이버를직접접근하기보다는다양한 H/W 를접근할수있는공통메커니즘을제공한다 ( 그림 9). 그림 9. GPS 라이브러리동작절차 Fig. 9 GPS library operation process 본논문에서는기존의앱콘텐츠들수정없이연동될수있도록해당디바이스드라이버에대한가상라이브러리를추가한다. Ⅳ. 시스템구현및성능평가 그림 7. 서버프로그램동작절차 Fig. 7 Server Program operation process 가상디바이스드라이버는리눅스커널에포함된디바이스드라이버이며, 서버프로그램과 HAL 라이브러리에서접근한다. Server 프로그램에서클라이언트프로그램으로부터데이터를수신하면적절한파싱을거쳐서해당디바이스드라이버에게전달한다. 디바이스드라이버는수신된값을바로 HAL에전달하거나 HAL 에서가져갈수있는준비를해놓고기다린다. 이러한것은 HAL 동작하는방식에따라달라진다. 또한 x86 기반의 Android 의경우실제센서및 GPS 장치가없지만해당 H/W가있는것처럼인식하기위하여 /dev/pxxx 노드장치파일을생성한다 ( 그림 8). 본논문에서 Android 가상디바이스드라이버구현에사용된개발환경의운영체제로는 Ubuntu 12.04 LTS, 클라이언트로는 Google Nexus7, 서버로는인텔코어 i7, 가상머신으로오라클 Virtual Box, 개발언어로는 C 와 Java를이용하였다. Goolge Nexus7에서는 100ms 단위로센서및 GPS 값을보내주기위한클라이언트프로그램을구현하였고, 가상단말에서는센서및 GPS 값을수신하기위한서버프로그램을구현하였다. 이때양쪽의통신은 TCP 소켓통신을이용하여데이터를송수신한다. Android OS와센서및 GPS를사용하는응용프로그램과연동하기위하여가상 HAL 라이브러리와가상디바이스드라이버를추가로구현하였다. 1020
가상단말의가상디바이스드라이버들이센서및 GPS 장치들을제어할수있도록장치노드들을생성한다. - 가상 GPS : /dev/vgps - 가상 SENSOR : /dev/vsensor 가상장치들을제어할수있도록커널의센서및 GPS 에대한디바이스드라이버를포함하였다. 센서와 GPS 데이터들을 Android 프레임워크에서읽어갈수있도록그림 10과같이가상 HAL 라이브러리를추가하였다. 그림 12. UbiDemo 실행화면 Fig. 12 Run Screen of UbiDemo 본논문에서제안한방식은클라우드환경에서저비용서비스를제공하기위한것으로저사양스마트단말및노후화스마트단말사용자에게최신기능을제공하고자한다. 또한가상디바이스드라이버기술을제공함으로써마이크로소프트, 구글, 다음, 네이버등기존에제공되는클라우드서비스와는다르게사용자는가상단말에서도센서및 GPS를이용하는기존의앱콘텐츠들을수정없이사용가능한장점이있다. 그림 10. 가상 HAL Library Fig. 10 Virtual HAL Library Ⅴ. 결론및향후연구방향 스마트폰에서클라이언트프로그램을실행하면센서및 GPS 값을가상단말서버프로그램으로전달한다. 본논문에서는가상단말에서센서및 GPS 정보값을확인하기위한데모프로그램을구현하였다. 가상머신실행화면을그림 11에보이며, 그림 12는 Goolge Nexus7으로부터센서및 GPS 정보값을받아와가상머신의 Android 화면에값을보여준다. 본논문에서는센서및 GPS 정보값을출력하기위한예제프로그램을작성하였다. 프로그램이시작되면가상머신은 GPS 정보값및마그네틱센서, 가속도센서, 방향센서값을수신받는다. 그림 11. 가상머신실행화면 Fig. 11 Run Screen of Virtual Machine 주기적으로 Android OS 버전이출시되는것과는다르게시장에출시된스마트단말에대한 Android OS 업그레이드지원은상당히저조한편이다. 또한, 최신발매된 Android OS 버전을사용자가업데이트를하는것역시거의불가능하며, 최근에출시되는중저가스마트폰의경우 H/W 성능제약으로인하여고성능앱및멀티미디어서비스를원활하게이용하기힘들다. 기존에연구되고있는가상머신 VMware Mobile Virtual Platform의경우사생활보호를위한두개의도메인을사용하거나, cloudnet 의경우 H/W 자원제약및네트워크성능에대해서연구가진행되고있다. 하지만, 위에서언급한연구들은센서및 GPS 장치의정보수신에대한부분을고려되지않고있다. 따라서, 센서및 GPS를이용하는관련서비스를사용하지는못하였다. 본논문에서제안한방식은가상머신과실제스마트단말의정보들값을이용하여성능이낮은 H/W 및구형 S/W에서도최신 Android OS 및고성능앱을구동하도록하고자하였다. 최신 Android OS 의경우풍부한 1021
H/W 리소스자원을보유하고있는가상머신에서동작하도록하고, 실제스마트단말의주변정보값 ( 센서및 GPS) 정보를가상머신으로전달하여 Android와연동이가능하도록프로그램을구현하였다. 그결과가상화서비스를통하여고성능게임, 고화질미디어, 최신 Android OS를낮은 H/W 성능및구버전 Android OS 버전의스마트폰에서도사용가능하게되었다. 향후터치스크린, 영상전송기능기술을추가하여 MDM(Mobile device Magement) 분야로기술적으로확장하여구현할예정이다. 감사의말본논문은교육부의 산업단지캠퍼스조성사업 국고지원금으로수행한산학공동연구과제의연구결과입니다. REFERENCES [1] Gartner web site, Gartner Says Annual Smartphone Sales Surpassed Sales of Feature Phones for the First Time in 2013. Available: http://www.gartner.com/newsroom/id/ 2665715, 2014. [2] IDC web site, Smartphone OS Market Share, Q4 2014 Avilable:http://www.idc.com/prodserv/smartphone-os-mark et-share.jsp, 2014. [3] Android web site, Platform Versions. Available: https://developer.android.com/about/dashboards/index.html? utm_source=ausdroid.net#screens [4] H. C. Go, H. M. Yoo, "Everything analysis and porting of Android", HanBitMedia, 2011. [5] Greg Milette, Adam Stroud, Professional Android Sensor Programming, WROX Press, 2012. [6] Mahadev Satyanarayanan, The Case for VM-Based Cloudlets in Mobile Computing, Carnegie Mellon University, 2009. [7] Eric Y. Chen, Mistutaka Itoh, Virtual Smartphone over IP, NTT, 2010. 김호성 (Ho-Sung Kim) 1995 년동아대학교전자공학과 ( 공학사 ) 2008 년충남대학교전자정보통신공학과 ( 공학석사 ) 2015 년 ~ 현재배재대학교컴퓨터공학과 ( 박사과정 ) 1995 년 ~ 현재 K-water 감사실정보보안차장 관심분야 : IT 융합기술, ICT, Cloud Computing, Big data, Ubiquitous Computing, 수처리알고리즘 서종균 (Jong-Kyoun Seo) 1998 년건양대학교정보통신공학과 ( 공학사 ) 2014 년충남대학교산업시스템공학과 ( 공학석사 ) 2003 년 ~ 현재 ( 주 ) 유비테크부설연구소부장 관심분야 : 무선랜보안, 차세대이동통신 (WiBro, LTE), 버티컬핸드오버 박한수 (Han-Su Park) 2011 년한밭대학교컴퓨터공학과 ( 공학사 ) 2014 년한밭대학교컴퓨터공학과 ( 공학석사 ) 2012 년 ~ 현재 ( 주 ) 유비테크부설연구소과장 관심분야 : Embedded, 차세대이동통신 (WiBro, LTE), 가상화 1022
정회경 (Hoe-Kyung Jung) 1985 년광운대학교컴퓨터공학과 ( 공학사 ) 1987 년광운대학교컴퓨터공학과 ( 공학석사 ) 1993 년광운대학교컴퓨터공학과 ( 공학박사 ) 1994 년 ~ 현재배재대학교컴퓨터공학과교수 관심분야 : 멀티미디어문서정보처리, XML, SVG, Web Services, Semantic Web, MPEG-21, Ubiquitous Computing, USN 1023