"基于Linux的USB设备重定向研究"
本文研究的是基于Linux的USB设备重定向问题。Linux操作系统具有良好的移植性和较好的稳定性,在终端和服务器领域都得到极广的应用。而USB总线也具有很强的通用性,是目前最为流行的外围接口总线之一。然而,Linux操作系统作为服务器不支持设备重定向这一缺陷,限制了Linux服务器的应用。
为了解决这个问题,本文提出了基于Linux的USB设备重定向方案。该方案的原理是,在服务器通过创建虚拟设备,对该设备的操作(主要是URB请求)被虚拟驱动通过网络发送到终端,终端接收到请求后,发送给USB设备,再把结果通过网络返回给服务器。对于服务器来说,网络是透明,上层的应用程序并不知道它所操作的对象是远端的USB设备,就像操作本地的USB设备。
URB(USB Request Block)是USB设备驱动中用来描述与USB设备通信所用的基本载体和核心数据结构。用户要和USB设备通信,必须按照URB请求包的格式提交给Linux内核,内核根据这个URB请求包的pipe信息,把URB请求包添加到不同时链表中,并通过总线发送出去。USB设备收到与自身地址相匹配的URB请求包后,对发送方作出合理的握手响应包,并将数据交付指定的endpoint,从而完成一次数据传送。
本文还详细介绍了URB请求的处理流程以及服务器和终端所需要做的工作。URB请求的处理流程包括创建一个URB,指定一个endpoint,由USB设备驱动程序递交到USB核心,由USB核心递交到USB设备的对应的主控制器驱动程序,由USB主控制器驱动程序处理。这样,Linux服务器上的应用程序可以访问Linux终端上的USB设备,从而解决了Linux操作系统作为服务器不支持设备重定向这一缺陷。
本文的研究结果可以提高Linux服务器的应用范围,扩展Linux操作系统的功能,并提高Linux操作系统在终端和服务器领域的应用价值。
Linux操作系统的开放源代码和良好的移植性,使得Linux操作系统在终端和服务器领域得到极广的应用。但是,Linux操作系统作为服务器不支持设备重定向这一缺陷,限制了Linux服务器的应用。为了解决这个问题,本文提出了基于Linux的USB设备重定向方案。该方案的原理是,在服务器通过创建虚拟设备,对该设备的操作(主要是URB请求)被虚拟驱动通过网络发送到终端,终端接收到请求后,发送给USB设备,再把结果通过网络返回给服务器。
本文还讨论了URB请求的含义和所代表的操作。URB请求的处理流程包括创建一个URB,指定一个endpoint,由USB设备驱动程序递交到USB核心,由USB核心递交到USB设备的对应的主控制器驱动程序,由USB主控制器驱动程序处理。这样,Linux服务器上的应用程序可以访问Linux终端上的USB设备,从而解决了Linux操作系统作为服务器不支持设备重定向这一缺陷。
本文的研究结果可以提高Linux服务器的应用范围,扩展Linux操作系统的功能,并提高Linux操作系统在终端和服务器领域的应用价值。