android、virtualbox跨界编译及动态迁移云平台系统研发毕业论文正文终稿.doc
《android、virtualbox跨界编译及动态迁移云平台系统研发毕业论文正文终稿.doc》由会员分享,可在线阅读,更多相关《android、virtualbox跨界编译及动态迁移云平台系统研发毕业论文正文终稿.doc(44页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、本科毕业设计(论文)题目:Android/VirtualBox跨界编译 及动态迁移云平台系统研发 学 院 电子与信息学院 专 业 信息工程 学生姓名 学生学号 指导教师 陆以勤 提交日期 2015 年 5 月 20 日 摘 要Contiki微操作系统作为一种小型的,开源的,极易移植的微操作系统。由于其对硬件平台要求较低,所以被广泛地用于无线网络传感器等低功耗应用场景。另外由于其小型化,给系统跨平台迁移提供了可能性。本文首先简要介绍了Contiki操作系统、GCC编译、交叉编译、TCP/IP通信和通信加密算法等跨界编译和调度的基础,并对Contiki系统架构、源代码和进程调度做了研究分析。接着详
2、细介绍了Contiki系统在Linux和Android虚拟机的跨平台编译,以及Contiki系统在不同Linux虚拟机之间、Linux和Android之间的动态迁移,为以后在大型并发运算系统架构上提供一个可行的参考方案。先将大计算量分解成若干个小的计算量,通过Contiki进程触发机制,让其运行在每个Contiki上。再通过平台的迁移自动运行,可实现多个Contiki的多方位交叉与计算并发,这对于Contiki系统的多平台运行有着重要意义,也这为以后物联网时代奠定一个新的系统解决方案。 实验结果及截图表明,本文建立相应的跨平台编译链,通过系统调用,在程序中实现了自动编译功能。并且通过建立网络传
3、输通道,实现了不同平台间的动态迁移。这些也进一步验证了以Contiki为基础的计算并发系统解决方案的可行性。关键词:Contiki微操作系统;Linux;安卓虚拟机;跨平台编译;迁移AbstractMicro Contiki operating system is a small, open-source, easy-to-transplant micro operating system.Because of its lower requirements for hardware platform, it is widely used in wireless network sensors
4、and other low-power application scenarios.And because of its miniaturization, it provides the possibility for the system cross platform migration.This paper first briefly introduces some basic knowledge of cross compilation and scheduling,such as Contiki operating system,GCC compilation,cross compil
5、ation,TCP/IP communication and so on.Next the Contiki system architecture, source code and process scheduling are studied and analyzed.Then this paper mainly introduces the automatic compiling and migrating of Contiki system between different Android/Linux virtual machines, which provides a feasible
6、 scheme for reference for the future in large-scale concurrent computing system architecture .First, the large amount of computation is decomposed into a number of small computational quantities.Using Contiki process trigger mechanism, it runs on each Contiki.Then through the migration of the platfo
7、rm automatically, the multi directions and computing concurrency of multiple Contiki can be realized.This is important for the multi platform operation of the Contiki system, and it also lays a new system solution for the future IOT era.Experimental results and screenshots show that this paper reali
8、zes the automatic compiling function in the program through establishing the cross platform compile chain, and then the system call.And through the establishment of the network transmission channel, the dynamic transfer between different platforms is realized.These are also further verified the feas
9、ibility of Contiki based computing concurrent system solution.Keyword: Micro Contiki operating system; Linux; Android virtual machine; cross compilation; transplantationII目 录摘 要IAbstractII第一章 绪 论11.1 课题背景和意义11.2 课题的国内外发展现状11.3 课题研究主要目标及工作21.4 论文内容安排2第二章 动态迁移系统设计32.1 系统架构32.2 系统设计52.2.1 Contiki系统说明52
10、.2.2 Linux下GCC编译52.2.3 交叉编译的介绍62.2.4 TCP/IP简介72.2.5 信息加密简介82.3 本章小结8第三章 Contiki微型虚拟机研究93.1 Contiki源码分析93.2 Contiki进程触发示例103.2.1 Protothreads103.2.2 进程控制模块113.2.3 进程调度123.3 本章小结17第四章 Linux/Android跨平台编译研究184.1 Contiki在Linux下的编译184.2 Contiki在Android环境下的编译224.2.1 交叉编译工具链的建立224.2.2 Makefile文件编写234.2.3 编译
11、过程244.2.4 自动编译254.3 本章小结25第五章 系统动态迁移研究265.1 网络传输研究265.1.1 TCP协议265.1.2 Socket套接字265.2 RSA_AES加密算法研究275.2.1 RSA加密算法研究275.2.2 AES加密算法研究275.3 动态迁移框架研究28III5.4 本章小结32第六章 系统测试与评价336.1 运行测试336.2 系统评价356.3 本章小结35结 论36致 谢37参考文献38IV第一章 绪 论1.1 课题背景和意义随着网络通信技术的发展和趋于成熟,人类社会正向全面的信息化时代迈进,跟随着时代的步伐,物联网技术也慢慢发展起来1。所谓
12、物联网,即物物连接的互联网,它是利用局部网络或互联网等通信技术把传感器、控制器、机器、人员和物等通过新的方式联在一起,形成人与物、物与物相联,实现信息化、远程管理控制和智能化的网络,通过物联网,人类可以实现无处不在的计算机和网络连接,对人类社会的发展产生重大贡献,而Contiki就是专门为物联网开发的开源操作系统。Contiki 是一个小型的,开源的,极易移植的多任务电脑操作系统。它专门设计以适用于一系列的内存有限的网络系统,包括从8位电脑到微型控制器的嵌入系统,适用于联网嵌入式系统和无线传感器网络。Contiki只需几KB的代码和几百字节的内存就能提供多任务环境和内建TCP/IP支持。Con
13、tiki完全C语言开发、易于移植、支持大量的硬件平台和开发工具、事件驱动机制占用内存小、集成了多种无线传感器网络协议、无专利和版权费、集成仿真工具等特点和优势,已经成为无线传感器网络学术研究和产品开发的理想平台,在欧洲已经得到广泛应用,并逐渐得到其它地区开发人员的支持。随着物联网、无线传感器网络的发展,IP地址将耗尽,骨干网络必将升级到IPv6,因此6Lowpan标准被越来越多的标准化组织所采纳,研发6lowpan的人员将越来越多,这将使得Contiki很可能成为嵌入系统中的Linux,在物联网领域得到广泛应用,发挥重要作用。1.2 课题的国内外发展现状目前,随着物联网的发展,基于IPv6的无
14、线传感器网络的可行得到了一系列的标准,比如6LoWPAN,是一种基于IPv6的低耗无线个人区域网络规格。Contiki嵌入式操作系统是一个重要的开源系统,多平台特定设备工作实现6LoWPAN功能2。它的RFC兼容TCP/IP堆栈功能,提供支持6LoWPAN和很多关联标准。同时,uIP堆栈被整合进Contiki移植操作系统,也增强支持IPv6(uIPv6)。另外,Contiki操作系统包含了一个RPL路由协议的实现,相当于成熟的6LoWPAN支持(IPv6数据包解压和压缩)。Contiki已经被设计的以轻便为主,成功地用于多种硬件平台。Contiki成为无线传感器网络学术研究和产品开发的理想平台
15、,在欧洲已经得到广泛应用,并逐渐得到其它地区开发人员的支持。随着物联网、无线传感器网络的发展,IP地址将耗尽,骨干网络必将升级到IPv6,因此6LoWPAN标准被越来越多的标准化组织所采纳,研发6LoWPAN的人员将越来越多,这将使得Contiki很可能成为嵌入系统中的Linux,在物联网领域得到广泛应用,发挥重要作用。1.3 课题研究主要目标及工作本课题研究的主要任务是在云平台服务器上安装部署一种称为“方舟”的Linux+GCC系统的虚拟机,能够对C语言编写的Cell(计算机细胞)进行Android虚拟机VirtualBox虚拟机平台的交叉编译;并且用C语言开发一套自动迁移程序,能够把Cel
16、l的源代码在“方舟”之间加密传输,并且自动编译运行。其中,Cell(计算机细胞)就是指在Contiki操作系统。要实现以上目标,需要进行如下研究工作:1)了解Contiki操作系统、Android/VirtualBox跨界交叉编译、操作系统进程调度的概念。2)安装两个VirtualBox虚拟机,在此基础上分别配置Linux和Android for x86。3)在上述安装的Linux平台中,手工编译Contiki操作系统。4)在Linux虚拟机上编译出Android上运行的可执行代码(交叉编译),然后手工复制可执行代码到Android平台上运行。5)Linux虚拟机之间的Contiki编译与迁移
17、自动化6)实现Linux到Android平台的可执行代码自动迁移和运行。1.4 论文内容安排本文主要研究了Contiki微操作系统在Android/VirtualBox的跨界编译及动态迁移,第一章绪论主要对Contiki微操作系统以及关于Contiki微操作系统的发展现状做简单的介绍,第二章介绍了Contiki操作系统、GCC编译、交叉编译、TCP/IP通信和通信加密算法等跨界编译和调度的基础知识,第三章介绍了交叉编译链建立的过程,实现Contiki微操作系统在Android/Linux的跨界编译,第四章介绍了RSA_AES加密算法的原理和加密步骤,并详细介绍了Contiki系统在不同Linu
18、x虚拟机之间、Linux和Android之间动态迁移的实现过程,最后为总结结论,对课题的展望等。第二章 动态迁移系统设计2.1 系统架构 课题的系统框图如图2-1所示。 图2-2 Android/VirtualBox跨界编译及动态 迁移云平台系统框图 系统包括Linux虚拟机、Android虚拟机和虚拟网关三大模块。根据课题目标,制定如下实现方案:1) Linux虚拟机 在windows平台下,采用VirtualBox虚拟机软件安装Linux操作系统,目标使用Ubuntu版本,为以Android为目标机的Contiki源码提供编译环境。 VirtualBox是免费虚拟机软件,它不仅具有丰富的特
19、色,而且性能也很优异。它简单易用,可虚拟的系统包括Windows、Mac OS X、Linux、OpenBSD、Solaris、IBM OS2甚至Android 4.0系统等操作系统使用者可以在VirtualBox上安装并且运行上述的这些操作系统与同性质的VMware及Virtual PC比较下,VirtualBox独到之处包括远端桌面协定(RDP)、iSCSI及USB的支持。 Ubuntu是一个以桌面应用为主的Linux操作系统,十分契合英特尔的超极本定位,支持x86、64位和ppc架构 全面支持网页浏览器 WPS。Ubuntu对GNU/Linux的普及特别是桌面普及作出了巨大贡献,由此使更
20、多人共享开源的成果与精彩。在本系统中,我们使该虚拟机具备虚拟网卡,可与多台android虚拟机及Linux虚拟机通过虚拟网关,通过网络拓扑连接进行网络通信,以便完成整个系统实验。2) 编译环境搭建及编译 Linux虚拟机之间的系统迁移,我们只需编写源码Makefile文件,使用系统自带的GCC编译器实现Contiki的编译。但是为了实现跨平台系统迁移,我们还需要实现Contiki在Android环境下的编译,并编写源码Makefile文件,交叉编译Contiki源码,生成Android目标机的编译文件。最初考虑一下两种方案: 方案一是做安卓下的NDK编译,方案二是建立LINUX-ARM交叉编译
21、链,在底层实现跨界编译。下面就这两种方案进行讨论。方案一:NDK是安卓开发的一个工具集3,集成了Android 的交叉编译环境,并提供了一套比较方便的 Makefile ,可以帮助开发者快速开发 C 或是 C+ 的动态库,并自动的将 so 和java程序打包成 apk ,在 Android 上运行。但是由于Contiki本身没有安卓版本,编译不通过,故该方案失败。方案二:建立LINUX-ARM交叉编译链,将目标程序编译成Android for x86能运行的可执行代码,从而实现Contiki在Android环境下的编译,此过程即是Android/VirtualBox跨界编译。3) 文件迁移及自
22、动加载 Linux集成了uIP协议栈,包含IPv4 和 IPv6 两种协议栈版本,支持 TCP、UDP、ICMP等协议,并有一套完整的uIP API。 本程序采用TCP通信模式,编写核心C程序,通过TCP/IP用RSA+AES加密传输Contiki编译文件到另一台Linux虚拟机,虚拟机间通过虚拟网关进行数据传输。由于Android底层仍为Linux内核,故该传输方法在Android上同样可用。 相应虚拟机接收程序接收到Contiki编译文件后,我们将自动加载Contiki虚拟机进程,执行相应应用程序。2.2 系统设计2.2.1 Contiki系统说明1) Contiki操作系统工作原理 Co
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- android virtualbox 编译 动态 迁移 平台 系统 研发 毕业论文 正文
限制150内