Linux-5.10源代码之文件系统简介

  vfs : VFS(Virtual Filesystem Switch)称为虚拟文件系统或虚拟文件系统转换,是一个内核软件层,在具体的文件系统之上抽象的一
层,用来处理与Posix文件系统相关的所有调用,表现为能够给各种文件系统提供一个通用的接口,使上层的应用程序能够使用通用的接口访
问不同文件系统,同时也为不同文件系统的通信提供了媒介。

  9p : 9P(Plan 9 File System Protocol) 是一套轻量级的远程文件系统,经常用于虚拟机与外界的文件共享。WSL2(Windows Subsystem
for Linux 2) 就使用了该协议与 Linux 文件系统交互。 9P 通常使用 TCP 端口 564。

  adfs:acron磁盘文件系统,是在RiscOS操作系统中使用的标准文件系统。

  affs:Amiga计算机使用的文件系统。

  afs : AFS 是 Andrew File System 的缩写,他是一种分散式的文件系 统 ( Distributed File System )可以将分散在不同机器上磁盘
空间组合成一个共有的磁盘空间,让使用者能够在不同的机器上使用相同的文件系统来管理自己的文件。

  autofs : autofs一般常用来挂载nfs和samba等等。

  befs:BeOS操作系统使用的文件系统。

  bfs : 数据库文件系统。

  btrfs : Btrfs(B-tree, Butter FS, Better FS)是一种遵循GPL协定的文件系统,由Oracle公司于2007年发布,它的最突出特点是CoW(
写时复制)。
 
  cachefiles : 网络缓存文件系统。

  ceph : Ceph是加州大学Santa Cruz分校的Sage Weil(DreamHost的联合创始人)专为博士论文设计的新一代自由软件分布式文件系统。

  cifs:通用Internet文件系统(Common Internet File System,简写为CIFS),用于访问符合SNIA CIFS标准的服务器。CIFS对SMB协议进
行改进和标准化(SMB协议可用于在Linux和Windows之间共享文件),是一种虚拟文件系统。

  coda : Coda文件系统(Coda File System)适用于分布式网络环境。它是1987年在卡耐基梅隆大学以AFS2为原型开发出来的。Linux
Virtual Server就采用了Coda文件系统。

  configfs : configfs 是一个基于内存的文件系统,它提供了与sysfs相反的功能。sysfs 是一个基于文件系统的内核对象视图,而
configfs 是一个基于文件系统的内核对象管理器(或称为config_items)。

  cramfs : CRAMFS文件系统是专门针对闪存设计的只读压缩的文件系统。

  crypto : 加密文件系统。

  debugfs : 调试文件系统。

  devpts : 设备文件系统。

  dlm :  内核或用户空间的通用分布式锁管理器。

  ecryptfs : eCryptfs是Linux平台下的企业文件加密系统。它起源于Erez Zadok's Cryptfs,通过FiST框架实现层叠式文件系统。

  efivarfs : 从 linux 3.8 开始,内核中添加的一个新的文件系统,efivarfs文件系统是为了解决在sysfs中使用entries来维
EFIvariables的缺点.

  efs : EFS是用于非ISO9660 CD-ROM的较旧文件系统。

  erofs : EROFS(增强型只读文件系统)华为的EROFS超级文件系统,Linux内核5.4中也正式将华为EROFS超级文件系统合入了主线。

  exfat : exFAT(Extended File Allocation Table File System,扩展FAT,即扩展文件分配表)是Microsoft在Windows Embeded 5.0以
上(包括Windows CE 5.0、6.0、Windows Mobile5、6、6.1)中引入的一种适合于闪存的文件系统,为了解决FAT32等不支持4G及其更大的文
件而推出。对于闪存,NTFS文件系统不适合使用,exFAT更为适用。对于磁盘则不太适用。

  exportfs : 用于文件系统导出支持。

  ext2:专门为Linux系统设计的文件系统,具有速度快和CPU占用率低等选特点。既可以用于标准的块设备,也可以应用到移动存储介质上
