文件系统

2024-09-27

文件系统(共12篇)

文件系统 篇1

实际上, 目前几乎所有的应用领域包括银行、政府、电子交易等各类网络都有信息安全的需求。维基解密网站于2011年11月公布数十万份美国外交机密文件, 美国面临外交危机;2011年12月, CSDN的安全系统遭到黑客攻击, 600万用户的登录名、密码及邮箱遭到泄漏。信息安全特别是敏感数据的存储保护问题, 日益成为社会关注的焦点, 更成为影响一个组织、社会乃至国家稳定发展的重要因素。

如何防止电子数据遭非法窃取、篡改甚至删除, 已成为信息安全面临的重要课题。以往, 我们在这方面主要通过加密及权限控制等手段来确保数据安全。但是, 虽然我们在文件安全性方面做过诸多努力, 文件系统整体仍然是无序存放的, 系统运行文件、程序文件、临时文件、敏感数据文件之间, 对系统而言没有任何区别, 并且经常是杂乱交叉存储的, 这不仅增加了权限控制的系统运行开销, 也给窃密者以可趁之机。本文主要探讨通过建立分级文件系统以区分各类型文件并进而确保数据安全的可能性。

首先, 让我们来看看什么是文件系统。文件系统是操作系统用于明确磁盘或分区上的文件的方法和数据结构, 即在磁盘上组织文件的方法。也指用于存储文件的磁盘或分区, 或文件系统种类。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统, 简称文件系统。文件系统大体可以分为基于磁盘的文件系统、基于网络的文件系统、数据库文件系统以及其它一些特殊用途的文件系统等。目前单机文件系统主要有两类, 一类是以linux系统为代表的单树形结构, 另一类是以windows为代表的多树形结构。

NTFS是Windows NT以及之后的Windows 2000、Windows XP、Windows Server 2003、Windows Server 2008、Windows Vista和Windows 7的标准文件系统。NTFS取代了文件分配表 (FAT) 文件系统, 为Microsoft的Windows系列操作系统提供文件系统。NTFS对FAT和HPFS (高性能文件系统) 作了若干改进, 例如, 支持元数据, 并且使用了高级数据结构, 以便于改善性能、可靠性和磁盘空间利用率, 并提供了若干附加扩展功能, 如访问控制列表 (ACL) 和文件系统日志。该文件系统的详细定义属于商业秘密, 但Microsoft已经将其注册为知识产权产品。

Ext3是一种日志式文件系统, 是对ext2系统的扩展, 它兼容ext2。日志式文件系统的优越性在于:由于文件系统都有快取层参与运作, 如不使用时必须将文件系统卸下, 以便将快取层的资料写回磁盘中。因此每当系统要关机时, 必须将其所有的文件系统全部shutdown后才能进行关机。如果在文件系统尚未shutdown前就关机, 如停电时, 下次重开机后会造成文件系统的资料不一致, 故这时必须做文件系统的重整工作, 将不一致与错误的地方修复。然而, 此一重整的工作是相当耗时的, 特别是容量大的文件系统, 而且也不能百分之百保证所有的资料都不会流失。

Linux系统的特色之一就是其将所有系统都表示为文件 (包括硬件设备) , 即“一切皆是文件”, 不仅普通的文件, 而且目录、字符设备、块设备、套接字等在Linux中都被当作文件对待;而配置一个文件系统就是使Linux系统可以使用一个具体的设备, 比如磁盘、CD~ROM等。Linux系统的文件类型有多种, 因其将设备也视为文件, 当然文件类型要比其它系统要多, 常用的有这几种文件类型:目录、普通文件、连 (链) 接、块设备、字符设备等。普通文件和其他系统类似, 一般都分为数据文件、文本文件、命令 (程序) 文件、可执行文件等。

Linux文件系统是一个目录树的结构, 它的根是根目录“/”, 往下连接各个分支, 例如, /bin、/usr、/sbin等。DOS也采用目录树的结构, 但是与Linux的略有不同, 如图2所示。DOS以每个分区为树根, 由于有多个分区, 所以形成了多个树并列的情形。

虽然这些文件系统的层次都很清晰, 但一个共同的问题是, 系统文件、运行文件和敏感数据文件没有区别对待, 对于操作系统来说都是没有任何访问限制的。因此, 一旦操作系统遭到入侵, 所有数据都将在用户毫不知情的情况下被“转移”。另一方面, 系统文件与数据文件的混合存放, 也给数据维护带来不必要的开销。

这里我们以DOS系统的基本结构 (多个树并列) 为基础, 将存储空间划分为系统运行区、交换区、数据区。系统运行区用来存储、运行操作系统及相关程序文件;数据区用来存储用户数据文件;交换区用来临时调取数据区文件供系统运行区访问。在安全操作系统设计中, 系统运行区和数据区无法互访, 只能经过交换区。交换区除提供系统运行区和数据区访问外, 主要控制系统对数据区的访问以及访问数据列表。例如, 当系统需要调用数据区文件时, 必须经过用户确认以免数据被黑客非法窃取;另外, 可以建立数据流日志及数据流量统计, 自动比对读取数据量大小与访问目标数据文件大小, 以免恶意软件非法窃取文件, 而形成的交换区数据流日志文件, 也便于用户定期核查机密数据的读取、访问情况, 以便及时发现异常。

系统实现的关键在于从操作系统设计上摈弃“系统高于文件”的思想, 让操作系统成为文件的保护者而非随意使用者, 将文件系统的分层结构与操作系统的运行结合起来, 将系统文件、普通文件与机密数据文件区分开。

摘要:随着信息技术的快速发展, 现在人们对系统安全问题考虑的越来越多, 对系统安全的要求也越来越严格, 信息安全已经不再是军方和政府要害部门的特殊需求。

关键词:文件系统,Linux,DOS

参考文献

[1]娄雨.对比Linux文件系统和DOS文件系统[J].硅谷, 2008 (1)

文件系统 篇2

1. 什么是ReiserFS

ReiserFS是一种新型的文件系统,在蓝点Linux中你可以选择它来装载你的Linux操作系统和其他应用程序和数据文件。它通过一种与众不同的方式--完全平衡树结构来容纳数据,包括文件数据,文件名以及日志支持。ReiserFS还以支持海量磁盘和磁盘阵列,并能在上面继续保很快的搜索速度和很高的效率。ReiserFS文件系统一直以来被用在高端Unix系统上如SGI等。

2. ReiserFS的特点(与ext2的对比):

ReiserFS相对于Linux上传统的文件系统--ext2有很多优点,在下面一一介绍。

搜寻方式

ReiserFS是基于平衡树的文件系统结构,尤其对于大量文件的巨型文件系统,如服务器上的文件系统,搜索速度要比ext2快;ext2使用局部的二分查找法,综合性能比不上ReiserFS。

空间分配和利用情况

ReiserFS里的目录是完全动态分配的,因此不存在ext2中常见的无法回收巨型目录占用的磁盘空间的情况。ReiserFS里小文件(<4K)可以直接存储进树,小文件读取和写入的速度更快,树内节点是按字节对齐的,小的文件可共享同一个硬盘块,节约大量空间。Ext2使用固定大小的块分配策略,也就是说,不到4K的小文件也要占据4K的空间,导致的空间浪费比较严重。

先进的日志机制

ReiserFS有先进的日志(Journaling/logging)机制,在系统意外崩溃的时候,未完成的文件操作不会影响到整个文件系统结构的完整性。 ext2虽然健壮性很强,但一旦文件系统被不正常地断开,在下一次启动时它将不得不进行漫长的检查系统数据结构的完整性的过程,这是为了防止数据丢失而必需的操作。对于较大型的服务器文件系统,这种“文件系统检查”可能要持续好几个小时,在很多场合下这样长的时间是无法接受的。 解决这个问题的一种技术“日志文件系统”。在日志的帮助下,每个对数据结构的改变都被记录下来,日志在机制保证了在每个实际数据修改之前,相应的日志已经写入硬盘。正因为如此,在系统突然崩溃时,在下次启动几秒钟后就能恢复成一个完整的系统,系统也就能很快的使用了。

支持海量磁盘和优秀的综合性能

ReiserFS是一个相当现代化的文件系统,相比之下,ext2虽然性能已经很好了,但其设计还只是19世纪80年代的水准。ReiserFS的出现,使Linux拥有了像Irix/AIX那样的高档商用Unix才有的高级文件系统。ReiserFS可轻松管理上百G的文件系统,在企业级应用中有其用武之地,由于它的高效存储和快速小文件I/O特点,它在桌面系统上也表现出色:启动X窗口系统的时间ReiserFS比ext2少1/3,

而ext2则无法管理2G以上的单个文件,这也使得ReiserFS在某些大型企业级应用中比ext2要出色。

3.缺点

ReiserFS一个最受人批评的缺点是每升级一个版本,都将要将磁盘重新格式化一次,这个缺点也正在改进中。

4.ReiserFS的起源与未来

在7月23日,Hans Reiser把他的基于平衡树结构的ReiserFS文件系统在网上公布 。 这是ReiserFS的第一次公开亮相。此后,ReiserFS一直在Hans Reiser和领导下的开发小组下开发和发展,SuSE Linux也对它的发展起了重大的帮助。由于ReiserFS有一些很有用的特性,更主要的是它比ext2fs要快得多,所以它很快被很多人使用。据说在Linux内核2.4.0以上的版本可能将采用ReiserFS作为它的文件系统。当前的ReiserFS只能在Intel结构体系上使用,但支持其他体系结构的ReiserFS版本也正在积极开发中。我们等待着更强大,兼容性更好的ReiseFS的到来。

附:怎样添加ReiserFS文件系统

简介

ReiserFS文件系统是一种新的linux文件系统。它通过一种与众不同的方式--完全平衡树结构来容纳数据, 包括文件数据,文件名以及日志支持,并能在上面继续保持很快的搜索速度和很高的效率。ReiserFS文件系统一直以来被用在高端Unix系统上如,SGI。

ReiserFS是在Hans Reiser和其领导下的开发小组下开发和发展,SuSE Linux也对它的发展起了重大的帮助。由于ReiserFS有一些很有用的特性,更主要的是它比ext2fs要快得多,所以它很快被很多人使用。据说在Linux内核2.4.0以上的版本可能将采用ReiserFS作为它的文件系统。当前的ReiserFS只能在Intel结构体系上使用,但支持其他体系结构的ReiserFS版本也正在积极开发中。我们等待着更强大,兼容性更好的 ReiseFS的到来。

安装

从www.devlinux.com/namesys下载reiserfs的补丁程序,要确保下载的补丁版本和你的kernel版本是一致的。

下载后用root身份登录进入系统,切换至/usr/src/linux目录,执行命令:

#gunzip /path/to/linux-2.2.16-reiserfs-3.5.22-patch.gz

#patch -p1 -i /path/to/linux-2.2.16-reiserfs-3.5.22-patch

在做完上面的两步后,重新编译kernel,将reiserfs编译进kernel或做成一个模块。

Reiserfs的相关应用程序在 /usr/src/linux/fs/reiserfs/utils 目录下。你可以用下面方法安装它们:

#mkdir bin

#make

#make install

最后,你可以用“fdisk”命令重新分区或用“mkreiserfs”命令重新格式化一个已经存在的分区。 指定reiserfs类型加载这个分区,如“mount -t reiserfs /dev/hda2 /download”,这样你就可以使用这个新的分区了。

追踪系统被删文件痕迹 篇3

强制系统记忆被删痕迹

