一种实现系统高度安全和可恢复的文件系统的方法

文档序号:6651027阅读:100来源:国知局
专利名称:一种实现系统高度安全和可恢复的文件系统的方法
技术领域
本发明涉及到计算机操作系统、文件系统和计算机安全领域,更侧重于计算机文件系统,提出了一种在计算机操作系统中以文件系统为主,配合进程管理、存储管理等内核模块共同实现系统高度安全和可恢复的方法。
背景技术
计算机的功能地就是对信息进行加工处理,这些信息保存在外部存储介质上。当要加工处理信息时就从外部存储介质上输入,加工处理完毕后再把结果保存到外部介质上。这些信息对整个系统的运行和人们的使用起着非常重要的作用。信息在外部存储介质上是以文件的形式进行组织、管理、使用和保存的,这些是由处于核心地位的操作系统中的文件系统来实现的,可见文件系统在整个计算机系统中起着至关重要的作用。
一个文件系统的基本功能就是如何组织、管理和使用存储介质上的存储空间,如何对存储空间进行分配和回收,如何对存储空间上的数据进行访问。文件系统除了具有这些必备的基本功能外,更重要的还应具有可恢复性和安全性。计算机病毒、误操作、系统意外断电等都会造成数据破坏,给人们带来巨大的损失。因此,一个计算机系统的可恢复性和安全性尤为重要,而如何保障系统的可恢复和安全这些功能最能由文件系统体现出来。现在大部分的PC机上所采用的都是我们较熟悉的FAT、NTFS、EXT2、EXT3文件系统,这些文件系统在性能、功能、速度等基本指标方面都比较优秀,深受广大用户的喜爱。
但是这些文件系统在可恢复性和安全性方面还不能满足用户的需求,虽然NTFS在这两个方面有所进展,但还是不能从根本上解决这一问题。

发明内容
为了解决文件系统的可恢复性和安全性,该文件系统建立在一种高度的可恢复性、安全性、通用性、实用和全新的设计思想与设计原则上,除了具有一个文件系统所具备的基本功能外,尤其表现在可恢复性和安全性两个方面。体现了一个文件系统在其传统功能上是如何组织、管理和使用存储空间,如何对存储空间上的数据进行访问,如何对存储空间进行分配和回收;特别是如何利用处于操作系统核心层的文件系统,依靠它所处的特有优势来延伸其功能,并配合操作系统中的进程管理模块采用一定的算法和策略来实现计算机系统的高度可恢复性和安全性。在一个文件系统基本实现方案的基础上,本发明为了解决问题所采用的技
术方案具体如下
一、在基本功能方面
1.在卷上所组织的数据结构为引导区、超级块、数据区和目录区;其中引导区和超级块所占的空间是固定的,数据区和目录区所占空间相对较大,是动态改变的,并且数据区占用空间向后增长,而目录区向前增长,当两者接触时表明空间已用完。
2.采用基地址加存储块个数的方式描述一个文件所占用存储空间的分配情况。
3.把描述文件存储空间分配情况的元数据信息集成到目录项中。
4.在一个文件系统中数据区和元数据区是动态改变的,本方案采用数据区和元数据区相向增长的方式来规划空间,可以让用户避免在使用前进行文件个数等方面的一些不必要的预估。
在元数据中描述文件名长度、文件存储空间分配等逻辑信息时,以折衷的、一般情况下的思想进行考虑,对于极少数的特殊情况再以补充的方式进行处理。
二、在恢复和安全方面
1.在描述文件属性的目录项中增加一切能够有利于实现可恢复和安全的标记字段,从可恢复和安全的原则出发把系统中所有的文件划分为不同的类型和级别并加以标记,比如文件安全、访问权限、安全检查、重要级、历史改变记录指针等。
2.在文件对应的目录项中设置一个文件内容改变历史记录指针,与操作系统中的存储管理、高速缓存管理等相关内核模块密切配合,紧密监控对需要恢复的文件的插入、删除和修改操作,并对操作类型和操作的数据进行记录,这样能在文件内容级上进行恢复。把操作系统中关键的核心文件和重要的系统配置文件(比如WINDOWS中的注册表)设定为可恢复状态,这样可让系统恢复到历史中的任意一个状态。
3.把进程行为和文件改变关联起来,扩展操作系统中进程管理模块的功能,让它监视并记录一个进程所有对文件的创建、删除和修改的行为,并使这些行为可回朔,根据一定的算法、保护措施和病毒的特性来判断一个进程行为的合法性,可在最大程度上防止所有的计算机病毒。
4.把元数据即超级块和目录区保存为文件,任何对元数据的更新操作首先要写到这个文件,在确保正确写入该文件后再把它更新到元数据区。
5.向用户提供一个系统检测与维护工具,该工具根据系统在以前运行中所监视的进程行为与文件操作的历史记录信息,采用固定的算法和策略提示用户对非法进程的行为进行断定、撤销或观留。
通过在LINUX下的试验证明使用该文件系统在可恢复性和安全方面提供的特有功能,可使系统恢复到以前任意一个用户设定的完美状态或操作系统成功安装后的最原始状态,在该状态下利用该文件系统提供的专有工具对系统进行维护,根据在目录项中描述的该文件的相关属性,检查系统重要文件的内容详细改变情况,删除破坏性数据,隔离病毒,最终达到恢复系统数据到指定状态,防止病毒,使系统运行在用户最满意的最佳状态的目的。
通常情况下,计算机系统的安全、可恢复、反病毒和维护等相关功能主要是由处于操作系统之外的应用软件来实现的,与把这些功能放在操作系统外面来单独实现相比,而采用一个特定的文件系统和延伸操作系统的固有优势来实现,效果要远远好得多,更彻底,能从根本上解决问题,以达到事半功倍的效果。