。ext2不包括日志功能;
  
  ext4:与ext2相比包含了日志功能,维护了最近更改的源数据(和文 件有关的信息,包括权限、所有者、创建时间、访问时间等)的记录
,如果源数据由于非法关机等原因遭到破坏,文件系统将不能正常工作。通过ext4的日志系 统,可以对源数据进行适当的恢复。此外,ext3
的日志功能可使硬盘读写头的移动达到最佳化;

  f2fs : F2FS (Flash Friendly File System) 是专门为基于 NAND 的存储设备设计的新型开源 flash 文件系统。特别针对NAND 闪存存储
介质做了友好设计。F2FS 于2012年12月进入Linux 3.8 内核。F2FS仅支持Linux操作系统。

  fat : FAT是文件配置表(英语:File Allocation Table,首字母缩略字:FAT),是一种由微软发明并拥有部分专利的文件系统,供MS-
DOS使用,也是所有非NT核心的微软窗口使用的文件系统。

  freevxfs : FreeVxFS是支持VERITAS VxFS(TM)的文件系统。

  fscache : Facebook在Linux上实现硬盘级的Flashcache/Bcache来应对大数据存储的挑战。

  fuse : 用户空间文件系统。

  gfs2 : GFS2 是一个基于 GFS的先进的集群文件系统。

  hfs : MAC下常用的混合文件系统。

  hfsplus : HFS Plus 或者HFS+是苹果公司 (Apple)的MAC机所使用的光盘文件系统,为了取代混合文件系统 (Hybrid File System-HFS)。
这同时也是数字音乐播放器iPOD用的格式。

  hostfs : 主机文件系统。目前不了解用途。

  hpfs : HPFS一般指高性能文件系统。高性能文件系统 (High Performance File System ,HPFS),HPFS是Microsoft的LAN Manager中的
文件系统,同时也是IBM的LAN Server和OS/2产品。

  hugetlbfs : 内存大页面支持特殊文件系统。

  iomap : 输入输出映射。目前不了解用途。

  isofs : 从High Sierra(CD-ROM使用的最初标准)发展而来的光盘文件系统,是CD-ROM的标准文件系统;

  jbd2 : jbd的全拼是journaling block driver 文件系统的日志功能,jbd2是ext4文件系统版本。自从Linux系统引入了Ext4文件系统了,
就有一个JBD2为之服务,其实JBD2也可以为其它的文件系统服务,但是目前来说只有Ext4和OCFS2文件系统用它。

  jffs2 : JFFS2的全名为JournallingFlashFileSystemVersion2(闪存日志型文件系统第2版),其功能就是管理在MTD设备上实现的日志型
文件系统。

  jfs : JFS( JOURNAL FILE SYSTEM),一种字节级日志文件系统,借鉴了数据库保护系统的技术,以日志的形式记录文件的变化。

  kernfs : 内核虚拟文件系统。
 
  lockd : Linux锁管理器。

  minix : MINIX操作系统中的原生文件系统,只支持长度为30字符以下的文件名。

  nfs : 网络文件系统,英文Network File System(NFS),是由SUN公司研制的UNIX表示层协议(presentation layer protocol),能使使用
者访问网络上别处的文件就像在使用自己的计算机一样。

  nfs_common : NFS客户端和服务器共享的Linux文件系统例程

  nfsd : NFS服务器支持

  nilfs2 : NILFS2 是一种 Log-Structure File System。最早的 Log-Structure File System 由 TCL/TK 语言的创始人 John Kenneth
Ousterhout 在 Sprite 操作系统中实现。其基本思想是将底层设备当作一种只能追加写 (append) 的设备。将文件修改顺序追加写入磁盘,
而不覆盖旧数据。顺序写入能避免很多寻道 (seek) 操作。seek 是一种机械操作,很难提高速度。因此减少 seek 能极大提高文件系统的写
效率。

  nls : 文件系统本地语言支持

  notify : 文件系统变化通知机制

  ntfs : NTFS文件系统最早出现于1993年的Windows NT操作系统中,它的出现大幅度地提高了微软原来的FAT文件系统的性能。

  ocfs2 : OCFS1问世于2002年10月,它是Oracle公司为了让RAC用户避免必须要与裸设备打交道而开发出来的。这个文件系统用来存放数据