默认状态下,Windows系统不会自动记忆被有意或无意删除的各类文件,要想记忆它们的删除痕迹,一定要依赖Windows系统的日志功能。日志文件作为自动记忆系统工作状态的特殊文件,善于利于该文件,就能对文件删除操作进行跟踪记忆了;但是,系统日志功能默认不会跟踪记忆系统的所有运行状态,不然的话,自动生成的巨量信息会急剧消耗掉硬盘宝贵空间资源。所以,Windows系统在缺省状态下只会有针对性地记忆保存系统中一些十分重要的事件,比方说系统登录操作、注销操作,应用程序启动运行时载入相关连接库失败操作等等;既然如此,如何才能让Windows系统日志自动追踪、记忆文件删除操作事件呢?要做到这一点,需要启用Windows系统的对象审核功能,并对该功能进行合理的设置,下面本文就以Windows 7系统环境为例,向大家介绍一下这方面的具体设置步骤:

对文件删除操作设置审核权限

Windows 7系统无法追踪记录普通分区格式中的文件删除事件,只能对NTFS格式分区中的内容进行记忆,因此在启用文件删除操作的审核权限之前,先要查看待追踪的磁盘分区是否是NTFS格式;在进行这种查看操作时,用鼠标右键单击目标磁盘分区,从弹出的快捷莱单中执行“属性”命令,弹出如图1所示的属性对话框,在常规标签页面中,就能清楚地查看到目标磁盘分区究竟是什么格式了。要是目标磁盘分区格式不对时,可以依次单击系统桌面中的“开始”|“运行”命令,在弹出的系统运行对话框中,输入“cmd”命令,单击回车键后,切换到DOS命令行工作窗口,在命令提示符中执行“convert X:/fs:ntfs”命令(“X”为目标磁盘分区符号),这样就能对目标分区进行无损格式转换操作了。

在确认目标磁盘分区格式符合要求后,用鼠标右键单击该分区图标,执行右键菜单中的“属性”命令,切换到该分区的属性对话框中,选择“安全”标签,在对应标签设置页面中的右下方点击“高级”按钮,打开高级安全设置对话框,选择这里的“审核”标签,继续单击该标签页面中的“编辑”按钮,在其后界面中再单击“添加”按钮,弹出选择用户或组对话框(如图2所示);单击这里的“高级”选项,同时按“立即查找”按钮,随后我们就能看到本地系统中的所有用户和组名称了,选中“Everyone”账号名称,并用鼠标双击该账号,目标用户账号就被成功导入进来,按“确定”按钮切换到“Everyone”账号的审核项目列表中;

从访问列表中,找到“删除子文件夹及文件”审核项,同时将对应项目的“成功”、“失败”都选中(如图3所示),再单击“确定”按钮保存设置,这样普通用户以“Everyone”账号删除本地系统中的文件夹或文件是,无论操作有没有成功,Windows 7系统的日志功能都会对它们的痕迹进行追踪、记忆。

对对象访问策略启用审核功能

上面的设置虽然解决了Windows 7系统可以追踪文件删除痕迹,但是还无法保证系统能自动追踪、记忆这方面的事件,要实现自动追踪、记忆目的,还需要对Windows 7系统的对象访问策略启用审核功能,下面就是具体的启用步骤:

首先依次单击Windows 7系统桌面中的“开始”|“运行”命令,切换到系统运行对话框中,输入字符串命令“gpedit.msc”,按回车键后,弹出系统组策略编辑界面;

其次从该编辑界面的左侧列表区域,逐一展开“计算机配置”|“windows设置”|“安全设置”|“本地策略”|“审核策略”分支,在目标分支下面找到“审核对象访问”选项,用鼠标双击该选项,打开如图4所示的选项设置界面;

在本地安全设置标签页面中,我们发现系统默认没有启用审核对象访问功能,此时可以将“成功”、“失败”选项选中,再按“确定”按钮保存设置即可。

定期追踪文件被删痕迹

完成上面的各项设置任务后,Win7系统现在就能准确追踪系统被删文件痕迹了,只要目标磁盘分区中有文件或文件夹被普通用户删除掉,哪怕删除操作没有成功,我们都能从系统的相关日志中找到被删文件的痕迹,包括被删除文件的名称是什么,删除操作是什么时候进行的,而且还能清楚地查看到究竟是谁偷偷删除了文件。在查看被删文件的具体信息时,可以按照如下步骤来进行:

首先用鼠标右键单击系统桌面中的“计算机”图标,从弹出的右键菜单中点选“管理”命令,切换到对应系统的计算机管理窗口,在该管理窗口的左侧列表区域中,逐一展开“系统工具”|“事件查看器”|“Windows日志”|“安全”分支,在对应分支下面我们会看到各种安全审核记录,这当中也包括被删文件的审核记录,用鼠标双击某个记录选项,从其后界面中就能看到具体文件的删除信息了。

为了验证系统能否自动追踪文件被删痕迹,笔者特地在刚才启用了审核功能的目标磁盘分区中,人为删除了一个测试文件来进行试验;文件删除操作成功后,立即切换到计算机管理窗口,打开系统安全日志,看到事件列表中有一条“信息2011-10-29 10:46:07安全审核”之类的记录,如图5所示;用鼠标双击该事件记录,从其后弹出的事件属性对话框中,笔者看到这里非常直观地将被删除文件的路径显示了出来,同时还能看到具体的文件名称、被删文件的类型、文件被删除的时间等等,通过这些信息我们就能判断文件删除操作究竟是有意的还是无意的,究竟会不会对系统的安全带来威胁。

及时报警文件被删事件

对于一些恶意的文件被删事件,如果我们能够及时发现,并采取相关安全措施防范,可以确保安全威胁降低到最小限度。Windows 7系统为了帮助用户及时发现恶意事件,特地新增加了附加任务到事件功能,利用该功能可以强制系统在追踪到文件被删事件时,立即发出一些明显的警报信息,例如可以播放报警音乐,或者通过发送电子邮件,或者启动运行特殊的报警程序等等,用户一旦看到指定的报警信息,就能知道系统中有文件被删除了。例如,希望系统通过播放报警音乐,来提醒用户文件被删事件发生时,可以按照如下步骤设置Windows 7系统的附加任务到事件功能:

首先打开系统计算机管理窗口,展开其中的“系统工具”|“事件查看器”|“Windows日志”|“安全”分支,从该分支下找到刚才生成的“信息2011-10-2910:46:07安全审核”事件记录,用鼠标右击该事件选项,点选右键菜单中的“将任务附加到此事件”命令,打开附加任务向导对话框;

其次将附加的任务名称取为“文件被删时自动报警”,当系统屏幕上出现如图6所示的设置对话框时,选中“Start a program”选项,单击“next”按钮;单击“Browse”按钮,从弹出的文件选择对话框中,将保存在本地系统中的报警音乐文件选择并导入进来,再按“finish”按钮完成设置操作,这样一来用户日后听到报警音乐时,就能在第一时间知道文件被删事件发生了。

无线文件传输系统 篇4

本系统主要由发射端模块、接收端模块、中继站模块、电源模块组成, 下面分别论证这几个模块的选择。

1.1 通信方式的论证与选择

方案一:模拟方式通信。利用模拟的方式进行通信, 发射端由音频信号输入, 利用741运放对信号进行放大;再利用调制芯片对信号进行调频处理;接收端由运放、解调芯片组成, 对通过红外传来的信号进行放大、滤波、解调和输出。该方案失真度低, 但是抗干扰能力弱, 在一定距离后噪声明显加大。

方案二:数字方式通信。通过FPGA对信号AD采样, 采样频率为5K, 将一个数据周期分成512份, 根据AD采样值调节第127到第352个时间片段中‘1’的出现个数从而改变占空比。另一方面, 在缩小占空比的时候可以提高瞬间电流峰值, 从而提高瞬间的红外传输距离, 增强了传输效果。但是该方案需要经过门限判决, 在这一过程中会发生门限的不准确, 导致得到的信息丢失, 传输效果差。同时该方法未经过调制, 抗干扰能力弱, 在高频段信号无法发射, 低频段损失严重。并且由于该方法涉及到采样速率的问题, 随着频率的升高, 失真愈发严重。

方案三:模拟, 数字双通道通信。红外二极管按照波段的划分分成很多种, 典型值为940nm和850nm两种工作波段。两种波段在工作时互相不发生干扰或发生极小的干扰, 所以可以基于波段的划分利用两路红外信道分别传输信息。综合以上三种方案, 选择方案三。

1.2 调制方式的论证与选择

方案一:幅度调制。对需要传递的信号进行幅度调制, 即调幅, 将音频信号加载在载波信号上, 形成调幅波, 传递出去, 再通过解调形成原信号。但是方案一在解调方面会有很大的困难。在该通信系统中, 载波频率与调制信号频率相差过小, 不能使用常见的包络检波, 相干解调法电路也实现复杂。

方案二:相位调制。载波的相位对其参考相位的偏离值随调制信号的瞬时值成比例变化。在实际的应用中很少使用调相值, 它主要是用来作为得到调频的一种方法。

方案三:频率调制。对信号进行频率调制, 根据信号幅值的大小让信号形成疏密不同的一列波, 加载音频信号的信息, 通过红外传递出去, 并在接收端进行相应的解调。该方案信道利用率高, 数据传输稳定, 调制解调电路易于实现。综合以上三种方案, 选择方案三。

1.3 温度控制的论证与选择

方案一:用FPGA进行温度信息编辑和显示。但是限于FPGA的并行工作方式, 在顺序逻辑方面尤其是在界面等显示方面有编程的困难。

方案二:单片机。单片机虽然速度达不到很高, 但是在该方案中, 对于温度的采集只需要达到5Hz即可, 对于如此低的频率, 单片机已经可以足够应付, 并且由于单片机C语言的顺序执行的特性, 所以在数据的显示, 用户友好界面方面相较于FPGA有很大的优势。综合考虑采用单片机对温度进行采集、编码、传输, 并对接收到的数据进行处理并显示。

2 系统理论分析与计算

2.1 发射端模块

发射模块包括音频信号放大, 音频信号滤波, 音频信号调制, 温度数字信号的编码, 温度数字信号的传输。

2.1.1 音频信号的放大

将音频信号经过同相运放进行预加重, 放大部分的反馈被分离, 产生的闭环电压增益随着输入频率增加稳定地上升, 在最高音频时增益接近20d B。在频率超过音频范围时, 放大部分限制闭环电压增益。该放大部分可以避免高频的不稳定性, 也可避免可能被滤波器级消除的高频信号被放大器放大。

2.1.2 音频信号的滤波

发射端音频信号的滤波器是由放大IC构成的常规三阶型 (每倍频程18d B) 滤波器, 此滤波器产生低于20k Hz的全音频带宽, 但不会明显损害输入信号质量。放大器的输出直接耦合到下一级。

2.1.3 音频信号的调制

经过锁相环, 对输入的信号进行调频, 并且输出至下一级红外发射二极管, 使发射二极管产生与经过调制后的信号对应的红外信号, 通过红外信道向外传输。

2.1.4 温度数字信号的编码

温度信号采用PCM编码, PCM (脉冲编码调制) 是数字通信的编码方式之一。主要过程是将语音、图像等模拟信号每隔一定时间进行取样, 使其离散化, 同时将抽样值按分层单位四舍五入取整量化, 同时将抽样值按一组二进制码来表示抽样脉冲的幅值。语音PCM的抽样频率为8k Hz, 每个量化样值对应一个8位二进制码, 故语音数字编码信号的速率为8bits×8k Hz=64kb/s。量化噪声随量化级数的增多和级差的缩小而减小。量化级数增多即样值个数增多, 就要求更长的二进制编码。因此, 量化噪声随二进制编码的位数增多而减小, 即随数字编码信号的速率提高而减小。自然界中的声音非常复杂, 波形极其复杂, 通常我们采用的是脉冲代码调制编码, 即PCM编码。PCM通过抽样、量化、编码三个步骤将连续变化的模拟信号转换为数字编码。

