`
younglibin
  • 浏览: 1207779 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

文件系统

阅读更多

 

  注1:操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。文件系统由三部分组成:与文件管理有关的软件、被管理的文件以及实施文件管理所需的数据结构。从系统角度来看,文件系统是对文件存储器空间进行组织和分配,负责文件的存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。
  文件系统是操作系统用于明确磁盘或分区上的文件的方法和数据结构;即在磁盘上组织文件的方法。也指用于存储文件的磁盘或分区,或文件系统种类。因此,可以说"我有2个文件系统"意思是他有2个分区,一个存文件,或他用 "扩展文件系统",意思是文件系统的种类。
  磁盘或分区和它所包括的文件系统的不同是很重要的。少数程序(包括最有理由的产生文件系统的程序)直接对磁盘或分区的原始扇区进行操作;这可能破坏一个存在的文件系统。大部分程序基于文件系统进行操作,在不同种文件系统上不能工作。
  一个分区或磁盘能作为文件系统使用前,需要初始化,并将记录数据结构写到磁盘上。这个过程就叫建立文件系统。
  大部分UNIX文件系统种类具有类似的通用结构,即使细节有些变化。其中心概念是超级块superblock, i节点inode, 数据块data block,目录块directory block, 和间接块indirection block。超级块包括文件系统的总体信息,比如大小(其准确信息依赖文件系统)。 i节点包括除了名字外的一个文件的所有信息,名字与i节点数目一起存在目录中,目录条目包括文件名和文件的i节点数目。 i节点包括几个数据块的数目,用于存储文件的数据。 i节点中只有少量数据块数的空间,如果需要更多,会动态分配指向数据块的指针空间。这些动态分配的块是间接块;为了找到数据块,这名字指出它必须先找到间接块的号码。
  UNIX文件系统通常允许在文件中产生孔(hole) (用lseek ; 请看手册), 意思是文件系统假装文件中有一个特殊的位置只有0字节,但没有为这文件的这个位置保留实际的磁盘空间(这意味着这个文件将少用一些磁盘空间)。这对小的二进制文件经常发生,Linux共享库、一些数据库和其他一些特殊情况。 (孔由存储在间接块或i节点中的作为数据块地址的一个特殊值实现,这个特殊地址说明没有为文件的这个部分分配数据块,即,文件中有一个孔。)
  孔有一定的用处。在笔者的系统中,一个简单的测量工具显示在200MB使用的磁盘空间中,由于孔,节约了大约4MB。在这个系统中,程序相对较少,没有数据库文件。
分享到:
评论

相关推荐

    操作系统实验 编程实现简单文件系统

    操作系统实验,用C语言实现自己的文件系统。设有一个容量为2M字节的磁盘,磁盘中扇区(block)的大小为512字节,所有扇区可以视为构成一个线形存储空间,从0开始,顺序给每个扇区分配一个编号,视为物理扇区号,借助...

    emmc 文件系统优化

    随着移动设备和嵌入式系统越来越广泛的应用,对于eMMC存储设备文件系统进行优化成为了提升系统整体性能的关键。eMMC(嵌入式多媒体卡)是一种将NAND闪存与闪存控制器集成到单个芯片上的存储解决方案,广泛应用于各种...

    操作系统大实验 文件系统实验

    操作系统是计算机系统的核心组成部分,它负责管理系统的硬件资源和软件服务,其中文件系统是操作系统的重要功能之一。文件系统实验通常涉及对文件的创建、读取、写入、删除以及更高级的操作,如权限管理、磁盘空间...

    C语言模拟实现Linux文件系统

    C语言模拟实现Linux文件系统 1、在内存中开辟一块空间来模拟文件系统的运行,不读写硬盘。 2、面向单用户、单任务,不考虑并发,不考虑文件属主、组等概念。 3、程序开始后,初始化并接收用户输入。若输入”enter”...

    实现简单的文件系统

    在退出这个简单的文件系统时,将该虚拟文件系统保存到磁盘上,以便下次再将它恢复到内存的虚拟磁盘空间中。 2.提供以下操作: •new:建立一个新的简单文件系统; •sfs:打开一个简单文件系统; •exit:退出打开的...

    NTFS文件系统扇区存储探秘_扫描完整版

    《NTFS文件系统扇区存储探秘》主要内容包括:介绍NTFS文件系统优越的性能特征;介绍作者为了探索NTFS文件系统的存储特点编写的21个WIN32工具程序;使用作者编写的WIN32工具程序,探秘NTFS文件系统的扇区存储规律。 ...

    操作系统之文件系统设计一个n 个用户的文件系统,每次用户可保存m 个文件,用户在一次运行中只能打开一个文件,对文件必须设置保护措施。至少要有create,delete,open,close,read,write等命令

    操作系统中的文件系统是管理和控制计算机存储设备上的文件的关键组件,它负责组织、命名、存取和保护用户数据。在这个特定的实验任务中,你需要设计一个支持n个用户、每个用户可以保存m个文件的文件系统。为了确保...

    模拟文件系统设计报告

    《模拟文件系统设计报告》 本报告主要探讨的是如何使用C语言模拟实现操作系统中的文件管理系统。设计的核心目标包括实现文件的创建、查询、删除、修改、更名、拷贝等基本功能,以及采用多级目录机制来管理和操作...

    操作系统--文件系统实验源代码

    7. **文件系统挂载**:在Linux中,不同的物理存储设备可以被挂载到文件系统的某个点,形成虚拟的统一文件系统。挂载点和挂载操作是实验的重要部分。 8. **磁盘管理**:了解磁盘分区、格式化和文件系统类型(如ext4...

    模拟Linux文件系统

    (8) copy …: 拷贝文件,除支持模拟Linux文件系统内部的文件拷贝外,还支持host文件系统与模拟Linux文件系统间的文件拷贝,host文件系统的文件命名为…,如:将windows下D:盘的文件\data\sample\test.txt文件拷贝到...

    操作系统课程设计模拟Linux二级文件系统

    操作系统课程设计是IT学习中的重要环节,特别是在模拟真实操作系统功能时,如本次的主题——模拟Linux二级文件系统。这个任务旨在让学习者深入理解文件系统的原理和运作方式,从而提升对操作系统核心机制的理解。 ...

    exFAT文件系统结构分析.docx

    exFAT(Extended File Allocation Table)是微软推出的一种先进的文件系统,主要设计用于闪存设备,以解决FAT32在大容量存储上的限制。它提供了更好的性能、更高效的存储管理和更大的单个文件大小支持。在本文中,...

    Linux虚拟文件系统实现技术探讨.pdf

    《Linux虚拟文件系统实现技术探讨》一文深入讨论了Linux操作系统中虚拟文件系统(VFS,Virtual File System)的设计理念、关键数据结构及其工作原理,为理解Linux如何统一管理多种物理文件系统提供了详尽的解析。...

    C#实现的文件系统

    本项目" C#实现的文件系统 "旨在创建一个既具有Windows 7风格图形用户界面(GUI)又具备Linux命令行界面特色的文件管理系统。通过这种方式,用户可以享受到两种操作系统的优点,无论是喜欢直观的图形操作还是偏爱...

    模拟实现单级目录的FAT文件系统.doc

    ### FAT文件系统模拟实现知识点详解 #### 一、FAT文件系统概述 FAT(File Allocation Table)文件系统是一种被广泛使用的文件系统格式,主要用于软盘、USB闪存盘、固态硬盘等多种存储设备。FAT文件系统的核心在于其...

    Java版文件系统

    在Java编程环境中,实现一个操作系统级别的文件系统是一项挑战性的工作,因为这涉及到对底层硬件、内存管理和并发控制的理解。然而,通过使用Java提供的类库和API,我们可以构建一个模拟的文件系统,它能够进行基本...

    虚拟文件系统V2

    虚拟文件系统(Virtual File System,简称VFS)是一种在操作系统中用于实现不同文件系统兼容性的抽象层,它是Linux系统中的一项关键技术,为各种不同的文件系统提供统一的用户接口。Linux通过VFS能够在不同的文件...

    STM32+LittleVgl(LVGL)文件系统使用.zip

    在本文中,我们将探讨如何在STM32上结合LittleVGL(LVGL)库实现文件系统的使用。LittleVGL是一个开源的图形库,适用于嵌入式设备,用于创建丰富的用户界面。将文件系统与LittleVGL集成,可以为STM32应用添加存储和...

    winhex查看FAT32文件系统并分析

    在IT领域,深入理解文件系统对于数据恢复、故障排查以及系统维护至关重要。FAT32是一种广泛使用的文件系统,尤其在Windows操作系统中。WinHex是一款强大的十六进制编辑器,适用于磁盘、存储设备和文件的取证分析。...

    操作系统课程设计 文件系统 代码

    操作系统 课程设计 文件系统 代码

Global site tag (gtag.js) - Google Analytics