当前位置:  技术问答>linux和unix

unix文件系统:菜鸟的疑惑!

    来源: 互联网  发布时间:2014-12-30

    本文导语:  哪位大虾能不能给详细解释一下关于文件系统的真正意义,一定高分相送!妈的,学了unix也蛮久了,就是搞不懂这个文件系统在系统中到底是个什么意思!靠! 还有那个mkdev,它是用来创建设备文件的,但在创建过...

哪位大虾能不能给详细解释一下关于文件系统的真正意义,一定高分相送!妈的,学了unix也蛮久了,就是搞不懂这个文件系统在系统中到底是个什么意思!靠!
还有那个mkdev,它是用来创建设备文件的,但在创建过程中也有个文件系统的东东,那么这个东东又和文件系统有什么关系啊?书里写得乱七八糟的,说是mount文件系统,结果后面跟各设备文件,妈的,是不是我智商太低了!

|
从操作系统的定义来说,dos其实就是一个文件系统,他只实现了最基本的东西

FreeBSD下的内存文件系统


大多数操作系统,包括FreeBSD,通常使用磁盘来保存需要存储的数据。而操作系统采用文件的形式来保存数据,因此操作系统在磁盘上存储数据需要按照一定的格式进行,以便系统能够正确存储和访问文件,数据在磁盘上的组织格式被称为文件系统,不同的操作系统通常使用不同的数据组织格式,就是说使用不同的文件系统,例如FreeBSD使用UFS,而Linux使用Ext2FS等等。UFS是最古老和标准的Unix文件系统,但FreeBSD下对其进行了改进,主要目的是改善性能,改进后的文件系统也被称为FFS。


由于文件系统已经成为了操作系统访问外部磁盘数据的标准形式,操作系统很少直接访问磁盘获取数据。由于数据存储在实际应用中的重要意义,文件系统已经成为操作系统最基本的元素之一。进一步,多个操作系统可以通过同样的文件系统访问外部磁盘,而同一个操作系统也可以通过不同的文件系统访问不同的外部磁盘设备。这样一来,文件系统就成为了界于操作系统和外部磁盘设备之间的一个独立层次。


正是由于文件系统已经成为了独立的一个抽象层,因此可以在这个层次进行更为复杂的处理,例如不让文件系统从磁盘设备设备上读取数据,而是从网络上读取数据,就形成了网络文件系统,从内存中读取数据就形成了内存文件系统,对读取的数据进行加解密处理,就形成了加密文件系统,等等。



虚拟磁盘和内存文件系统


虽然目前磁盘的容量、速度和可靠性基本上能满足绝大多数应用系统的要求,但是在某些情况下,使用磁盘存储数据仍然存在一些问题。一个例子是在嵌入式系统中,系统通常没有磁盘,数据通常存储在各种不可擦写或可擦写型半导体芯片中。另一个常遇到的例子是应用系统对于数据访问要求特别高的性能,由于磁盘是一种机械设备,读写的性能总是有限的,不能满足应用系统的需要。


在这些例子中,在面对需要解决的问题的时候,通常有一个隐含前提,就是不改动操作系统和应用程序本身。如果可以改动系统,那么,人们就可以针对具体的需要设计另外一套完整的系统,上述问题事实上也就并不存在了。但是这种做法并不现实,因为这将意味着将全部操作系统和应用系统都推倒重来。因此,为了解决这些极端的需求,最简单的方法是在内存中分配一个区域作为文件系统的数据存储区,而不是使用磁盘作为存储设备,这样既能够满足操作系统对文件系统的需求,也能够满足应用系统的特殊需要。


使用内存作为文件系统基本上有两种不同的选择方式,最简单的方式是将内存中的一个区域模拟一个磁盘分区,然后就可以在这个虚拟磁盘上按照现有的文件系统组织数据,因此就需要初始化文件系统、装载与卸载等标准文件系统操作。另一种方法为重新设计一套全新的文件系统,其中并不包含任何磁盘的概念,但在系统中表现为一个标准文件系统。明显的,重新设计一套文件系统需要更多的工作量,因此,绝大多数情况下,人们使用第一种虚拟磁盘的方法。但是,现有的文件系统,如UFS等,都是基于磁盘设备而设计的,因此很多概念,比如按磁盘块读取数据、缓冲、碎片等等,都是针对磁盘设备提出的,理论上基于内存的存储不需要这些概念,因而也不会出现这些概念需要解决的一些问题。


由于内存文件系统是使用内存来模拟磁盘操作,因此数据都是在内存之间传输,就可以得到比较高的读写性能。当然,使用内存文件系统,一旦系统重新启动,所有的内容也就不再存在了,因此只能用来保存临时性的数据。也是由于是使用内存来保存数据,缓冲实质上没有任何意义,传统文件系统中的异步”async”和同步”sync”这两种概念的意义也不大了。


虽然从本质上讲,内存文件系统根本不需要缓冲,直接访问就能达到最好的效率,但是很难做到这一点,尤其是由于目前都还是使用内存来模拟一个磁盘设备的情况,内存文件系统事实上还是经过了缓冲。从这个地方,也可以看出目前使用的内存文件系统的弊病,内存文件系统本身占据了一份内存,磁盘缓冲又会占据一份内存,这样就导致了内存的浪费。在系统有交换分区存在的条件下,一旦系统内存紧张,该文件系统中的有关数据也会被交换到具体的交换设备上,同样避免不了对磁盘的物理访问,达不到提高性能的目的。而且一旦包括交换空间在内的所有虚拟内存用光,系统就无法正常提供服务了,从而影响系统的稳定性。