2.1.5 温度数字信号的传输

每隔一定时间间隔, 给红外发射管一个高脉冲, 为了提高传输距离, 采用占空比压缩的方式来传输。红外发射管的平均功率很低, 但是瞬时功率可以达到很高, 利用高脉冲压缩时间, 可以传输大功率信号。

2.2 接收端模块

接收端模块包括调制信号的检测, 调制信号的预放大, 调制信号的解调。

2.2.1 调制信号的检测

通过四个红外二极管并联组成检测器, 同时使红外二极管保持在反相偏置连接, 在黑暗的环境下只有很小的漏电电流产生。发射机的红外脉冲使二极管的漏电流增加, 在它们的阴极产生负脉冲。

2.2.2 调制信号的预放大

使用晶体管作为低噪声放大器和缓冲器, 通过负反馈, 使电压增益比保持在较低的值 (约为24d B) , 对灵敏度产生很大的改进。然后经过共射极晶体管进一步放大调制信号。

2.2.3 调制信号的解调

通过锁相环IC CD4046对信号解调。CD4046是通用的CMOS锁相环集成电路。CD4046锁相的意义是相位同步的自动控制, 功能是完成两个电信号相位同步的自动控制闭环系统叫做锁相环, 简称PLL。广泛应用于广播通信、频率合成、自动控制及时钟同步等技术领域。锁相环主要有相位比较器、压控振荡器、低通滤波器三部分组成。如图1所示。

2.3 中继站模块

2.3.1 调制信号的检测

与接收模块的信号检测相同, 用红外接收二极管对红外信号进行检测。

2.3.2 调制信号的调理

将红外接收二极管接收到的信号经过放大和滤波后输出, 再由相应的红外发射管发射, 并使传递方向发生90°翻转, 再传递两米到红外接收端。

3电路与程序设计

3.1电路的设计

3.1.1系统总体框图 (如图2所示)

3.1.2发送端子系统框图与电路原理图

(1) 前置放大器子系统电路。前端放大器用于给输入的信号起到一个放大作用, 可通过电位器实现连续可调, 能更好地控制输入信号。加入了调零电路, 以免给后级带来直流偏置。 (2) 红外发射管电路。用三极管的开关状态来驱动红外二极管的工作。利用调制芯片, 将输入的音频信号转化为调频信号, 示波器显示为疏密变化的方波。

3.1.3接收端子系统框图与电路原理图

(1) 高倍放大器子系统电路 (如图3所示) 。该电路用于放大红外接收端收到的很弱的信号, 该信号也可由多级三极管构成高倍放大。其中NE5532是高性能低噪声双运算放大器集成电路。与很多标准运放相似, 但它具有更好的噪声性能, 优良的输出驱动能力及相当高的小信号带宽, 电源电压范围大等特点。因此很适合应用在高品质和专业音响设备、一起、控制电路及电话通道放大器。

(2) 红外接收模块。被分为放大、解调、功放三个部分组成, 放大即放大接收到的小信号, (注:可采用上述集成运算放大器, 也可采用三极管组成的多级放大器) 。解调部分对前级放大的信号进行解调, 功放部分实现功率的放大, 用于带耳机或者音响等设备。

3.1.4电源

电源由变压部分、滤波部分、稳压部分组成。为整个系统提供±5V或者±12V电压, 确保电路的正常稳定工作。由LM317、LM337构成的可调电压电源。

3.2 程序的设计

3.2.1 程序功能描述与设计思路

(1) 程序功能描述。DS18B20温度传感器, 采集温度信息, 将信息传递给单片机, 单片机将该信号处理为8位信号, 传递给FPGA, FPGA对信号进行编码, 将信息通过红外发射出去, 另一端的红外接收, 并将信息传递给FPGA进行解码。显示部分通过128*64液晶屏幕显示温度信息。

(2) 程序设计思路

3.2.2 程序流程图

(1) 温度发送模块子程序流程图

(2) 温度接收模块子程序流程图

4 测试方案与测试结果

4.1 测试方案

4.1.1硬件测试。 (1) 红外音频传输测试。在接收端通过功放进行放大输出, 比较输入和输出的声音, 凭借人耳判断失真度。 (2) 红外失真度。通过示波器检测输入和输出端的波形并进行比较, 测量是否发生削顶等失真情况。 (3) 温度信息传输测试。通过在接收端进行1602液晶显示将温度在液晶屏上显示出来并与实际温度作比较, 测试温度传输的准确性。

4.1.2硬件软件联调。综合连接元器件, 将所有元器件摆放好, 接通信号源和电源, 检测两侧的波形比较失真度, 信息误码率, 传输速率等信息。

4.2 测试条件与仪器

测试条件:检查多次, 仿真电路和硬件电路必须与系统原理图完全相同, 并且检查无误, 硬件电路保证无虚焊。

测试仪器:高精度的数字毫伏表, 模拟示波器, 数字示波器, 数字万用表, 指针式万用表。

4.3 测试结果及分析

4.3.1 测试结果 (数据)

通信距离测试

800Hz通信测试

当信号为800Hz时, 4V正弦波, 测量8欧姆电压有效值, 性能优异。

4.3.2 测试分析与结论

根据上述测试数据, 可知系统有很好的保真能力和通信能力, 由此可以得出以下结论:信号传输能到达很远距离, 没测过极限值, 不过在四米处仍能清晰听到音乐, 感觉不到有噪声。输入正弦波时, 在远处 (两米外) , 观察波形很稳定, 而且噪声很小, 不到10mv。

摘要:本系统为无线文件传输系统, 用红外发射二极管和红外接收二极管, 定向传输音频信号, 实现远距离的传输, 保证信号的保真。同时可以保证信号的实时传输, 延迟度不超过10s。通过中继站, 可以将信号延长至4m以上的距离并且几乎不失真。该装置分为模拟和数字部分, 模拟部分经过锁相环芯片进行调频, 通过红外信道传输信号, 接收端再通过一个锁相环芯片对模拟信号进行解调, 经过滤波和放大完成音频传输。本系统用于定点定向传输, 点对点的传输方式保证速度和带宽的同时也提高了安全性 (第三方无从获取) 。

关键词:编码解码,红外信道,模拟调制

参考文献

[1]远坂俊昭.测量电子电路设计——滤波器篇[M].科学出版社, 2006.

[2]谭博学, 苗汇静.集成电路原理及应用[M].电子工业出版社, 2005.

[3]何斌.FPGA数字信号处理实现原理及方法[M].清华大学出版社, 2009.

[4]黄智伟.全国大学生电子设计竞赛——电路设计 (第二版) [M].北京航空航天大学出版社, 2011.

[5]黄智伟.全国大学生电子设计竞赛——系统设计[M].北京航空航天大学出版社, 2006.

[6] (美) U.Meyer-Baese, 著.数字信号处理的FPGA实现[M].刘凌, 译.清华大学出版社, 2011.

[7]曹志刚.现代通信原理[M].清华大学出版社, 2008.

[8]董在望.通信电路原理 (第二版) [M].高等教育出版社, 2002.

[9]晏磊.基于FPGA曼彻斯特码数据传输系统的实现[D].郑州解放军信息工程大学.

[10]沈睿, 李驿华.曼彻斯特码编码与解码硬件实现[D].北京航空航天大学, 2002.

烟草系统文件 篇5

2014年全国烟草工作会议精神传达提纲

2014年全国烟草工作会议于1月16日至17日在北京召开。这次会议的主要任务是,认真学习贯彻党的十八大和中央经济工作会议精神,贯彻全国工业和信息化工作会议精神,紧密联系行业实际,总结2013年工作,安排部署2014年任务,进一步推动行业持续健康发展。

会上,工业和信息化部党组书记、部长苗圩在讲话中指出,去年烟草行业在新老领导班子带领下,紧紧围绕“卷烟上水平”基本方针和战略任务,聚焦重点品牌,优化烟叶结构,提高队伍素质,全面完成年初确定的目标任务,各项工作取得了新的成效。苗圩强调,2014年烟草行业要认真学习贯彻党的十八届三中全会、中央经济工作会议精神及全国工业和信息化工作会议部署,齐心协力、开拓进取、扎实工作,促进烟草行业持续健康发展,为我国经济社会发展作出新的贡献。一要着力深化行业改革。坚持市场化改革方向,积极探索市场资源配置的新途径和新举措,加快建设统一开放、竞争有序的市场体系,不断增强行业发展的动力和活力。二要着力促进行业可持续发展。加快形成品牌竞争发展的市场格

局,扎实推进烟叶生产可持续发展,继续强化卷烟市场监管和打假打私,加快实施“走出去”发展战略。三要着力推进控烟履约工作。从党和国家大局出发,积极履行社会责任,认真落实《中国烟草控制规划(2012——2015年)》,扎实抓好控烟履约各项工作。四要着力加强干部队伍建设和作风建设。进一步加强干部队伍特别是直属单位领导班子建设,着力构建有效管用、简便易行的选人用人机制;进一步改进工作作风,坚持不懈地抓好反腐倡廉建设,加强对行业内部生产经营行为的规范管理。

会上,国家烟草专卖局党组书记、局长,中国烟草总公司总经理凌成兴在工作报告中指出,2013年,行业坚持稳中求进的工作总基调,以提高经济增长的质量和效益为中心,继续围绕“卷烟上水平”基本方针和战略任务,全面抓好各项工作,保持了生产经营良好发展态势,实现了“三个稳中有为”,即烟叶生产稳中有为、卷烟产销稳中有为、税利总额稳中有为;做到了“五个扎实推进”,即执行中央八项规定和反腐倡廉建设扎实推进、党的群众路线教育实践活动扎实推进、经济运行调控工作扎实推进、专卖打假和规范管理扎实推进、科技创新和技改工作扎实推进。

凌成兴强调,必须把党的十八届三中全会精神转化为行业改革的指南、发展的动力、工作的业绩,在谋划“三大课题”、提升“五个形象”上下功夫,见实效。谋划“三大课题”,一是谋划改革的红利在哪里。要坚持社会主义市场经济改革方向,式,改革卷烟订单采集方式,完善卷烟货源供应规则。四是千方百计实现货币资金保值增值和降低营销费用,切实加强存量资金管理,稳步提升行业资金运营水平,着力强化费用节流工作。五是千方百计拓展国际市场,加快打造境外卷烟产销基地,加快推进境外烟叶实体运作,加快烟机工业“请进来”、“走出去”步伐,大胆探索跨国并购海外烟草企业。“三个坚定不移”,一是坚定不移抓好烟草专卖,理直气壮地宣传烟草专卖制度,自觉维护烟草专卖法律法规,始终保持打假高压态势,模范遵守专卖法规。二是坚定不移抓好规范管理,坚决执行中央八项规定,规范工程招标、物资(服务)采购工作,严格规范投资项目管理,切实加强审计监督,继续强化安全生产。三是坚定不移抓好领导班子和干部队伍建设,着力构建有效管用、简便易行的选人用人机制,大力加强行业党风廉政建设和反腐败工作,不断巩固党的群众路线教育实践活动成果。

