论文部分内容阅读
进入二十世纪以来,科技发展迅速,信息量飞速增长,人们对于信息存储的方便性及快捷性要求越来越高,依赖于网络进行方便快捷的信息存储成为必需,在此背景下,网络硬盘技术诞生并获得迅速发展。目前已有各类基于B/S模式的网络硬盘,但存在一些限制,客户无法对文件进行实时在线操作,需要通过对文件进行下载来实现文件读、写、修改等基本操作;另现有的网络硬盘大多存在限制单个文件大小的问题,超过限制大小的视频文件无法播放等问题。针对上述问题,本文设计并实现了一个基于NFS和SATA协议的C/S模式网络硬盘,实现了用户访问远程文件同访问本地文件一致,且对单个文件大小无限制。系统以linux虚拟机和FGPA作为平台进行设计,采用软硬件协同设计的方式进行实现。对于软件部分的设计,首先对Linux内核中NFS客户端、服务器端代码以及FAT32文件系统代码分析研究,接着对设计中软件各部分FAT32文件系统、驱动程序、NFS系统利用C语言进行设计并在虚拟机中验证。硬件部分SATA硬盘控制器采用VHDL硬件描述语言在ISE中设计,并基于PLB总线进行IP核封装,在开发板XUPV5_LX110T中进行验证。最后在开发板中将软件部分整合到开发板操作系统镜像中,与硬件部分编译比特流文件一起下载到开发板中进行整体验证。为满足现代社会对处理速度的要求,本文最后在原设计的基础上进行了优化,首先描述了ACL机制,将ACL功能以应用程序的方式添加到NFS服务器的应用程序链表中,接着对NFS服务器端利用线程池技术增加了多线程设计,最后在多线程的基础上,利用ACL机制,设计了多客户端应用,并描述了多客户端访问冲突的解决办法。验证结果表明,本文设计的网络硬盘可以实现远程文件访问的基本功能,且可以实现用户在线访问,具有较高的安全性及可靠性。