|
在OS里面,其实所有的操作都是在针对文件进行的。UNIX和LINUX这一类OS里面,对这个概念应该更好理解,它里面包括所有的设备都是作为文件进行处理的,像软驱,打印机,你都可以在/dev下找到相应的设备文件,mount其实可以认为是把设备文件和UNIX的文件系统建立关联。

|
其实楼上讲的已经比较清楚了,设备本身只是input、output的辅助工具。但是unix是以文件为单位,文件系统为一个类文件的集合;它的所有操作都是都是对文件进行操作的。在unix中外设就是一个文件系统,我们对它进行和其他文件系统一样的读和写,至于文件的标识,那就使inode的功能了。

|
fat,fat32,ntfs知道吧,这就是文件系统,
linux的文件系统有ext2,ext3,
unix的。。。。。。

|
老大,你怎么让人家给你在这里即时的解释fs这么复杂的东西?自己找资料也比在这里浪费时间强啊!

|
看看操作系统教材

    
 
 

您可能感兴趣的文章:

  • 我是菜鸟,听说去银行工作最好精通unix,可我现在学的是基于win2000的《现代操作系统》请问对以后学unix帮助大吗?
  • 菜鸟向sco unix+oracle高手请教
  • 菜鸟提问:请问Unix下面有没有类似Win32下_T这样的宏?
  • 菜鸟问题:现在要做unix下的c/c+编程的几个问题?
  • 菜鸟弱问Unix与硬件的兼容性问题
  • 菜鸟问题:unix中有像windows那样的自定义的环境变量吗?用java如何取
  • 关于SCO UNIX安装的菜鸟问题
  • 菜鸟提问:如何修改UNIX的shell提示符?
  • 菜鸟问题(sco unix网卡驱动安装)
  • 菜鸟提问:在Unix下如何象Windows一样抓屏?
  • 菜鸟询问关于Unix版本的问题
  • 安装sco unix 5.05 时,提示输入lisense number: 时找不到!!!!(菜鸟问题)
  • [菜鸟求助]unix_ident服务是什么东东?
  • 菜鸟问题:Linux/Unix下做C++开发,一般用什么工具??
  • unix 菜鸟发问,发言有分!!!!
  • 菜鸟问题:请问unix的内核部分的内容是不是能够调出到外存(对换区)?
  • 菜鸟问:windows和unix之间能否做磁盘镜像
  • unix c编程 菜鸟问题求助!
  • 菜鸟问题(可以安装Unix(AIX)+IBM DB2的最便宜的IBM机器是多少RMB)
  • 菜鸟问题,全文Linux和 Unix有 什么区别?
  • 疑惑求助:unix线程执行被异步中断后的问题
  • unix环境高级编程中有一个疑惑
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 小问题, Unix 如何建立一个文件 ,unix 文件有后缀名吗
  • .zip文件怎样在Unix下解压缩?.tar.tar文件怎样在Unix下解压缩
  • java中使用jxl生成excel文件,在unix中比在windows中明显慢,有高手知道原因吗?或者说unix和windows的文件系统哪个更快?
  • 各位兄弟帮忙,cut-ftp连接hp-unix,连接上了,但是unix上的文件不能显示,还能上传文件
  • 用oracle pl/sql 从A unix机器,去读取B unix机器上的一个文件,怎么实现?
  • 在 WINDOWS 2000 用 TELNET + IP 登录到 UNIX 中,怎样 GET UNIX 中的指定文件?
  • 在unix下如何拷贝文件?在windows下如何访问安装unix系统的硬盘?
  • UNIX怎样处理ASCII文件与文本文件
  • 新学者,各位不要吐血:哪儿有Unix的操作系统安装文件,我没有它的概念,我想学习之。Unix好神秘呀!
  • UNIX下how to 查找所有的文件夹下的文件?
  • 求助批处理实现dos -〉unix文件的转换,要将^M 替换为unix回车
  • unix下文件IO和dos下文件IO有什么区别?
  • 文件名为“apue.tar.Z”的文件在UNIX下怎么打开?大家帮帮忙
  • 谁有办法把一个原来是fat32的文件系统,被格式成为sco unix文件系统还原回来?
  • unix(IBM AIX)下怎么样删除文件名为e:bbbddd.dmp的文件啊?
  • UNIX中相当于WINDOWS中.bat文件的是哪种文件
  • Linix下编译生成的文件可以在本机器运行为什么不能在一Unix机器下运行。另外Unix下为什么没有make命令
  • hp-unix下,我用ftp软件打开hp-unix的时候目录不显示文件,我记得是用ROOT用户设置一下什么init.d什么的,但是忘记了,请知道的朋友指点!
  • 在unix下一个文件夹能包含多少个文件
  • 菜鸟问题:unix中有像windows那样的自定义的环境变量吗?用java如何取 iis7站长之家
  • java命名空间java.util.regex类pattern的类成员方法: unix_lines定义及介绍
  • 刚刚接触Unix系统和Unix编程。急需Unix下多线程程序设计和网络Socket程序设计方面的资料。
  • unix/Linux下c++ boost thread库读写锁介绍
  • 关于UNIX的历史 : 1973年,K.Thompson和D.M.ritchie,用C改写UNIX。那么,在此之前,UNIX是用什么写的?
  • php将标准字符串格式时间转换成unix时间戳_strtotime
  • 没有unix系统我如何学习unix
  • php将unix时间戳转换成字符串时间函数(date)
  • unix盘哪里有下载的??哪里有比较好的unix论坛??万分感谢!!!!!!!!!
  • unix/Linux下c/c++ pthread库读写锁函数介绍
  • 急!装完unix5.06,再装win2000。重启后不能进unix.
  • UNIX特急!!!digital unix问题,请专家快来!!!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3