库相关的文件,比如数据文件,控制文件,在线日志文件,归档日志文件等。OCFS2是下一代的ORACLE集群文件系统,它已经被设计成为一种
通用的文件系统,它不仅可以存放数据库相关的文件,还可以存放oracle二进制文件(指Oracle_home下的软件文件-译者注)和配置文件,从
而使RAC的管理更加轻松。
  
  omfs : OMFS是由SonicBlue公司创建的用于ReplayTV DVR和MP3 player的文件系统。

  openpromfs : Linux Sun Openprom文件系统

  orangefs :  OrangeFS 分布式文件系统

  overlayfs : Overlayfs是一种类似aufs的一种堆叠文件系统,于2014年正式合入Linux-3.18主线内核,目前其功能已经基本稳定(虽然还
存在一些特性尚未实现)且被逐渐推广,特别在容器技术中更是势头难挡。

  proc:基于内存的伪文件系统,不占用外存空间,只是以文件的方式为访问Linux内核数据提供接口。由于proc文件系统是虚拟的,所以无
需挂载。用户和应用程序可以通过/proc得到系统的运行信息,并可以改变内核的某些参数.
  
  pstore : 主要用于存储内核异常时的log信息。实现方式是,管理一块“非易失性的存储空间”,如不断电的RAM或外部存储,当系统异常
时,将log信息写到Pstore管理的存储空间,直到下一次系统正常时,在将log读出来,以文件形式提供给用户使用。

  qnx4 : 黑莓(BlackBerry QNX)操作系统的实时文件系统

  qnx6 :黑莓(BlackBerry QNX)操作系统的实时文件系统

  quota :设置磁盘限制使用情况(也称为磁盘配额)。目前,它适用于ext2,ext3,ext4,jfs,ocfs2和reiserfs文件系统。

  ramfs : ramfs是Linux下一种基于RAM做存储的文件系统。

  reiserfs :ReiserFS是一个非常优秀的文件系统。也是最早用于Linux的日志文件系统之一。ReiserFS的开发者非常有魄力,整个文件系
统完全是从头设计的。目前,ReiserFS可轻松管理上百G的文件系统,这在企业级应用中非常重要。

  romfs : ROMFS是一种简单的只读文件系统,主要是用来当做初始文件系统来使用的,在嵌入式linux或是uclinux中通常使用这种文件系统
来作为引导系统,甚至uclinux有时就直接把ROMFS作为其根文件系统,而不是将其作为系统启动中的过渡文件系统。

  squashfs : SquashFS是一套基于Linux内核使用的压缩只读文件系统。该文件系统能够压缩系统内的文档,inode以及目录,文件最大支持
2^64字节。SquashFS是基于GPL协议的开源软件。初始的版本使用gzip压缩,2.6.34版本Linux内核增加了支持LZMA和LZO压缩,并且在2.6.38
内核版本上增加支持XZ压缩。

  sysfs : sysfs是一个基于内存的文件系统,它的作用是将内核信息以文件的方式提供给用户程序使用。sysfs可以看成与proc,devfs和
devpty同类别的文件系统,该文件系统是虚拟的文件系统,可以更方便对系统设备进行管理。它可以产生一个包含所有系统硬件层次视图,
与提供进程和状态信息的proc文件系统十分类似。

  sysv :UNIX中最常用的system V文件系统。

  tracefs :tracefs是用于激活跟踪的伪文件系统。

  ubifs :无序区块镜像文件系统(Unsorted Block Image File System, UBIFS)是用于固态存储设备上,并与LogFS相互竞争,作为JFFS2的
