论文部分内容阅读
在云计算趋势下,桌面虚拟化越来越成为一个关注的热点。桌面虚拟化将用户的桌面操作系统集中运行在服务器端,服务器使用虚拟化技术,在一台物理服务器上同时运行多个桌面操作系统;用户使用个人瘦客户机等终端设备,通过桌面传输协议连接到远程桌面操作系统。相对于传统IT架构,桌面虚拟化有诸多优势,降低企业总体成本。Linux桌面发行版以其开源免费的特性,得到了越来越多地应用。自Linux内核诞生之后,出现了许多优秀的桌面发行版和桌面环境,而且有很多优秀且免费的桌面应用程序,很多情况下,是可以替代传统的Window系统的。桌面虚拟化和Linux桌面系统是一个绝佳的组合。虚拟化技术和桌面传输协议是桌面虚拟化的两大核心问题,在桌面传输协议方面,没有针对Linux系统的优秀的开源协议可以使用。针对以上情景,本文旨在研究开发一套针对Linux桌面环境的桌面传输协议,独立自主,基础完备,并且不依赖于任何虚拟化技术,实现良好的平台适应性。基于此,实现Linux桌面交付,并且由于源码可控,将来可以基于此做扩展开发,提供个性化服务。本文首先进行需求分析,确定需要实现的功能以及安全性、性能问题,设计系统架构,进行模块划分,按功能分为5个模块:身份验证、视窗图像、音频、键鼠控制、剪切板共享,除此之外,事件循环模块负责网络IO,分别实现了IOCP模型和epoll模型;消息处理模块做消息分发处理,连接功能模块和事件循环模块;内存池模块统一管理内存,提高内存分配和回收效率,同时避免内存泄漏问题。之后,逐个模块进行分析设计,确定实现方案并且编程实现。其中,视窗图像模块,针对不同应用场景设计和实现了图像模式和视频模式,以及一个简单的模式切换器,根据使用场景自动选择合适的模式。最后,搭建云环境,设计测试方案对该系统进行测试,验证系统是否工作正常,是否满足性能需求。