国家烟草专卖局党组成员、副局长何泽华在会议总结讲话中指出,这次会议深入贯彻落实党的十八届三中全会精神,结合行业实际,提出谋划“三大课题”、提升“五个形象”的目标要求,系统谋划了未来一个时期行业发展的宏伟蓝图,明确提出了实现蓝图的总体思路,对于进一步推动行业改革发展具有十分重要的指导意义。全行业要全面领会和深刻理解会议精神,充分认识到谋划“三大课题”是应对复杂形势变化的客观需要,是贯彻落实三中全会精神的重要举措,是行

分布式文件系统NTFS概述 篇6

关键词:文件系统;NTFS

中图分类号:TP316 文献标识码:A文章编号:1007-9599 (2011) 07-0000-01

NTFS Overview of Distributed File System

Zhang Hongxia,Li Fangfang,Xu Lingling

(Suizhou Vocational and Technical College,Suizhou441300,China)

Abstract:NTFS (New Technology File System) is a Windows NT operating environment and Windows NT Advanced Server network operating system environment file system.File system is the operating system for specific files on the disk or partition methods and data structures is to organize files on the disk method,but also refers to the disk for storing files or partitions,or file system type.

Keywords:File system;NTFS

文件系统中,对于不同配置的硬件,实际的文件大小从4GB到64GB不等。由于NTFS文件系统的开销较大,使用的最小分区应为50MB。NTFS提供了服务器或工作站所需的安全保障。在NTFS分区上,支持随机访问控制和拥有权,对共享文件夹无论采用FAT还是NTFS文件系统都可以指定权限,以免受到本地访问或远程访问的影响;对于在计算机上存储文件夹或单个文件,或者是通过连接到共享文件夹访问的用户,都可以指定权限,使每个用户只能按照系统赋予的权限进行操作,充分保护了系统和数据的安全。NTFS使用事务日志自动记录所有文件夹和文件更新,当出现系统损坏和电源故障等问题而引起操作失败后,系统能利用日志文件重做或恢复未成功的操作。主要的作用体现在两个方面:

一、通过NTFS许可保护网络资源

在Windows NT下,网络资源的本地安全性是通过NTFS许可权限来实现的。在一个格式化为NTFS的分区上,每个文件或者文件夹都可以单独的分配一个许可,这个许可使得这些资源具备更高级别的安全性,用户无论是在本机还是通过远程网络访问设有NTFS许可的资源,都必须具备访问这些资源的权限。

二、使用NTFS对单个文件和文件夹进行压缩

NTFS支持对单个文件或者目录的压缩。这种压缩不同于FAT结构中,对驱动器卷的压缩,其可控性和速度都要比FAT的磁盘压缩要好的多。

FAT文件系统的大部分缺点都直接来自其简单又过时的设计,比如由于没有考虑可能的安全和可靠性属性,导致后来很难在FAT分区上添加这些功能。相反,NTFS采用了一种全新的体系结构,不仅能支持许多高级的属性和功能,还使用了一个简单而优美的方案允许更多属性加入其中。

当创建NTFS分区的时候,首先创建的是卷启动扇区。它在结构上与FAT文件系统里的类似,并且是NTFS下少数几个不存储在主文件列表里的元数据之一。NTFS的卷启动扇区起始于分区的一个扇区,包含2个主要结构:

(一)BIOS参数块:包含卷的基本信息,比如标识卷的格式是NTFS。除此之外,NTFS提供了一个扩展BIOS参数块,包含其它卷信息,例如重要元数据文件的位置。

(二)卷启动代码:在NTFS里,这块程序代码表示如何装载Windows NT或2000操作系统。常见的过程是装载NTLDR,把控制权交给它,让它来装载操作系统的其他部分。

NTFS文件系统把所有的数据,无论用户的还是系统的,都存储成文件。所以有一部分文件对于NTFS是非常重要的,即元数据文件。元数据文件在NTFS卷格式化的时候自动产生,并组织在整个分区的前面。首先是主文件列表(MFT),它为每个文件或目录都保存一个记录,如果这个文件太小,那么整个文件就可能都存储在这个记录里。因为元数据文件在NTFS也是“文件”,所以它们在MFT里也有对应的记录。实际上,MFT的前16个记录就是为元数据文件保留的。

NTFS最初设计时就考虑了企业级的应用环境,所以它能支持非常大的分区。回想当初Windows NT发布时,FAT还只有FAT12和FAT16——FAT32还未出现。FAT16最大的分区大小是2GB,使用32KB的簇;或4GB,使用非标准的64KB簇,可能导致其他Windows版本不兼容。考虑到商业应用的巨大存储量,和商用服务器可能使用RAID磁盘阵列,如此小的分区肯定是不行的,NTFS必须突破这个限制。在NTFS里,一个分区的最大字节数是2的64次方,即16EB。NTFS是一个完全不同的文件系统,它在设计的时候硬盘的大小还在以几GB来衡量,而现在突然要处理上千万GB的卷,我们不得不进行仔细的考虑。

在Windows NT下,启动分区的大小有严格的限制。在安装的时候,Windows NT会预先创建一个FAT16分区。即使你明确指出把Windows NT安装到NTFS分区上,它也会这么做,然后把这个FAT16分区转化成NTFS分区。而Windows NT下FAT16分区最大是4GB,所以你的启动分区也只能这么大。由于有这些限制,许多NT系统都至少有2个分区——小些的作为操作系统启动分区,大些的存储用户数据。用户甚至发现这种组织方式非常好,因为它区分了操作系统文件和用户自己的文件。启动分区的最大限制在Windows 2000里被解除了,现在你能把整个磁盘划分到一个分区里面了。

因为NTFS是微软开发出来的技术,它的定位就是家用机系统所用的文件系统,因此在使用一定时间之后磁盘出现碎片还是无法避免,所以XP的用户对于“硬盘用久了,会出现碎片,速度会减慢,需要一个程序来整理,整理硬盘的时候不要做其它工作”,这好像是天经地义的事情。 而对于Linux以及Unix似乎从来没有“整理硬盘”这种说法,不但可以对文件设置权限,实施完全的保护,而且可以“越用越整齐”,“越用碎片越少”!其实优缺点都是因为不同的定位,随着我们软件行业的不断发展,对于底层技术的逐渐掌握,相信以后会出现完全自主的产品。

参考文献:

[1]何炎祥.高级操作系统[M].北京:科学出版社

[2]Andrew S.Tanenbaum.分布式系统原型与范型[M].杨剑锋.北京:清华大学出版社

文件系统 篇7

当电脑的逻辑磁盘格式化为NTFS分区后, 就建立了一个NTFS文件系统, 为了确定$MFT主文件表的起始位置, 可以通过DBR扇区中的BPB参数块来获取, 如表2所示。

1 文件记录的结构

NTFS文件系统通过MFT主文件表中的文件记录来确定磁盘上文件 (或目录) 的位置和文件 (或目录) 的属性, 每个文件至少对应一个文件记录, 当一个文件较大时可能就有多个文件记录, 而存放其位置的第一个文件记录称为“基本文件记录”。文件记录由二部分组成:一部分是文件记录头;另一部分是属性列表。文件记录头的长度和偏移是不变的, 而属性列表的个数是可变的。其结构如表3所示。

文件记录头 (MFT项) 结构中字段的含义如表4所示。

2 文件记录中属性的结构

2.1 属性类型

一个NTFS文件系统中的文件所有信息, 包括文件数据在内, 都被看着是文件的属性。每个文件记录中一般包含多个属性, 属性之间相对独立, 有各自的类型和名称。一个属性偏移00~03H的4个字节, 为该属性的类型标志, 不同的属性其含义和结构各不相同, 由于与本例相关的属性仅有30H属性, 其他的属性含义请见参考文献[2], [3]。30H属性的类型和含义如表5所示。

2.2 属性结构

在文件记录中的每个属性由2部分组成, 一部分是属性头, 另一部分是属性体 (或称为属性内容) 。属性头的结构取决于两个要素, 一个是属性头是否有属性名, 另一个是该属性是否是常驻属性 (所谓常驻属性是指:某属性的属性头+属性体的全部可存放在文件记录中, 否则是非常驻属性。) , 这两个要素可以排列组合成4种不同的属性头, 即有:⑴常驻没有属性名;⑵常驻有属性名;⑶非常驻没有属性名;⑷非常驻有属性名。由于30H文件名属性总是常驻的, 所以这里仅介绍常驻的属性头。

2.2.1 常驻属性的属性头

常驻属性的属性头如表6所示。

2.2.2 30H属性结构

30H类型属性, 又称为文件名属性 ($FILE_NAME) , 该属性用于存储Unicode字符文件名 (注意:不论使用何种命名空间, 文件名都统一用Unicode字符表示) , 可容纳的文件名长度最大为255个Unicode字符。任何文件或目录在它的文件记录中都至少有一个文件名属性 (即30H属性) 。

在表7中30H属性内容偏移41H处用一个字节标志字段来表示30H属性的文件名命名空间也就是命名规则, 以指出该文件名属于哪一种名字空间, 在NTFS文件系统中, 可能出现的命名空间字段有以下4种:

(1) 00:POSIX (可移植操作系统接口)

POSIX是最大的文件命名空间, 它允许除了空字符 (00H) 和向前的斜杠“/”以外的所有Unicode字符集, 最大文件名长度为255个字。文件名大小写敏感, 在POSIX环境下, ZHANG.doc、Zhang.doc、zhang.doc分别表示的是3个不同的文件名。

(2) 01:Win32

Win32是POSIX命名空间的一个子集, 它使用除“‘’*/:<>?|”之外的所有Unicode字符集, 但名字不能以“.”或空格结束。

(3) 02:DOS

DOS是Win32命名空间的一个子集, 采用8.3格式的文件名, 即文件名1~8个字符, 后跟一个“.”, 然后是扩展名0~3个字符, 文件名全部使用大写字符, 不区分大小写字符。如ZHANG.doc、Zhang.doc、ZHANG.DOC代表同一个文件名。

(4) 03:Win32&DOS

Win32和DOS共用一个文件名, 采用8.3格式的文件名命名方法, 不区分大小写字符, 即ur Drive.exe与Urdrive.exe是同一文件名。

笔者在自己的电脑上观察发现:当文件或目录名的长度不超过8个字符 (含8个字符) 时 (如果是文件, 其扩展名不超过3个字符, 含3个字符) , 文件名或目录名总是采用Win32$DOS命名空间的;除此以外, 文件名或目录名总是采用二种命名空间, 一种是DOS命名空间, 另一种是Win32命名空间。

3 目录和文件记录号 (链) 的获取

在NTFS文件系统MFT的文件记录中, 记录着文件全路径名中的每一级目录名或文件名, 如某文件的全路径名是:F:masm32binzzmasm32anticopy.exe, 那么全路径名可拆分为F:———根目录、masm32———二级目录、bin———三级目录、zzmasm32———四级目录和anticopy.exe———五级文件名, 各级目录名和文件名分别对应着MFT主文件表中不同的文件记录。为了说明方便, 在这里把目录名和文件名都统称为文件名。在文件名对应的文件记录的记录头中偏移2CH处, 记录了该文件名的文件记录号;在该文件记录的30H属性的属性体中, 偏移开始的4个字节, 就是该文件名的父目录文件记录号, 有了这些知识后就可以获取文件的文件记录号了, 即各级目录和文件的文件记录号组成的文件记录号。

在NTFS文件系统中, 根目录的文件记录号是05H, 根目录的父目录的文件记录号也是05H, 也就是说根目录的文件记录号是固定不变的并指向自身, 这一点很重要, 这可用于判断一个目录或文件的父目录是否是根目录。因此, 可从根目录下的目录名或文件名开始依次查找其目录或文件的文件记录号。注意一个原则:就是同一个目录下没有相同的文件名和目录名。另外还要注意, 在查找前需要将文件名和各级目录名依次转换为Unicode文件名, 因为30H文件名属性中的文件名是Unicode码。查找步骤如下:

