• 计算机与操作系统:文件系统


      应用程序可以将数据保存在RAM中做到快速的读写。但是RAM有两个缺点:一是空间过小,无法保存较大型的数据;二是进程结束后,内存中的数据也会被释放,无法做到数据持久化。如果应用有存储大量数据或数据持久化的需求,那么就需要使用磁盘(机械硬盘,光盘,固态硬盘等)。机械硬盘的结构很复杂包括盘片,柱面,磁道,扇区等概念(固态硬盘使用闪存技术),如果让我们每次读写磁盘都要自己维护这几个参数,那么无疑是让人头大的。操作系统将磁盘地址空间抽象为文件,我们不需要直接操作磁盘,只需要操作文件,而读写文件背后的磁盘持久化逻辑对我们来说就是透明的。文件是受操作系统管理的,有关文件的构造,命名,访问,使用,保护,实现和管理方法都是由操作系统设计的主要内容,从总体上看,把操作系统中管理文件的部分称为文件系统

    文件命名

      文件是一种抽象机制,它提供了一种在磁盘上保存信息并方便以后读写的方法,这种方法可以使用户不必了解存储信息的方法,位置和实际磁盘工作方式等有关细节。

      文件的具体命名规则在各个系统中是不同的,不过所有的现代操作系统都允许1至8

    个字母组成的字符串作为合法的文件名。通常文件名中也允许有数字和一些其它特殊字符,许多文件系统支持长达255个字符的文件名(windows 95/98使用的文件系统是FAT-16,windows 98对FAT-16进行了一些扩展,从而成为FAT-32。虽然FAT已经过时,但是大部分windows系统仍支持该文件系统。较新版本的操作系统已经拥有更先进的本地文件系统(NTFS))。

      许多操作系统都支持使用圆点(.)将文件名分为两部分,其中圆点后的部分称为文件扩展名。扩展名可以表示文件的一些类型信息等。在linux中,文件扩展名只是一种约定,操作系统不会强制约束它。但是在windows系统中,文件扩展名被赋予了含义,用户可以在操作系统中注册扩展名,并为该扩展名指定处理程序,当用户双击该扩展名文件时,对应的处理程序就会启动并处理该文件。

    文件结构及文件类型

      文件可以有多种构造方式,下图为三种典型的构造方式。

      很多系统系统都支持多种文件类型,如普通文件,块特殊文件,字符特殊文件,目录等。普通文件是包含用户信息的文件,目录是管理文件系统结构的系统文件。普通文件一般分为ASCII文件和二进制文件。ASCII文件的优势就是可以显示和打印,还可以用任何文本编辑器进行编辑,相反打印出来的二进制文件是无法理解的。通常二进制文件有一定的内部结构,使用该文件的程序才了解这种结构。

      现代操作系统支持两种文件访问方式:顺序访问,随机访问(read操作时给出开始读文件的位置或用seek操作设置当前位置,然后从当前位置开始读文件)。

      文件都有文件名和数据,另外操作系统还会保存一些其它与文件相关的信息。这些附加信息称为文件属性或元数据。

       使用文件的目的是存储信息并方便以后的检索,对于存储和检索,文件系统提供了几个常用的系统调用:Create,Open,Close,Write,Read,Seek,Get Attribute,Set Attribute,Rename等。

    目录

      文件系统通常提供目录和文件夹用于记录文件的位置。目录系统最简单的形式就是在一个目录下面包含所有文件,这也是目录系统早期的表现形式,但随着多用户模式和用户文件的增多,单目录结构俨然是无法满足需求的,层次目录系统应运而生。

      管理目录的常用系统调用:Create,Delete,Opendir,Closedir,Readdir,Rename,Link,Unlink等。

    文件系统的实现

    文件系统布局

      

      

  • 相关阅读:
    HDU 1063 Exponentiation
    HDU 1261 字串数
    HDU 1715 大菲波数
    HDU 1002 A + B Problem II
    csharp 復制DataTable修改某列的值
    解决IE6下透明PNG图片有灰底的解决方案
    webform TextBox以一条横线显示 兼容各主流瀏覽器 .
    SQL 工齡計算
    csharp Format CultureInfo
    Csharp Winform TextBox 樣式以一條橫線顯示
  • 原文地址:https://www.cnblogs.com/jasonbourne3/p/16256068.html
Copyright © 2020-2023  润新知