下面结合附图对本发明进一步详细地说明
图1表示的是本文件系统在一个卷上格式化后所产生的数据结构。
图2表示的是计算机系统中的文件集,硬件层上的操作系统和操作系统层上的应用软件,它们都是以文件的形式存在的。
具体实施例方式
下面参照本发明的附图,更详细地描述本发明的最佳实施例。
该方式选取一个最佳实施例,将从文件系统部署、操作系统安装、系统运行和系统维护四个方面描述该发明在整个计算机系统生命期中所产生的行为和行使的功能进行详细描述。
一、文件系统部署
该文件系统构建在外部存储介质上,由用户划分一段存储空间或整个存储介质,按照该文件系统的格式进行部署后,这段空间便是该文件系统唯一能进行管理和操作的卷。部署后的卷上的数据结构如图1所示分别为引导区、超级块、数据区和目录区,各个区上的数据结构以下将分别进行详细地描述。
引导区1,驻留引导程序,用来引导和加载安装在该卷上的操作系统,引导程序是由操作系统指定的。
超级块2,整体描述该卷上的数据组织方式、存储空间的使用情况以及使用该文件系统的操作系统相关信息。
其数据结构的定义和解释如下
typedef struct_Super_Block{BYTE Driver_Number; //该文件系统所在的物理驱动器号  BYTE Partition_Number; //该分区所在物理盘上的分区号  QWORD Start_Block_Number;//该分区在整个物理盘上的起始块号  QWORD End_Block_Number; //该分区在整个物理盘上的结束块号  QWORD Total_Blocks; //该分区总共所占的块数  DWORD Total_Free_Blocks;  //该分区当前所有空闲块数,等于数据区与目录区之间的空闲块数加数据区中的空闲块数。  WORD Boot_Blocks; //为引导区保留的块数  WORD Super_Blocks; //超级块所占的块数  DWORD Data_Area_Block_Counts;  //数据区当前所占的块数,等于数据区起始块到顶端块之间的块数。  QWORD Start_Data_Block_Number;//数据区的起始块号  QWORD Top_Data_Block_Number; //数据区顶端数据块的块号  DWORD Data_Area_Free_Blocks; //数据区中空闲的块数  struct  {  QWORDStart_Block_Number; //起始块号<!-- SIPO <DP n="4"> --><dp n="d4"/>   WORDBlocK_Counts; //块数  }Free_Data_Block_Register[100];  //数据区中空闲数据块位置记录,以起始块号加块数的形式描述在数据区中所有的空闲块的分布情况,比如从块号19740805开始连续有85个块空闲,则在该数组中用一项记录,即Start_Block_Number=19740805,Block_Counts=85。  BYTEFree_Data_Register_Items;  //数据区中空闲数据块记录的当前记录项数,在该文件系统存储空间分配策略的一般情况下不会超过100项,若超过则用一个文件来代替,格式同Free_Data_Block_Register结构一样。  BOOL Data_Register_File;//是否有空闲数据块记录文件  DWORD Directory_Area_Current_Blocks;  //目录区当前所占的块数,从目录区的起始块号到目录区顶端的块数。  QWORD Start_Directory_Block_Number;  //目录区的起始块号,通常是当前卷的最后一个块。  QWORD Top_Directory_Block_Number;  //目录区的顶端块号,由于目录区是向前增长的所以顶端块号比起始块号要小。  DWORD Total_Directory_Entry_Counts;  //目录区当前所使用的目录项数,包括主目录项、长文件名目录项、数据链目录项和备份数据链目录项。  DWORD Free_Directory_Entrys;  //空闲目录项数,所有空闲目录项的个数,以32个字节为单位。  struct  {  DWORD Start_Directory_Entry_Number;//起始项号  WORD Entry_Counts;//项数,以32个字节为单位。  }Free_Directory_Entry_Register[200];  //空闲目录项位置记录,以起始项号加项数的形式描述目录区中空闲目录项的分布情况。  BYTE Free_Directory_Register_Items;//空闲目录项位置记录数<!-- SIPO <DP n="5"> --><dp n="d5"/>组的项数  BOOL Directory_Register_File //是否有空闲目录项记录文件  DWORD Middle_Free_Block_Counts;//数据区与目录区中间空闲块的块数  WORD Headers; //磁头数  WORD CylindersPerSide; //每面磁道数  WORD BasePerCylinder; //每道包含的块数  WORD SizePerBase; //每块包含的字节数  WORD MediaType; //媒体类型  DWORD FileSystemVersion; //文件系统版本号  BYTE FileSystemType[8]; //文件系统类型  CHAR Volume[16];//该分区的卷标  CHAR SerialNumber[16]; //该分区的序列号  BYTE PhysicalDriveNumber; //物理驱动器号  struct  {  CHAR Vendor[8]; //使用该文件系统的操作系统产商ID  CHAR OSID[8];//使用该文件系统的操作系统ID   BYTE OSVersion[8]; //使用该文件系统的操作系统版本  }OS;//使用该文件系统的操作系统相关信息}Super_Block,*pSuper_Block;
数据区3,该区用于存放文件的实际数据内容,占用的存储空间相对较大。
目录区4,由若干个目录项组成的用于存储逻辑数据的元数据区,描述文件的属性信息,包括文件名、文件大小、文件分配空间、访问权限、安全检查、重要级、用户ID、组ID以及备份等相关信息。目录项分为主目录项、长文件名目录项、数据链目录项和备份数据链目录项,其数据结构的定义和解释如下
主目录项
typedef struct_Main_Directory_Entry{<!-- SIPO <DP n="6"> --><dp n="d6"/>  BYTE Directory_Entry_Type;  //目录项类型0表示该目录项未使用;1表示主目录项;2表示长文件名目录项;3表示数据链目录项;4表示备份数据链目录项;E5表示目录项(主目录项)暂时无效。  WORD Create_Date; //文件创建日期  WORD Create_Time; //文件创建时间  WORD Last_Modify_Date; //文件最后修改日期  WORD Last_Modify_Time; //文件最后修改时间  WORD Last_Access_Date; //文件最后访问日期  WORD Last_Access_Time; //文件最后访问时间  BOOL IsBack; //是否有备份  struct  {  WORDFile_Name_Length; //文件名长度  BYTEFile_Name[24]; //文件名  DWORD File_Name_Directory_List;  //长文件名目录项链,默认文件名一般情况下为24BYTE,若不够用32BYTE的长文件名目录项来补充。  }FileName;  //该结构描述在目录项中如何表示文件名的相关信息。  struct  {  BYTE Current_Back_Index;  //当前文件数据内容是历史备份中哪一次的内容,0表示没备份,就是当前内容;1-255表示指定的备份点;在用户没指定的默认情况下,当前文件内容为最后一个备份点下内容。   QWORD File_Size; //当前备份点下文件的大小   DWORD Allocate_Blocks; //总共所分配的块数   struct   {   QWORD Start_Data_Block_Number;//起始块号<!-- SIPO <DP n="7"> --><dp n="d7"/>   WORD Block_Counts; //块数  }Data_Block_Pointer[3];  //文件存储空间地址,以起始块号加块数的形式描述文件内容在数据区所分配的地址空间;通常情况下用3个分配项来描述,若不够用数据链目录项来补充。   DWORD Data_List_Directory;//下一个数据链目录项  }Current_File_Data;  //该结构主要描述文件内容存储空间的分配信息。  struct  {  DWORD File_Size;  //备份文件大小,该文件所有备份的数据。  DWORD Start_Data_Block_Number; //起始数据块的块号  DWORD Total_Block_Counts; //总共分配的块数  WORD Back_Counts; //备份的次数  struct  {  WORDBack_Create_Date; //备份文件创建日期  WORDBack_Create_Time; //备份文件创建时间  DWORD Back_Start_Offset; //备份数据的开始位置  DWORD Back_File_Size;//备份数据大小  }Back_Data_Entry[2];  //记录每次数据备份的信息,在主目录项里默认用两个备份项来记载,若备份次数超过两次时用备份数据链目录项来补充。  DWORDNext_Data_List_Directory;//下一个备份数据链目录项  }Back_File_Data;  //该结构描述文件内容改变历史记录信息,当把该文件设定为备份状态时即IsBack为TRUE时该结构有效。主要描述了当前文件内容改变历史记录信息的备份数据所保存到的文件,记录了这个文件的大小、备份的次数,以及每次备份的情况,即此次备份数据在文件中的开始位置和大小,它的数据结构如下  struct<!-- SIPO <DP n="8"> --><dp n="d8"/>  {  BYTE Operation_Type;  //对文件的操作类型,表示为0--添加;1--删除;2--修改。  WORD Operation_Length;  //对文件添加、删除或修改的数据内容的长度。  BYTE Data[Operation_Length];  //对文件添加、删除或修改的数据内容。  }Back_Data;,该备份文件正是由若干个这样的结构系列组成。  struct  {  WORDFile_Type; //文件类型  //文件类型常规文件、目录文件、设备文件、管道文件、套接字文件、  符号链接文件、控制台文件等  DWORD File_Attribute;  //描述文件的属性,主要在安全方面,用一个32位的字段表示,其中不同  的域表示以下不同的含义。  读写域只读、读写  访问域隐藏、不可删除、不可覆盖  可执行体类型域一般的可执行文件、驱动文件、链接库文件、脚本文件、  OFFICE文件等  文件级域操作系统级、用户级  可执行体级别域操作系统级可执行体、应用软件级可执行体、用户操作  级可执行体、未知级可执行体  WORDAccess_Popedom;//文件访问权限  WORDOwner_ID; //文件所有者ID  WORDGroup_ID; //文件组ID  WORDCreator_ID;//创建者ID  }Access_File_Gate;  //该结构主要描述实现文件安全和保护的控制信息。}Main_Directory_Entry,*pMain_Directory_Entry;
长文件名目录项
typedef struct_Long_FileName_Directory_Entry{  BYTE Directory_Entry_Type; //目录项类型  WORD Size; //剩余文件名长度  CHAR File_Name[25]; //文件名  DWORD Next_File_Name_Pointer;  //下一个长文件名目录项的指针,若仍不够保存文件名则再用一个目录项来表示。}Long_FileName_Directory_Entry,*pLong_FileName_Directory_Entry;  数据链目录项typedef struct_Data_List_Directory_Entry{  BYTE Directory_Entry_Type;//目录项类型  DWORD Next_Data_Pointer;  //下一个数据链目录项的指针,若不够记录文件的存储地址则再用一个目录项来表示。  struct  {  QWORD Start_Data_Block_Number; //开始数据块号  WORD Block_Counts;//块数  }Data_Block_Pointer[4];  BYTEReserved[3]={0}; //保留为0}Data_List_Directory_Entry,*pData_List_Directory_Entry;
备份数据链目录项
typedef struct_Back_Data_List_Directory_Entry{  BYTE Directory_Entry_Type;//目录项类型  struct  {  WORD Back_Create_Date; //备份文件创建日期  WORD Back_Create_Time; //备份文件创建时间  DWORD Back_Start_Offset; //备份数据的开始地址<!-- SIPO <DP n="10"> --><dp n="d10"/>   DWORD Back_File_Size; //备份数据大小  }BacK_Data_Entry[2];//和主目录项相同。  DWORD Data_List_Directory;  //下一个备份数据链目录项,若不够记录备份的信息则再用一个目录项来表示。  BYTE Reserved[3]={0}; //保留为0}Back_Data_List_Directory_Entry,*pBack_DataList_Directory_Entry;
注以上所说的块是指一个扇区或多个扇区组成的分配单位。
二、操作系统安装
文件系统是操作系统的核心组成部分,在采用操作系统默认工作的文件系统按以上格式进行部署后便可安装操作系统。作为操作系统同时也是文件系统的开发者,他最了解为了实现该文件系统的意图在安装操作系统时应该在操作系统的那些方面对该文件系统进行配合和协调,主要有以下几个方面
1、在安装操作系统向指定的卷上复制文件时,把操作系统中关键的核心文件、可执行文件和重要的系统配置文件等影响系统顺利启动和健康运行的文件设定为可恢复状态,即把目录项中的IsBack值置为TRUE,同时把改变的历史数据记录在备份数据链所表示的空间中。
2、根据在可恢复和安全方面采用的技术方案,把操作系统安装产生的所有文件按照访问权限、安全检查、重要级、是否为可执行体、用户ID、组ID等进行策略化并在相应的目录项加以标记。
在操作系统成功安装后,把系统当前的状态设定为一个还原点即最原始的也是最可信任的状态,具体动作就是把系统关键的、能决定系统正常运行的核心文件和重要配置文件设置成可恢复状态。当然,用户也可以把自己的数据和指定的任意文件设定为可恢复。
三、系统运行
操作系统在整个计算机系统中处于硬件和用户操作的交接地位,紧贴硬件层,是整个系统的大管家,管理和控制系统中所有的软硬件资源。操作系统是一个大平台,所有在社会生产、科研和人们生活中能实现某种功能、解决某个问题的应用软件都以这个平台为基础,以进程的方式在这个平台上运行。
在计算机系统中,硬件层上的操作系统和操作系统层上的应用软件,它们都是以文件的形式存在的,整个体系结构如图2所示,这些文件是整个系统的灵魂,没有这些文件计算机将是一堆废铜烂铁,而硬件正是这些灵魂的载体。对于本发明的文件系统的可恢复性和安全性乃至整个系统的可恢复性和安全性也就是这些文件的可恢复性和安全性,说到底,就是要保证这些文件的安全、正确,不被让用户感觉不到的、违背用户主观意识的非法行为所操作,即使操作了也要让它的行为可回朔。
为此,在系统运行时,该文件系统与进程管理模块、存储管理模块紧密协调和配合,主要采用以下方法来共同实现这一重大目标。
(一)、把系统中所有的文件分为操作系统层文件集和用户层文件集。
操作系统层文件集是指操作系统成功安装后所产生的文件以及在以后运行过程中所产生的文件。
用户层文件集分为应用软件文件集、用户操作文件集和未知文件集。应用软件文件集是指用户在安装某个应用软件包时产生的文件以及该软件在以后运行中所产生的所有文件;用户操作文件集是指用户通过操作系统提供的服务以看得见的人机交互界面所产生的文件以及该文件集中的可执行文件运行时所产生的文件;除了操作系统、应用软件和用户操作文件集以外的所有文件归类为未知文件集。
同时把所有包含可执行体的文件也分为操作系统级、应用软件级、用户操作级和未知级,并在各自对应的目录项中用用户ID、组ID和创建者ID等加以标识。
(二)、把进程分为有用户界面进程和无用户界面进程。有用户界面进程是指A、进程的运行是当前操作者的主观行为所触发的;B、进程在运行过程中有当前用户的交互。无用户界面进程是指进程在运行中不需用户参与,比如在后台运行的系统服务。当进程管理模块创建一个进程时,判断并记下该进程所对应的可执行文件是上述可执行文件的哪一类;当运行一个进程时,进程管理模块监视并记录该进程所有与文件相关的行为,也就是它创建、删除和修改了哪些文件,这些记录信息保存在特定的文件里;在结束一个进程时,检验在它运行过程中所有对文件的操作行为,若行为根据以下检验标准不具有非法性则通过,否则暂时挂起它的操作结果,并把相关记录信息保存在上述特定的文件里,待用户通过该文件系统提供的特定工具进行审查,在合法后再实现该进程对文件操作的最终目的,并删除特定文件里的相关记录信息。检验一个进程的文件操作行为的非法性主要有以下标准,并用无、低、中和高加以描述。
1、根据病毒的行为特征,若它在系统重要的配置文件中比如WINDOWS操作系统中的注册表中添加能触发一个可执行体运行的敏感键值,并复制可执行文件,杀死其它进程,并修改其它可执行文件,这种进程的非法性为高。
2、进程所对应的可执行文件属未知文件级,比如来自网络,那么它的非法性为高;若属用户操作级则非法性为高;若属应用软件级则非法性为低;若属操作系统级则非法性为无。
3、进程的文件操作行为有用户参与,是用户的主观意图,这种情况下进程的非法性为低或无;
4、按照本文件系统建立的一套安全机制和规则,所有违反文件安全、访问权限和操作范围的进程的非法性都为高。
5、同一个文件集内的可执行文件在运行时一般情况下只能操作该集内的文件,否则非法性为高或中。
6、一个含有可执行体的文件通常情况下它的内容不会被改变,否则执行该操作的进程的非法性为高。
以上这些是基本的检验方法,根据操作系统设计者所采用的安全机制的不同,这些检验方法也随着它的思想和机制而改变。
(三)、在进程操作一个被设定为可恢复的文件时,文件系统配合进程管理、高速缓存等内核相关模块监视并记录进程对该文件的插入、删除或修改操作,同时把记录信息保存到指定的文件中。
(四)、当一个进程对存储设备直接进行扇区级的写操作时,首先建立一个文件来虚拟这个磁盘,并建立一种映射记录,让操作者感觉到真的实现写操作了,再根据进程行为合法性的检验标准进行判断,把判断结果保存到前面所说的文件里以提示用户仲裁;或者直接挂起当前操作,把这种操作提示给用户。
最理想的效果是只记下非法进程的非法文件操作行为,而不是记下所有进程的文件操作行为,因为这样将消耗一定的系统开销。当然,在除了参考以上判断非法进程的经验外,还应采取智能的、精确的算法和措施。
三、系统维护
本文件系统提供的系统恢复与安全工具独立于操作系统,只依赖于文件系统,即使操作系统瘫痪了,仍可使用该工具进行维护,当然在系统正常运行下也可使用。
该工具的工作依靠来自操作系统在运行过程中所产生的用于记录进程、进程的文件操作行为和安全性相关信息的特定文件,该文件中记录进程的相关信息主要有进程名、进程所对应可执行文件的名字、路径、用户ID、组ID以及所属的文件集类型;进程的文件操作行为相关的信息记录进程创建、删除和修改的文件的名字、路径、所属文件集类型和修改的内容等;安全性相关信息主要记录根据上面提到的检验一个进程的文件操作行为合法性的标准对一个进程行为的合法性的程度的描述,这种描述以一定的形式和简洁的操作接口体现给普通用户,能让一般的用户通过这个操作界面很容易地判断一个进程行为的合法性并进行确定、取消或观留一段时间再作处理。
另外该工具还可让用户把指定的文件设为可恢复状态,或者把整个系统的当前运行环境保存为一个还原点,并同时把元数据区保存到一个文件作为该还原点的一部分,利用该文件系统提供的可恢复机制能让用户恢复到以前任意一个最佳状态。
尽管为说明目的公开了本发明的具体实施例和附图,其目的在于帮助理解本发明的内容并据以实施,但是本领域的技术人员可以理解在不脱离本发明及所附的权利要求的精神和范围内,各种替换、变化和修改都是可能的。因此,本发明不应局限于最佳实施例和附图所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。
权利要求
1.一种实现系统高度安全和可恢复的文件系统的方法,具体包括以下内容
在基本功能方面
1)在卷上所组织的数据结构为引导区、超级块、数据区和目录区;
2)采用基地址加存储块个数的方式描述一个文件所占用存储空间的分配情况;
3)把描述文件存储空间分配情况的逻辑信息集成到目录项中;
4)采用数据区和元数据区相向增长的方式来规划空间;
在恢复和安全方面
1)在描述文件属性的目录项中增加一切能够有利于实现可恢复和安全的标记字段,以可恢复和安全为目标,把系统中所有的文件划分为不同的类型和级别并加以标记;
2)在文件对应的目录项中设置一个文件内容改变历史记录指针,与操作系统中的存储管理、高速缓存管理等相关内核模块密切配合,紧密监控对需要恢复的文件的插入、删除和修改操作,并对操作类型和操作的数据进行记录;把操作系统中关键的核心文件和重要的系统配置文件设定为可恢复状态;
3)把进程行为和文件改变关联起来,扩展操作系统中进程管理模块的功能,让它监视并记录一个进程所有对文件的创建、删除和修改的行为,并使这些行为可回朔,根据固定算法、保护措施和病毒的特性来判断一个进程行为的合法性;
4)把元数据即超级块和目录区保存为文件,任何对元数据的更新操作首先要写到这个文件,在确保正确写入该文件后再把它更新到元数据区;
5)向用户提供一个系统检测与维护工具,该工具根据系统在以前运行中所监视的进程行为与文件操作的历史记录信息,采用固定的算法和策略提示用户对非法进程的行为进行断定、撤销或观留。
2.根据权利要求1所述的实现系统高度安全和可恢复的文件系统方法,其特征在于引导区和超级块所占的空间是固定的,数据区和目录区所占空间相对较大,是动态改变的,并且数据区占用空间向后增长,而目录区向前增长,当两者接触时表明空间已用完。
3.根据权利要求1所述的实现系统高度安全和可恢复的文件系统方法,其特征在于,能够和有利于实现可恢复和安全的标记字段包括有关文件安全、访问权限、安全检查、重要级、历史改变记录指针信息。
4.根据权利要求1所述的实现系统高度安全和可恢复的文件系统方法,其特征在于把系统中所有的文件划分为不同的类型和级别并加以标记时,把进程和文件关联起来,扩展操作系统中进程管理模块的功能,让它监视并记录一个进程所有对文件的创建、删除和修改的行为,并根据保护措施和病毒的特性来判断一个进程行为的合法性,防止计算机病毒。
5.根据权利要求1所述的实现系统高度安全和可恢复的文件系统方法,其特征在于在元数据中描述文件名长度、文件存储空间分配逻辑信息时,以普通情况处理,对于极少数的特殊情况以补充的方式进行处理。
6.根据权利要求1所述的实现系统高度安全和可恢复的文件系统方法,其特征在于系统运行时,把系统中所有的文件分为操作系统层文件集和用户层文件集。
7.根据权利要求1所述的实现系统高度安全和可恢复的文件系统方法,其特征在于系统运行时,把进程分为有用户界面进程和无用户界面进程。
8.根据权利要求7所述的实现系统高度安全和可恢复的文件系统方法,其特征在于有用户界面进程是指1)进程的运行是当前操作者的主观行为所触发的;2)进程在运行过程中有当前用户的交互;无用户界面进程是指进程在运行中不需用户参与的进程。
9.根据权利要求1所述的实现系统高度安全和可恢复的文件系统方法,其特征在于,检验一个进程的文件操作行为的非法性主要有以下标准,并用无、低、中和高加以描述
1)根据病毒的行为特征,若它在系统重要的配置文件中添加能触发一个可执行体运行的敏感键值,并复制可执行文件,杀死其它进程,并修改其它可执行文件,这种进程的非法性为高;
2)进程所对应的可执行文件属未知文件级,那么它的非法性为高;若属用户操作级则非法性为高;若属应用软件级则非法性为低;若属操作系统级则非法性为无;
3)进程的文件操作行为有用户参与,是用户的主观意图,这种情况下进程的非法性为无或低;
4)按照本文件系统方法建立的安全机制,所有违反文件安全、访问权限和操作范围的进程的非法性都为高;
5)同一个文件集内的可执行文件在运行时一般情况下只能操作该集内的文件,否则非法性为高或中;
6)一个含有可执行体的文件通常情况下它的内容不会被改变,否则执行该操作的进程的非法性为高。
全文摘要
本发明一种实现系统高度安全和可恢复的文件系统的方法,在基本功能方面在卷上所组织的数据结构为引导区、超级块、数据区和目录区;采用基地址加存储块个数的方式描述一个文件所占用存储空间的分配情况;把描述文件存储空间分配情况的逻辑信息集成到目录项中;采用数据区和元数据区相向增长的方式来规划空间;在恢复和安全方面在描述文件属性的目录项中增加一切能够有利于实现可恢复和安全的标记字段;在文件对应的目录项中设置一个文件内容改变历史记录指针;把操作系统中关键的核心文件和重要的系统配置文件设定为可恢复状态;把进程行为和文件改变关联起来;把元数据即超级块和目录区保存为文件;向用户提供一个系统检测与维护工具。
文档编号G06F11/14GK1766845SQ20051012604
公开日2006年5月3日 申请日期2005年11月30日 优先权日2005年11月30日
发明者吴晓栋 申请人:吴晓栋
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1