(1) 在MFT的文件记录数组中 (也就是从文件记录号0开始) 查找30H文件名属性。

(2) 找到了30H属性后, 检查其中的文件名是否是与要找的文件名相同;相同则转 (3) , 不相同则转 (1) , 继续查找。

(3) 文件名找到了, 上级目录是根目录, 则转 (4) ;上级目录非根目录, 则转 (6) 。

(4) 检查该30H属性中的父目录文件记录号是否是05h, 是则转 (5) , 不是则转 (1) , 继续查找。

(5) 如根目录下是一个文件名, 记录下该文件名的文件记录号后退出;是一个目录则记录下该目录的文件记录号, 同时该文件记录号也是下一级目录或文件的父目录文件记录号;转 (1) , 继续查找。

(6) 如该目录下是一个文件名, 则核对该文件名的父目录的文件记录号是否等于上级目录的文件记录号, 相等则记录该文件的文件记录号后退出;不相等则转 (1) , 继续查找。

如该目录下仍是一个目录, 则核对该目录的父目录是否等于上级目录的文件记录号, 相等则记录该目录的文件记录号转 (1) 继续查找;不相等则直接转 (1) 继续查找。

按照上面搜索文件记录号的步骤, 给出主要程序代码如下:

4 在PE文件上附加代码的说明

(1) 在PE文件上附加代码的基本原理

参见本文参考文献[4]。

(2) 在PE文件的附加代码里搜索目录和文件的文件记录号 (链) 的方法同前面介绍的原理完全相同, 只是须对全局变量进行重定位处理。为清晰起见, 这里给出搜索文件记录号的主要流程框图如图1所示。

5 结语

由于Windows 2000的NTFS文件系统中没有文件记录号, 所以本文所介绍的利用文件记录号加密方法仅适用于Windows XP NTFS文件系统, 因此, 此加密方法不能用于Windows2000的NTFS系统。

摘要:在NTFS文件系统中, 每个文件或目录都有一个唯一对应的文件记录号, 利用目录和文件记录号 (链) 作为一种加密密码, 可用于PE文件的防拷贝保护。用Win32汇编语言, 编程实现了目录和文件的文件记录号 (链) 的查找, PE文件的加密保护, 在Windows XP环境下进行了测试, 效果良好。

关键词:NTFS文件系统,PE文件,文件记录号

参考文献

[1]涂彦晖.戴士剑, 编著.数据安全与编程技术.北京:清华大学出版社, 2005.

[2]刘伟, 编著.数据恢复技术深度揭秘.北京:电子工业出版社, 2010.

[3]马林, 编著.数据重现——文件系统原理精解与数据恢复最佳实践.北京:清华大学出版社, 2009.

文件系统 篇8

目前数据安全对企业以及个人用户越来越重要, 因此容灾和远程备份技术正成为目前研究的热点。当前linux下较成熟的文件同步软件rsync等提供了文件同步功能, 但他们的问题也很明显:首先, 不能实时监控文件系统来判断文件的更新变化, 而只能通过守护进程或者手动的方式进行指定文件的同步;其次, 未能考虑到企业中的一些特别的需求, 对主机两端实时数据文件的同步没有实现;再次, 传统的软件都是利用定点备份的方法, 设置一个时间段, 每隔一个时间段备份一次, 数据实时性较低。

本文提出了一种基于文件操作时间的差异备份方法, 利用linux下的inotify机制对文件进行实时监控, 当用户对所监控文件进行修改后, 捕获文件的变化信息, 转化为程序可识别时间, 对文件操作进行记录, 然后利用rsync经典算法计算出差异数据, 通过网路进行传输。

2. inotify机制介绍

inotify的API都使用文件描述符, 这样可以将监控粒度控制到单个文件, 而dnotify机制的控制粒度则为单个目录。使用文件描述符更大的优势在于对inotify的操作也可以使用read () 、close () 、select () 等这些传统的文件操作函数。

2.1 int inotify_init (void)

创建并初始化一个inotify实例, 该函数返回一个文件描述符。可以认为这个函数是打开一个inotify类型的文件并返回该类型文件的描述符。

2.2 int inotify_add_watch (int__fd, const char*__name, uint32_t__mask)

增加监视文件 (监视器) , fd用于指明该文件被添加于哪个inotify实例, name用于指名该文件的路径, mask则指明了该文件所有的监控事件。该函数调用成功后返回一个监视器的描述符。

2.3 int inotify_rm_watch (int__fd, int__wd)

从fd中删除一个监视器, wd指名具体的监视器。

3. Rsync算法介绍

rsync是unix/linux下同步文件的一个高效算法, 它能同步更新两处计算机的文件与目录, 并适当利用查找文件中的不同块以减少数据传输。rsync中一项与其他大部分类似程序或协定中所未见的重要特性是镜像只对有变更的部分进行传送。rsync可拷贝/显示目录属性, 以及拷贝文件, 并可选择性地压缩以及递归拷贝。rsync利用由Andrew Tridgell发明的算法。rsync的算法如下: (假设我们同步源文件名为file Src, 同步目的文件叫file Dst)

(1) 分块Checksum算法。首先, 我们会把file Dst的文件平均切分成若干个小块, 比如每块512个字节 (最后一块会小于这个数) , 然后对每块计算两个checksum, 一个叫rolling checksum, 是弱checksum, 32位的checksum, 其使用的是Mark Adler发明的adler-32算法, 另一个是强checksum, 128位的, 用md5 hash算法, checksum算法定义如下:

a (k, l) = (∑Xi) mod M

b (k, l) = ( (l-i+1) Xi) mod M

s (k, l) =a (k, l) +216b (k, l)

上面公式中, s (k, l) 表示数据块Xk, ..., Xl的滚动校验值, 为了简化计算, M取值为216。这种校验计算公式具有一个非常关键的特性, 就是后续校验值可以通过递推关系高效地计算获得。

a (k+1, l+1) = (a (k, l) -Xk+Xl+1) ) mod M

b (k+1, l+1) = (b (k, l) - (l-k+1) Xk+a (k+1, l+1) ) mod M

s (k+1, l+1) =a (k+1, l+1) +216b (k+1, l+1)

因此, 给定X1, ..., Xn的校验值, X1以及Xn+1, 我们就可以快速地计算出X2, ..., Xn+1校验值。这样, 利用这种性质我们就可以高效地计算数据块连续校验值, 大幅减少checksum计算量。

(2) 传输算法。同步目标端会把file Dst的一个checksum列表传给同步源, 这个列表里包括了三个东西, rolling checksum (32bits) , md5 checksume (128bits) , 文件块编号。

(3) checksum查找算法。同步源端拿到file Dst的checksum数组后, 会把这个数据存到一个hash table中, 用rolling checksum做hash, 以便获得O (1) 时间复杂度的查找性能。这个hash table是16bits的, 所以, hash table的尺寸是2的16次方, 对rolling checksum的hash会被散列到0到2^16–1中的某个整数值。

(4) 比对算法。这是最关键的算法, 细节如下:

a.取file Src的第一个文件块 (我们假设的是512个长度) , 也就是从file Src的第1个字节到第512个字节, 取出来后进行rolling checksum计算。计算好的值再到hash表中进行查找。

b.如果查到了, 说明发现在file Dst中有潜在相同的文件块, 于是就再比较md5的checksum, 因为rolling checksume太弱了, 可能发生碰撞。于是还要算md5的128bits的checksum, 这样一来, 我们就有2^- (32+128) =2^-160的概率发生碰撞, 这个值太小了可以忽略。如果rolling checksum和md5 checksum都相同, 这说明在file Dst中有相同的块, 我们需要记下这一块在file Dst下的文件编号。

c.如果file Src的rolling checksum没有在hash table中找到, 那就不用算md5 checksum了。表示这一块中有不同的信息。总之, 只要rolling checksum或md5 checksum其中有一个在file Dst的checksum hash表中找不到匹配项, 那么就会触发算法对file Src的rolling动作。于是, 算法会住后step 1个字节, 取file Src中字节2-513的文件块要做checksum, go to (a) .

4. 系统框架图

本系统的服务端运行在linux系统下, 随系统启动。主要功能模块包括inotify监控模块, 控制模块, 文件数据处理模块, 网络通信模块, 日志记录模块和异常处理模块。

控制模块:监控管理备份系统的各个模块, 协调各个模块的运行。并统一管理备份系统中的日志信息和异常信息。

静态文件数据备份模块:静态文件数据备份模块主要完成对文件的完全备份。

实时文件数据备份模块:实现文件的差异备份, 采用经典的Rsync算法计算出更新文件的差量数据, 并通过网络传输模块完成对数据的传输。

网络传输模块:主要任务是完成服务器端与客户端的链接, 并且完成对数据的传输。

日志记录模块:以特定的格式记录每个模块中的状态信息, 在备份任务创建和完成以及由于某种原因中断时, 记录下状态信息。

异常处理模块:负责对备份系统异常信息的处理方法。

5. 静态文件备份模块流程图

静态文件备份流程详细描述:

(1) 程序开始接受客户端数据;

(2) 分析接受到的客户端数据对进行备份初始化;

(3) 分析接受到的客户端数据, 取得客户端发送来的需要备份的路径列表记录;

(4) 在路径记录列表中读取到一条记录以后获取路径信息, 并且将路径信息返回给客户端;

(5) 若路径为文件路径, 则按行读取文件的内容, 将其送往发送缓冲区, 之后数据通过网络发往客户端, 遇到EOF后返回;

(6) 判断源列表记录是否还有记录, 若有则返回步骤4, 若无则将结束标志发往客户端, 结束数据传输;

(7) 若路径为目录, 则递归的读取此目录下的所有文件, 将文件数据发往数据缓冲区, 通过网络将数据发往客户端, 若目录中没有未处理文件或者目录, 则返回6。

静态文件的备份主要是在客户端设置备份的周期, 若备份周期为一周, 则在第一次备份完一周以后再执行一次静态文件的备份。

6. 实时文件备份模块

6.1 实时监控模块流程图 (如图3)

6.2 实时文件备份模块中文件数据处理流程图 (如图4)

实时文件备份模块中文件数据处理详细流程:

(1) 等待文件更新变化的发生, 从事件队列中读取事件, 判断事件的类型;

(2) 有新建的文件或者有复制过来的文件, 则对文件内容划分数据块, 放入缓冲区, 并进行数据传输;

(3) 读取更新文件, 按照RSYNC算法计算两种校验码, 并与校验码附加文件中的校验码进行对比后计算出差量数据, 构建好完整的数据包后放入缓冲区, 通过网络传输到客户端。基于RSYNC算法的文件内容更新步骤如下:

a.在服务器端, 当为指定的文件进行监控初始化时, 建立一个校验码附加文件, 将原始文件filesrc平均分成大小为b字节的若干个小块Bi, 针对每个数据块bi, 计算出两个校验码ri和mi, 即滚动校验码和MD5哈希函数, 在实际的对比过程中, 滚动校验码用来区别不同, 而MD5哈希函数是用来确认相同。将这两个校验码和文件相关信息存储为附加校验码文件checksum.txt。

b.在有更新事件发生后, 读取旧文件的checksum.txt文件中的校验列表, 并为该校验列表建立哈希表, 针对校验码序列, 遍历新文件, 按照同样的方式对新文件进行分块, 从第一块开始, 先计算出滚动校验码, 在哈希表中查找, 若有匹配, 且之后计算出的MD5校验码也匹配, 则将索引号组织为更新包放到缓冲区, 然后后移一块, 对比下一块;如果在哈希表中找不到相应的滚动校验码或者找到滚动校验码之后对应的MD5码不匹配, 则表示这一块中有不同的信息, 后移一个字节后分块, 再计算滚动校验码, 重复这样的过程直到比较完整个文件。