后继文件系统之一。UBIFS由IBM与Nokia的工程师Thomas Gleixner,Artem Bityutskiy所设计,开发于2007年,并于2008年10月第一次加入
Linux核心2.6.27版。专门为了解决MTD(Memory Technology Device)所遇到的瓶颈。由于Nand Flash容量的暴涨,YAFFS等皆无法操控大的
Nand Flash空间。UBIFS通过子系统UBI处理与MTD device之间的动作。与JFFS2一样,UBIFS 建构于MTD之上,因而与一般的块设备不兼容。
UBIFS在设计与性能上均较YAFFS2、JFFS2更适合MLC NAND FLASH。例如:UBIFS 支持 凑数(write-back), 其写入的数据会被缓存起来, 直
到有必要写入时才写到flash, 这样大大降低分散小区块数量,并提高读写效率。UBIFS文件系统目录存储在flash上,UBIFS 挂载时不需要扫
描整个存储器来重新创建文件目录。支持实时压缩,而且可选择性压缩部份文件。另外UBIFS使用日志(journal),可减少对flash index的
更新频率。UBIFS 是 Nokia N900 智能手机上的默认文件系统。

  udf :UDF 是统一光盘格式 (Universal Disc Format)的英文缩写 ,由国际标准化组织于1996 年制定的通用光盘文件系统 。它采用标准
的包刻录技术 (PW ,Packet Writing)来简化刻录机的使用。UDF文件系统使用户可以如同操作硬盘那样来使用CD- RW刻录机。

  ufs :UFS是UNIX文件系统的简称,它来源于4.3Tahoe发行版中提供的BSD Fat Fast File System(FFS)系统,属于FFS的演化版本。UFS
几乎是大部分UNIX类操作系统默认的基于磁盘的文件系统,包括Solaris、Free BSD、Open BSD、Net BSD、HP-UX等,甚至Apple的OS X也能
支持UFS文件系统。

  unicode :Unicode是一种宽字符集,用来支持UTF-8字符。

  vboxsf : VirtualBox虚拟机来宾共享文件夹支持。

  verity :基于文件的只读真实性效验

  xfs :XFS一种高性能的日志文件系统,最早于1993年,由Silicon Graphics为他们的IRIX操作系统而开发,是IRIX 5.3版的默认文件系统
。2000年5月,Silicon Graphics以GNU通用公共许可证发布这套系统的源代码,之后被移植到Linux 内核上。XFS 特别擅长处理大文件,同
时提供平滑的数据传输。XFS 最初是由 Silicon Graphics,Inc. 于 90 年代初开发的。那时,SGI 发现他们的现有文件系统(existing
filesystem,EFS)正在迅速变得不适应当时激烈的计算竞争。为解决这个问题,SGI 决定设计一种全新的高性能 64 位文件系统,而不是试
图调整 EFS在先天设计上的某些缺陷。因此,XFS 诞生了,并于 1994 年随 IRIX 5.3 的发布而应用于计算。

  zonefs :西部数据开发的Zonefs已经确定要在Linux 5.6内核中登场了,这并不是一个传统意义上面的通用文件系统(比如Ext4、NTFS)
,而是一个针对特定硬件设备的文件系统,它为分区式存储设备进行了高度的优化。SMR HDD(叠瓦式硬盘)有一个毛病,它只有在顺序写入
时才能正常发挥性能,一旦要进行数据覆盖写入,就需要改写这块数据所在区块内的所有磁道,造成严重的性能下降。传统的文件系统不会
因为SMR HDD的特性而特别对待它,而Zonefs就是西部数据对SMR HDD和其他分区式存储设备提出的优化方案。它在传统的块设备之外提供了
另一种映射,将分区式存储设备上面的每一个区都映射成一个单独的文件,这带来的好处就是应用程序无需修改太多的代码即可利用上分区
式存储设备的优点,很多原本要自己做的控制都被集成在Zonefs里面了,不用开发者来动手了,这大大减少了使用分区式存储设备的迁移工
作量。


 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值