一种文件目录结构的设想

原创 2002年08月28日 08:57:00

                                        一种文件目录结构的设想
                                                                                               Fishcat 原创

    1.现存文件系统的一点不足
   
    我们知道,操作系统诞生以来,文件系统经历了好多类型,其中使用最为广泛的就是Dos的FAT和Windows的FAT32以及WindowNT的NTFS,这些文件系统一个共同的特点,就是文件完全的层次性,即访问某一文件时,需要从根目录开始一层一层的进入,从用户的角度来说这是很不方便的。如果一个用户建立的个file1.txt放在c:/windows/profiles/all users/下,那他就得打开这么多层的目录才能访问到他的文件。从现代操作系统所要求的易于操作这一点来说就没有合乎要求。其实,操作系统的设计者没有理由强求用户记住他存放某个文件的路径,大部分的工作应该让计算机来完成。特别是对名称唯一的文件,系统应该做到只要用户给出了文件名就能马上给用户提交这个文件。这个现实的需要对现存的文件目录结构来说要完成是有难度的,实现是可以的,就像查找文件那样。不过那样的话,大家都知道,是很花时间的,基本上不能满足用户的需要。于是我们就需要重新设计一个既合乎需要又能继承以往文件系统优点的新的的文件系统结构。
  
    2.基于文件ID的目录区(文件分配表区)

    要做到对用户的文件与路径的透明性,就必须在目录区表达出来。基于文件ID的目录区的基本思想是对文件名等重要信息进行hash运算。做个最简单的例子来说,在目录区里我们保存的仅仅是文件名的hash值(即文件ID)和文件起始簇信息两个域。通过一个尽量避免冲突的hash运算来生成文件名对应的ID,至于其它的信息我们都可以保存在文件的内容里边.文件内容也做个改变,在内容的头上加上文件的控制信息(如文件名,目录的ID,日期,大小等)和自定义的信息(可以像XML一样,用户自由扩展),在用户界面上显示文件时这些时不显示出来的,而是作为控制信息显示在资源管理器中的。现在我们再来考虑前面提到的获取file1.txt的问题,分几步完成:一.文件系统管理程序通过hash运算,把file1.txt转换成一个数字n;二.在文件分配表里查找这个数字,由于我们每个目录记录只有俩个域的值,所以这个目录区很小,查找很快;由于hash结果不可能避免冲突,所以查找的结果可能不唯一.三.读出查找结果文件的内容,得到文件的真实名称,得到file1.txt;如果有多于一个结果,那就是其他的目录中存在同名文件,询问用户确切的需要;四.提交给用户,完成操作.
    从以上可以看出,基于文件ID的目录区技术很好解决的文件系统目录层次复杂的问题,很大程度上方便了用户的操作,提高了用户的工作效率.同时也带来了额外的好处:
       一.提高了查找速度.有两个原因,一是文件目录区大大减小,减小了读磁盘的负担;二是不用进行费时的文件名字符串的匹配,而是进行简单的数字比较.
       二:通过把文件的控制信息放在文件内容里边,并用XML格式进行存贮,系统和用户可以有完全的灵活性修改文件的控制信息,对文件进行个性化的描述.
       三.文件名长度,文件大小等再也不受限制.因为我们是把文件的控制信息放在文件内容里,所以文件名可以任意长,也不会浪费磁盘空间.文件大小也可以不受限制.
       四.适合检索.文件控制信息以XML格式存贮,应用程序或用户或就可以在里面加入文件的关键字等信息,跟XML的对搜索的考虑是有相同好处的.

      这些只是一个大概的轮廓,在具体实现是可能会有一些另外的问题,那就留给其他人讨论了.
 2002-8-26

eclipse目录结构功能

eclipse的基本工程目录叫做workspace,每个运行时的eclipse实例只能对应一个workspace,也就是说,workspace是当前工作的根目录。我们在workspace中可以随意创建...
  • wenweining
  • wenweining
  • 2017年06月10日 09:54
  • 466

CMD生成文件夹目录结构

一、单层生成            dir [drive:][path] /b > [drive:][path]filename    应用实例①:    把D盘test目录下所有文件名导到one...
  • Draling
  • Draling
  • 2013年04月26日 17:21
  • 19406

android 系统文件目录结构

文件系统根目录结构分析 Android文件系统根目录结构如下: [plain] view plaincopy # ls -l   lrw...
  • HTYBAY
  • HTYBAY
  • 2015年03月17日 10:53
  • 1766

简单Struts2的目录结构

最近看Struts2,留个脚印。自己构建一个Struct2后的目录结构 1、Java Resources的src下是源码,例如Action类。还有一个struts.xml的配置文件,主要内容是在A...
  • tjzhaomengyi
  • tjzhaomengyi
  • 2016年04月11日 10:15
  • 2430

菜鸟必须知道的linux的文件目录结构

Linux文件目录结   /   根目录,所有的目录、文件、设备都在/之下,/就是Linux文件系统的组织者,也是最上级的领导者。   /bin   bin就是二进制(binary)英文缩写。在一般的...
  • wuwenxiang91322
  • wuwenxiang91322
  • 2013年07月01日 12:15
  • 3173

Django项目目录结构及一些注意点

1.将app放在apps文件夹中,将改文件夹设置为 source root,便于引用。两个app不可以互相引用,可以利用第三个app实现一些操作。 2.将一些多媒体文件放在media中的相应ap...
  • qq_16260961
  • qq_16260961
  • 2017年06月09日 23:24
  • 1443

c/c++程序的文件结构

文件结构:1.c/c++程序分两个文件a.头文件:用于保存程序的声明(“.h”为后缀);b.定义文件:用于保存程序的实现(c以“.c”为后缀,c++以“.cpp”为后缀)。2.为防止头文件被重复引用,...
  • yanxiaolx
  • yanxiaolx
  • 2016年05月29日 13:43
  • 1134

前端架构,前端架构组织结构,目录结构架构

【编者按】本文作者Matt Carella为我们讲解了如何构建一个良好的架构。除了选择正确的工具以外,在组织工作流中遵循清晰整洁的原则对于我们来说是非常重要的。或许有的人会觉得文中所说的是在DOS时代...
  • kongjiea
  • kongjiea
  • 2016年01月22日 16:52
  • 13767

mongodb入门之mongodb目录结构

安装完mongodb后,介绍下各个目录结构下的内容的含义,以及mongodb提供的工具的使用方法...
  • haishuitian1
  • haishuitian1
  • 2015年01月11日 22:21
  • 1566

Tomcat7目录结构详解(非常详细)

Tomcat7 的目录结构如图: ·   1、bin:该目录下存放的是二进制可执行文件,如果是安装版,那么这个目录下会有两个exe文件:tomcat6.exe、tomcat6w.exe,前者是...
  • jdjdndhj
  • jdjdndhj
  • 2016年09月28日 21:38
  • 24523
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一种文件目录结构的设想
举报原因:
原因补充:

(最多只允许输入30个字)