c.通过网络传输数据更新包。

d.在客户端, 通过服务器传输过来的更新同步数据包和旧文件来构建新文件。

7. 系统实现

本系统服务器端采用Cent OS6.2系统, 功能实现主要采用c语言和shell脚本来完成, 分别实现了静态文件备份和实时文件备份。为了简化用户操作步骤, 缩短用户熟练使用软件的周期, 客户端采用MS windows server2003系统, 用c语言集合面向对象语言c++完成了人机交互界面和相应代码程序。客户端和服务器采用soket方式连接。

8. 结语

本文介绍了一种新的linux下远程文件同步模型——基于Rsunc算法的远程文件同步系统。该远程文件同步系统提高了系统运行效率和提供较高的可扩展性, 弥补了当前linux下远程同步软件所存在的特殊要求不可达、带宽占用多等问题。

参考文献

[1]彭勇, 刘晓洁, 邓洪敏.《基于差异的远程文件备份与恢复方法》[J].四川大学学报, 2009.

[2]李波, 朱坤.《基于局域网的数据库文件备份》[J].农业网络信息, 2007, (10) .

[3]李夷苒, 李涛, 胡晓勤, 马晓旭.《基于事件的文件备份方法研究与实现》[J].计算机工程与设计, 2010, (21) .

自分类自存储文件系统 篇9

1 理论说明

Linux文件系统中在查找文件时, 需要用户提供路径, 系统根据路径找到文件的i节点, 通过i节点号找到文件由于软连接的存在, 因此一个文件允许存在多个i节点号但一个节点号只对应一个文件, 因此记录文件的任意i节点号就可以找到文件。

主要思路:通过为每个文件建立一套权限区分体系, 使文件按照类别以及所属的应用程序进行区分, 操作系统借助这个体系不使用繁杂的拓展名对文件分类的方式就可以完成对同类型文件的分类管理。

2 具体实现

2.1 前期的准备工作

(1) 在file_table.c中的fs.h下数据结构dir_entry写入两个变量分别为

定义如下:i_right表示文件的调用权限, 并做出规定, 1为文本文件, 2为图像, 以此类推, 0被认为是所有类型文件。

I_app表示文件所属的应用程序, 0代表所有程序都允许调用, 否则写入每个应用程序的唯一编码。

(2) 创建哈希表, 分别对应i_right和对应类型的文件的上一层 (父一层) i节点号, 从而可以通过不同的分类直接进入到本类型文件的存储位置之中。

创建哈希表, 分别对应i_right和目录的filepath。为了尽量少的对原有文件系统的修改而增加的一张表, linux中的查找操作都是基于路径间接查找, 为了利用原有代码而不需要做大幅度改动原有结构因此增加这一张表, 在文件系统中系统通过路径找到i节点号再找到文件, 并因为路径具有唯一对应的文件, 而每一个i节点也可以找到唯一对应的文件且与路径存在一一对应关系 (详见fs.h下dir_entry结构体) , 因此在实际试验中某些需要传入路径作为参数的函数不再进行修改, 使用路径近似代替i节点号。

建立一个二级列表, 第一级可以通过i_app找到第二级的列表, 第二级中的列表可以通过i_right找到对应文件的文件名, i节点号

2.2文件存入的过程

文件在存入时需要两个参数, 先传入i_right, 系统查找哈希表获得对应文件的上一层i节点, 并将文件存入这个位置, 这样就实现了文件的自动存储, 构成物理曾。再传入i_app, 系统将参数写入二级列表, 实现文件的集中管理, 构成逻辑层。

2.3 查询文件的过程

在内核open.c的open函数中增加2.1中的两个参数, 应用程序在读出文件时需要提供目标文件的i_app, 系统会返回属于应用程序的所有文件列表, 再传入一个i_right就可以返回同时满足两个条件的文件, 也就是当前应用程序可以调用的并且满足分类要求的文件。

2.4 对第二部分的总结

在文件查询部分的描述中我们基本能够得到结论, 对于文件系统的修改基于原有文件系统并不复杂但是可以有效屏蔽中间路径。在应用程序保存文件时用户可以直接选择文件类型找到文件的上一层目录, 调用函数如下

对其进行修改或重载, 本文将路径与i节点号建立一张表来完成转换。因此当文件存入时只要有完整的i_right和i_app就可以实现文件的自动存储, i_app可以通过应用程序自动写入, 而i_right需要用户判断或者应用程序的干预。

3 进一步设想

在这一部分中不提供具体试验内容。提供一个新的思路, 即新文件系统。目的:为统一各种设备并能够实现文件的完全分类。实现一种跨平台的文件传输以及自动分类存储。

3.1 主要思路

创造一个完整, 半封闭的文件管理体系, 文件在被建立时就已经完成了对文件的分类和从属的设置, 当这个文件被其他设备拷贝时, 这些参数随着文件被保留下来, 成为其他设备进行自动分类, 自动存储, 快速查找的依据。这就成为新系统的主要的结构。

3.2 实现

在第二部分的基础上进行进一步的修改。在应用程序创建文件时, 通过自动或者用户输入的方式完成对文件参数的写入过程。

(1) 在用户调用时, 不再使用原有的文件资源管理程序, 用户调用文件时需要通过应用程序进行调用, 这样就可以有效利用程序的不同编码完成对文件的基本定位甚至精确查找。

(2) 在应用程序删除时, 将二级列表下的每一个项目均级联删除。

(3) 在文件被传输时, 只允许i_app相同的两个应用程序之间进行传输, 传输中所有的信息被一同输送, 在目标端依照既定原则进行自动存储以及写入对应表。

4 应用价值

(1) 家用设备以及移动设备。在使用同一个文件系统的各个设备上, 文件被自动分类存放, 用户只需要提供概略的分类就可以找到文件所在的概略位置而且通过应用程序可以更加快速找到文件, 避免卸载。

(2) 云存储。在云存储中, 可以将参数i_app作为用户的身份识别, 可以利用文件系统的逻辑层完成对用户数据的管理。

参考文献

[1]赵炯.linux内核完全剖析-基于0.12内核[M].北京:机械工业出版社, 2009 (11) .

[2]博韦.深入理解LINUX内核[M].北京:中国电力出版社, 2004 (6) .

文件加密系统设计与实现 篇10

关键词:密码学,DES算法,RSA算法,加密系统设计

1 绪言

随着Internet的发展人类已经步入信息时代,在信息时代,信息安全问题越来越重要。我们经常需要一种措施来保护我们的数据,防止被一些怀有不良用心的人所看到或者破坏。因此,在客观上就需要一种强有力的安全措施来保护机密数据不被窃取或篡改。解决这个问题的方式就是数据加密[1]。近年来,保护个人敏感数据成为人们关注的热点问题。使用加密技术是一种比较成功的保护方法。特别是在当今相互合作以及公共工作环境下,电脑中的资料可能对于写工作人员时可见的而对于另外一些工作人员是不可见的,对于一些文件进行加密是有必要的[2]。因此选择这个方面作为自己的论文研究方向,想通过对数据加密方法的研究对密码学有一个全面的认识,同时在研究过程中对当前已经比较成熟的加密算法进行学习并且总结和比较得出自己的结论并结合需求分析选择几种常见的加密算法设计、实现一个自己的单机文件加密系统。

2 系统采用的关键技术

公开密钥密码系统一般是基于数学上难解的问题,所以其安全性高,同时,密钥的管理比较容易。缺点是它的密钥太长、运算速度比对称算法的慢很多;公开密钥密码系统生成一对公私钥的速度比较慢,通常需要几分钟以上,从而对有大量用户的系统而言,服务器的工作效率不高[3]。

鉴于对称密钥密码算法和公开密钥密码算法的特点,综合使用DES对称密钥加密算法和RSA公开密钥加密算法来保障信息安全。大量数据用64bit密码长度的DES对称密码算法进行加密,而公开密钥密码算法则使用1024bit长度的RSA公开密钥加密算法进行加密,此种方法既保证了数据信息的安全又提高了数据加密和解密的速度,实现了对数据信息安全、加密效率的要求[4]。

2.1 DES算法的实现过程

DES工作的基本原理是,其入口参数有三个:key、data、mode。其中Key为8个字节共64位,是DES算法的工作密钥;Data也为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密。实际运用中,密钥只用到了64位中的56位,这样才具有高的安全性[4]。

DES算法是这样工作的:如Mode为加密,则用Key去把数据Data进行加密,生成Data的密码形式(64位)作为DES的输出结果;如Mode为解密,则用Key去把密码形式的数据Data解密,还原为Data的明码形式(64位)作为DES的输出结果[5]。

对于单机用户用于保存不需在网络中传递的文件则只需要在加密的时候输入一个自己熟悉但相对来说比较复杂不易被其他人破解的密码串就行,记住该密码串在解密的时候输入就行。

DES算法具有极高安全性,到目前为止,除了用穷举搜索法对DES算法进行攻击外,还没有发现更有效的办法。而56位长的密钥的穷举空间为256,这意味着如果一台计算机的速度是每一秒种检测一百万个密钥,则它搜索完全部密钥就需要将近2285年的时间,可见,这是难以实现的,当然,随着科学技术的发展,当出现超高速计算机后,我们可考虑把DES密钥的长度再增长一些,以此来达到更高的保密程度[6]。

2.2 RSA算法的实现过程

首先产生一对公钥和私钥:

(l)选取两个大素数p和q(10到20个十进制数或更大),为了获得最大程度的安全性,两个数的长度最好相同。两个素数p和q必须保密。

(2)计算p与q的乘积:n=p*q。

(3)再由p和q计算另一个数Z,Z=(p-1)*(q-1)。

(4)随机选取加密密钥e,使e和Z互素。

(5)用欧几里德扩展算法计算解密密钥d,以满足e*d=l mod(z)。

(6)由此而得到的两组数(n,e)和(n,d)分别被称为公开密钥和私人密钥,简称公钥和私钥[7]。

其次是加密过程:RSA算法是一种分组加密算法,加密消息M时,首先将它分成比n小的数据分组(采用二进制数,选取小于n的2的最大次幂),也就是说,p和q为100位的素数,那么n将有200位,每个消息分组m,应小于200位长(如果需要加密固定的消息分组,那么可以在它的左边填充一些0并且保证该数比n小)。加密后的密文C,将由相同长度的分组组成。

由上述RSA算法可知:若n被因式分解,则RSA便可以被击破。因为n=p*q,如果p和q已知,那么Z=(p-1)*(q-1)便可以算出,故满足条件e*d=l mod(Z)的解密密钥d也不难求出。因此RSA的安全性完全依赖于大数的分解难度。RSA算法的公开密钥和私人密钥是一对大素数(10到20个十进制数或更大)的函数。从一个公开密钥和密文中恢复出明文的难度等价于分解两个大素数之积[8]。目前因子分解速度最快的方法,其时间复杂性为:exp(Sqrt(ln(n)lnln(n))).从技术上讲,这种安全性只是一种推测。

3 系统的设计与实现

根据需求分析,本系统的主要功能是保护存储在电脑的文件不被非法用户盗取后读取信息,面向用户主要是单机用户以及多用户系统,不涉及到网络传输,结合对称密钥加密体制和公开密钥加密体制的优缺点。设计主要功能有:读取文件路径,利用DES算法对文本文件中的数据进行加密和解密,利用RSA算法将DES算法的密钥加密并保存即密钥导出功能;同时可以导入加密后的DES密钥文件对其解密后辅助完成利用DES算法对数据的解密。主要功能如图1所示。

与此同时考虑到加密后密钥的安全问题以及当前移动存储介质的普遍使用,系统可以将保存加密后的DES密钥的文件导出到移动存储介质中,以便更好的保护密钥的安全同时也方便了用户对密钥的管理。在以前功能上有几点修改,将以前的导出功能改为保存,保存只是将加密后的密钥文件保存在当前文件夹下,新添加的导出功能是将加密后的密钥文件导出到移动存储器中;将导入功能改为加载,加载是将解密后的密钥读取到系统辅助数据的解密,新添加的导入是将保存在移动存储器中的加密后的密钥文件导入到系统。经过添加功能后系统的功能图如图2所示。

根据功能的不同将整个系统实现分为三个模块,分别为:MainFrame、DES、RSA。MainFrame的主要功能是显示系统界面,对系统界面布局进行定位并且接收由DES和RSA模块传来的参数辅助完成文件加密和解密功能,在加密和解密过程中给用户提供交互界面并文成加密后密钥的保存和导出及导入功能。DES的主要功能是接受由MainFrame传递过来的参数,对指定文件的数据进行加密和解密。RSA的主要功能接受由MainFrame传递的参数对指定的DES密钥进行加密并保存,同时可以将加密后的DES密钥导出,一边以后辅助完成数据解密功能。

3.1 MainFrame模块设计

定义一个MainFrame类,主要是界面的初始化,同时在加密和解密过程中起到桥梁的作用,传递参数。同时所有的相应函数均封装在MainFrame类中,便以管理和界面的优化。界面的初始化及所有的响应按钮:public class Mainframe extends javax.swing.JFrame

主要响应按钮响应的函数如下:选择要加密或者解密的源文件,将文件路径传递DES对象并显示在文本框中,private void jButton1ActionPerformed();输入DES密钥,并弹出对话框确认:private void jButton2ActionPerformed();数据解密,通过调用DES对象中的加密函数对数据进行加密:private void jButton4ActionPerformed();数据加密,首先通过调用DES对象中的获取密钥函数得到密钥,然后调用解密函数对数据进行解密:

生成RSA密钥对:

用RSA算法对DES密钥进行加密并保存:

将加密后的DES密钥文件导出到移动存储器中:

将RSA私钥导出到移动存储器中:

将经过加密并保存在电脑中的DES密钥解密并导入到加密系统:

结束系统:

3.2 DES模块设计

定义一个DES类,将参数和函数封装在DES类中。

public class DES

定义一个初始化函数和三个成员函数:

public void setKey(String s)//获得DES密钥

public void init()//对DES加密初始化,主要调用java系统函数

加密函数,source为要加密的文件的路径,result为加密后文件保存路径;因为在MainFrame模块中要对是否加密成功进行判断所以此函数要返回参数:

public String encryptorFile(String source,String result)加密函数设计框架图如图3所示。

解密函数,source为要解密的文件的路径,result为解密后文件保存路径;因为在MainFrame模块中要对是否解密成功进行判断所以此函数要返回参数:public String decryptorFile(String source,String result)解密函数设计框架图如图4所示。

3.3 RSA模块设计

定义一个RSA类,将主要参数和方法封装在RSA类中。public class:RSA定义三个成员函数:生成RSA的密钥和公钥并将私钥和公钥分别以dat文件形式保存在系统的当前文件夹中;因为在MainFrame模块中要对生成密钥是否成功进行判断所以此函数要返回参数;public String setkey(),密钥生成函数设计框架图如图5所示。

利用RSA公钥将传递进来的DES密钥进行加密并以dat文件形式保存在系统的当前文件夹中,传递过来的密钥是String形式的,只能由数字和字母组成;因为在MainFrame模块中要对是否加密成功进行判断所以此函数要返回参数;public String encryptorFile(String Dkey),加密函数设计框架图如图6所示。

利用RSA私钥对保存的加密后的DES密钥解密并传递给MainFrame类中的解密方法,实现密钥的导入功能,该方法中首先要读取RSA的私钥然后读取加密后的DES密钥文件;因为在MainFrame模块中要对是否解密成功进行判断所以此函数要返回参数:public String decryptorFile();解密函数设计框架图如如7所示。

4 系统的开发环境及实现

系统的设计选择在java环境下。Java技术是与平台无关,是当今被各大软件公司可接受为最高级的面向对象设计语言的主流技术;且Java安全API提供了加密、信息融合、密钥管理、认证、存取控制和数字签名等功能,允许开发者进行低层和高层的安全应用,而且在Java中,RSA密钥生成、RSA加密解密的功能实现十分简单,因为标准库中集成几乎所有功能,不需要从RSA算法出发进行编码。在j2se标准库中,javax.crypto中的Cipher类用于具体的加密和解密,java.security包直接提供了数字签名的相关方法。测试实例一,对txt文本文件进行加解密(密钥为000000)。

5 结束语

整体情况来说系统基本上达到预期的要求,能够对文本文件进行加密和解密并且方便公共环境下多用户系统对资源的共享,同时方便用户对密钥的管理,为用户提供了一个操作简单、方便实用的加密系统。

参考文献

[1]卢开澄.计算机密码学[M].北京:清华大学出版社,1998.

[2]耿祥义.Java基础教程[M].北京:清华大学出版社,2004.

[3]徐迎晓.Java安全性编程实例[M].北京:清华大学出版社,2003.

[4]Daeman Rijmen.高级加密标准算法[M].谷大武,徐胜波,译.北京:清华大学出版社,2003.

[6]赖溪松.计算机密码学及其应用[M].北京:国防工业出版社,2001.

文件网络管理系统的研制与应用 篇11

关键词:文件管理;网络硬盘;共享平台

中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)15-30882-03

The System of Documents Network Management Research and Application

WANG Cai-jie

(Shengli Oilfield Geophysical Research Institute,Dongying 257022,China)

Abstract:This system is intended to facilitate the managements of storage and share on the oil exploration project Ministry documents,guarantee the safety of documents preserving,improve the efficiency of research and development of documents network management platform.on the system structure,functional system,the main characteristics we give the key research .Good results of application is achieved.

Key words:File Management;Network Drives;Sharing Platform

1 引言

网络是目前最完美的交流工具,也是远距离传递和存储信息及文档资料最好工具。在Internet迅速普及的今天,数据信息量增长迅速,如何有效存储、传递、共享和管理这些数据信息及文件资料就成为摆在我们面前的一个难题。

在电脑普及之初,用户相互间交换文件的方式主要依赖于软盘、CD-ROM等存储介质;目前正处于局域网盛行的年代,我们可以充分利用局域网成为与移动存储介质相互交换文件方式,使文件共享变得便捷而实用。

根据油田勘探项目部日常工作业务需求,需要长期保存的数据、文件、文档及资料较多,科室之间需要共享资料也较多,传统的存储文件方式是将文件存储在个人电脑或U盘中,需要共享别人的文件时只有靠发送邮件、FTP传输或通过U盘拷贝,在查找需求文件的环节浪费了大量的时间,在互联网无所不在的年代,现有的应用服务远不能满足我们日常工作和学习的需求,通过网络服务器实现数据、文件资料存储应该是最佳选择,为此我们借助项目部网站开发了文件网络存储管理系统软件,服务器有专门的系统管理员管理,充分保证了文件数据存储的安全性、保密性,用户可以放心的使用,借助油田勘探项目部网站,您无论在办公室、在家或任何地方都可以在线上传、下载、共享所需要的文件资料及数据,大大提高了工作的效率。

2 系统的结构

2.1系统的环境

“文件网络管理系统”采用系统的环境:

①操作系统:Windows 2000或Windows2003;

②Web服务:IIS6.0或以上版本;

③数据库为:SQL Server 2000或以上版本;

④开发工具为:Microsoft Visual Studio .NET 2003。

这种结构从服务器端操作系统、运行环境、开发语言到客户端浏览器都是Microsoft公司的产品,互相之间结合紧密、技术先进、开发速度快,可迅速将产品投入到应用中。

2.2功能特点

该系统具有以下功能特点:

(1)稳定高效:海量存储技术,高性能的磁盘阵列,安全性远远高于闪存技术的U盘;

(2)自由共享:文件上传时添加各种权限实现任意共享目录和文件;

(3)百变空间:将各种文件保存起来,随时与好友交换文件;

(4)三层架构模式开发:可方便扩充应用系统功能;

(5)可设置权限共享:共享权限分为不共享、指定单位、指定人三种方式;

(6)支持大文件、多文件、断点续传、进度显示上传、所有格式文件上传、下载;

(7)支持几乎所有模式的多媒体文件的上传、下载;

(8)类似Windows中的图片缩略图显示文件模式,方便查看图片;

(9)在线编辑文本、Office文件,播放影音,添加注释;

(10)文件目录多级共享,可共享整个用户空间;

(11)多用户注册各自使用,互不干予;

(12)树状显示系统功能和目录结构,操作方便;

(13)可对自己的所有共享文件进行查看及管理,修改或删除;

(14)下载统计功能,对各个用户下载的每个文件有明确的记录和统计;

(15)只有管理员可进行不同用户存放目录文件设置读写权限,系统更安全。

2.3功能体系结构

该系统功能体系结构:由安全管理体系、文件资料管理、文件资料共享、我的共享等管理平台,如下图所示。

安全管理体系平台:保护文件资料管理平台和文件资料共享平台,负责用户、用户组的管理等功能,是本系统能够稳定运行的关键和基础。

文件资料管理平台:是文件资料共享及存储管理的基础,是本系统的最终体现。

文件资料共享平台:实现本部门、下属各科室、友好用户给我的共享。

我的共享资料平台:实现用户给好友的文件资料的共享。

系统功能体系结构示意图

2.4用户级别

该系统将用户分为3个级别:即网站一般访问者、内部用户和系统管理员。

网站一般访问者,通过管理员设定的权限系统,可浏览文件资料共享平台的文件信息。

内部用户即本部门和内部管理者用户的科室人员,除了具有普通访问者所有权限之外,可以使用内部的文件资料管理的用户权限。

系统管理员可以登录后台管理平台,进行系统的用户、用户组设置及相应的权限设置、共享管理、大小类设定、下载统计、共享统计等功能。

3 功能体系介绍

3.1网站安全管理体系

3.1.1用户的申请

用户在登录之前,身份是公共用户。该用户权限由管理员设定,允许进入公开栏目浏览,但不具备文件管理系统和系统管理平台的操作权限,当已认证用户输入的用户名称与口令后,才具有固定身份。

3.1.2用户及用户组管理

在本系统中,将用户分为用户和用户组。用户只是记录用户的个人信息,其权限存放在用户组中。用户组是权限管理的最小单位,用户同时属于多个用户组。

3.2文件资料管理共享平台

共享资料:查看油田勘探项目部、相应科室、别人给自己的共享资料情况,登录用户并可根据相应的权限进行文件及资料的上传、删除、共享操作。如下图:

文件资料管理共享平台示意图

3.3文件资料管理平台

文件资料管理就是对各类上传文件及资料进行各种不同的操作。如下图:

文件资料管理平台操作界面示意图

各个功能简介:

①根目录:回到资料管理的根目录;

②新目录:在当前目录下创建一个“新目录”;

③删除:删除选择的目录或文件;

④剪切:剪切选择目录或文件;

⑤复制:复制选择目录或文件;

⑥压缩:压缩选择的目录或文件,系统自动会在当前目录下生成压缩文件;

⑦解压缩:解压缩选择的目录或文件;

⑧搜索:模糊搜索填写文件或目录名称;

⑨缩略图:将文件以缩略图的直观形式显示;

⑩上传:完成上传文件及资料到网络服务器,可以多个文件同时上传;

11文件共享:包括不共享文件、指定单位、指定人三个功能。如下图:

目录和文件共享(指定单位)示意图

指定单位:可选择共享大类、共享小类、选择内部单位,也可设置外部可见单位。可指定此文件或目录中操作是否可以修改、删除等功能。

指定人:指定目录及文件给多个已注册的用户共享,可根据所在单位选择。

3.4我的共享文件资料平台

可查看或编辑你所有共享给友好用户的文件或文件夹。

3.5后台管理

为了保证系统的安全性,只有系统管理员才有权限登录资料管理后台管理系统。此平台包括用户管理、共享管理、数据维护模块。如下图:

后台系统管理用户组界面示意图

用户管理:实现管理用户注册信息、添加用户注册信息、管理用户组等功能。

共享管理:实现共享设定管理、大类文件类型设定、小类文件设定等。

数据维护:实现共享文件统计;垃圾文件及目录的数据清理等。

4 系统技术特点

4.1操作简单

系统设计中尽量使操作简单、易用,界面友好。文件的管理平台设计中,涉及文件及目录的操作如复制、删除、剪切、上传、共享等经常使用的操作,都用图标的形式直观的显示,一目了然。

4.2扩充能力强

该系统采用层架构模式开发,具有较强的扩充能力,可根据本单位的业务发展需求不断增加新的应用模块。

4.3安全完善的用户权限管理

本系统通过用户安全管理平台,将用户分组管理,管理员分组授权,设置用户权限,存储在网络硬盘中的文件数据其它人根据权限访问,管理员也仅能对共享数据进行管理,充分保护用户隐私,确保用户文件资料存储的安全性、保密性。

4.4系统可靠

网络硬盘是一个完全属于自己的私密空间,保证私人空间不被侵犯,保护个人隐私既安全又可靠,无论是数据资料、文件资料、还是私人的邮件、通讯录,都可以安全的放在网络硬盘内,没有正确的密码,任何人看不到“文件保险箱”目录和文件内容。

4.5在线上传、下载

无论用户在什么地方,只要能登录油田勘探项目部网站,都可以实现文件的在线上传、下载,实现真正意义上的3A服务(即Anytime、Anywhere、Anyone)。

4.6自由共享

网络硬盘可将自己的文件、资料、数据共享给指定单位用户或指定用户,授予用户对文件夹的访问权限,对准入者的浏览、查看、修改和下载进行严格的权限控制。

5 应用情况及效果

5.1应用情况

此系统在油田勘探项目部已经得到很好的应用,借助勘探项目部网站平台,使用我们开发的网络文件资料管理系统软件,实现了把大量的文件规范到一起上传至单位主页服务器的网络硬盘上,实现单位内部或外部其它单位共享资料,文件资料的统一管理给项目部和科室人员工作提供了很大的方便,大大缩短了获得文件资料的时间。

5.2应用效果

(1)以前只能依靠软件、闪盘和CD-R存储文件或数据,现在使用此系统一切都变的异常简单,无论你到什么地方,文件数据都“随身携带”。

(2)使用此系统和网站程序同样的操作,更方便的存储管理文件资料,本系统与网站程序具有相同的功能,成为可配合或独立使用的一个软件版网络硬盘产品,大大简化了日常文件管理工作的繁琐性。

(3)系统应用方使用过程表明:系统实现多文件上传,在线编辑文件、查看图片,系统运行稳定、效果良好,操作简单,实现了真正意义上的文件资料的安全存储、网络共享,大大地提高了网络办公效率。

6 结论

综合利用现代先进的网络开发技术,为用户提供了一个全面、系统的文件资料存储、上传、下载的文件网络管理系统平台,系统所有功能已达到了用户的需求,勘探项目部应用本系统已经将一些文件资料上传到网络服务器中,实现了文件资料网络共享的统一存储管理。

参考文献:

[1]马朝晖.译.(美)沃瑟(Walther,S.).著.ASP.NET技术内幕.机械工业出版社2002,687-807.

[2]李敏波.译.(美)罗宾逊,(美)内格尔.著.C#高级编程(第3版).清华大学出版社,2005.

[3]李建忠.译.(美)里克特.著.Microsoft .NET框架程序设计(修订版).清华大学出版社,2003.

文件系统 篇12

1 对称密钥算法选择

在加密文件系统中, 对称密钥算法用来直接加密文件数据, 因为它们的加解密速度要高于公钥加密算法。在选择对称密钥算法时, 要综合考虑其安全性和速度。

理论上, 为了提供最大的安全性, 应该采用对称密钥算法的序列加密方式, 每个加密的字节依赖于它前面的若干字节。但是如果将序列加密算法直接用于加密整个文件, 则意味着每次我们解密文件中的一个字节时, 就要解密在它前面的所有字节, 这在性能上是不可忍受的。

所以我们对一个文件的数据分块进行加密, 分块的大小与操作系统的虚存页面大小一致或者是它的倍数, 这样可以提高内存映射时的效率。在一个分块的内部可以使用序列加密算法或者分组加密算法的CBC模式、CFB模式等。

在选择具体算法时, 首先排除专利算法, 如RC2, RC4, IDEA等。DES算法是很多加密文件系统 (如TCFS) 的加密算法, 但是它的系统消耗太大, 且速度慢。在SecNFS中, 像Cryptfs一样, 采用的是Blowfish对称密钥加密算法。

2 Blowfis h对称密钥算法

Blowfish对称密钥加密算法是Bruce Schneier等设计的一个算法。

2.1 快速

Blowfish在32位微处理器上的加密速率可达26时钟周期/字节。

2.2 紧凑

Blowfish能在容量小于5k的存储器中运行。

2.3 简单

Blowfish仅使用了一些简单运算:基于32位的加、异或和查表等。

便于往Linux内核中移植。

Blowfish是一个采用64位块大小, 任意密钥长度的块加密算法, 密钥最长可为448位。它保持加密后数据和加密前大小一样, 方便了加密文件的读写。对密钥不需要经常改变的应用, 如文件加密中, Blowfish是一个很好的算法。在32位具有大的内存的微处理器 (如Pentium) 上, 其速度远快于DES。在Cryptfs和CryptosFS中都采用Blowfish算法。

基于以上原因, SecNFS中也采用Blowfish加密算法。当然也可以使用其它的算法, SecNFS的一个设计目标就是支持加密算法的模块化, 这是SecNFS未来工作的一部分。

在工作模式上, 选择CFB加密模式。在CFB模式中, 每一个分组的密文依赖于它前面的分组的加密结果, 形成一个密文链。对文件数据分块加密, CBC模式只局限于一个数据分块内, 一个数据块中的数据不依赖于它前面的数据块, 这样可以提高读写文件的效率。密钥越长, 则加密速度越慢, 安全性越高。Blowfish的密钥长度可以达到448位, 但是一般没有必要使用这么长的密钥, 所以原型系统中采用缺省的128位密钥。128位密钥在安全性和性能上可以得到较好的平衡。CFB模式要求一个初始向量IV, 在Cryptfs中, 使用固定的初始向量, 在SecNFS中, 为加强安全性, 初始向量和Blowfish密钥都随即产生。并加密存储。

3 对称密钥和初始化向量生成

在SecNFS中, 文件的对称密钥和初始化向量在创建文件时被调用的inode

操作函数secnfs_create () 中生成。

在SecNFS原型实现中采用Linux操作系统时间jiffies和cpu时钟来产生随机数。jiffies表示自系统启动以来的操作系统时钟周期数。但是jiffies更新比较慢, 如果只用jiffies, 则密钥和初始化向量的很多位是相同的。所以还要采用精确度更高的cpu时钟。在Pentium处理器上有一条指令rdtsc可以读到一个64位的cpu时钟周期计数, 如果主频超过1GHz, 就可得到纳秒级的时间精度。结合jiffies, 可以产生分布均匀的随机数和初始化向量。在Linux中有对rdtsc命令的封装rdtscl () , 作用是一样的。

密钥的生成:

在Linux中, jiffies为全局变量, 而rdtscl由汇编语言实现, 所以生成密钥和随机向量的速度是很快的。

4 公钥密码算法选择

只有少数几个公钥密码算法既实用又安全。公钥密码算法速度都很慢, 很

少直接用于数据的加密, 它们的主要用途是加密其它的密钥和数字签名。在SecNFS中, 公钥密码算法用来加密文件的Blowfish密钥和初始化向量以及文件的Hash值。我们采用的是流行的RSA公钥密码算法。

RSA算法是一个可逆的公钥密码算法, 既可以用于加密, 也可以用于签名, 它以它的三个发明者Rivest、Shamir和Adleman的名字命名。它的安全性基于这样一个事实:寻找大素数是相对容易的, 分解两个大素数的积是计算上不可行的。

RSA算法的具体实现步骤为:

(1) 随机选择两个大素数p和q, 为了最大程度的安全性, 两数的长度一样。

(2) 计算乘积n=p*q。

(3) 随机选取加密密钥e, 使e和 (p-1) 、 (q-1) 互为素数。

(4) 用欧几里德扩展算法计算解密密钥d, 使d满足:

(p-1) | (de-1) 且 (q-1) | (de-1)

(5) n和e为公钥, n和d为秘密密钥;p、q舍弃, 且不能泄露。

(6) 对明文M的加密操作为:

C=Me mod n

(7) 对密文C的解密操作为:

M=Cd mod n

因为SecNFS的密钥管理主要由用户程序实现, 所以SecNFS中的RSA算法在用户空间实现。这虽然损失了一定的性能, 但是缩小了整个文件系统模块的大小, 且有利于系统的调试和升级。在内核中实现RSA算法要利用到GMP库 (GNU Multiple Precision Arithmetic Library) , CryptosFS的经验证明这不易实现, 且SecNFS中RSA处理的数据量不大, 在用户级实现性能上不会下降很多。

有一个RSA的参考实现RSAEuro, 可以用于北美以外的地区, 但它不是纯RSA算法, 包含了许多其它的加密、签名函数等。SecNFS中的RSA算法实现, 作了一些封装上的修改。这是一个相对小的纯RSA算法包, 修改后主要包含以下三个主要例程:

genprim () 用来产生随机大素数, genrsa () 用来产生RSA密钥对, rsa () 则执行具体的加密和解密操作。

破解RSA算法的一个直接方法是使用现有的方法分解n。随着计算能力的提高, n必将随之增大。n越大, 则越安全, 但加密、解密速度也越慢。在SecNFS原型系统中使用1024位 (128个字节) 的n。

5 消息摘要算法选择

可靠的Hash函数有三种:

(1) 基于分组密码算法的Hash函数。

(2) 系列Hash函数, 如MD2、MD4和MD5。

(3) 美国政府的安全HASH标准 (SHA-1) 。

在SecNFS中采用的是MD5, 实际上也可以采用其它的算法, 如SHA-1。

MD5是MD4算法的改进, 产生128位 (16字节) 的输出。

SecNFS中MD5算法的实现通过修改RFC1321的参考实现而成, 只包含一个主要函数, 它产生指定文件的Hash值:

int md5gen (char*filename, char*outdata) ;

参考文献

[1]William Stallings.密码编码学与网络安全[M].杨明等译.北京:电子工业出版社, 2001:119-248.

[2]Bruce Schneier.应用密码学[M].吴世忠, 等译.北京:机械工业出版社, 2000:134-328.

上一篇:教学状况下一篇:混合结构