linux file systems brief introduction

最近剪裁linux kernel,发现文件系统部分占用挺大的,下面列出linux下大部分文件系统,以及各个文件系统的简介。http://www.wq3028.top/technology/kernel/fs/20180727108/

进入linux kernel网站下载linux kernel包 https://www.kernel.org/

实验kernel版本为linux-4.17.10,执行make menuconfig进入图形config模式,选择进入File systems选项,可以看到最新kernel中可以支持的文件系统,我大概筛选了下list如下,下面我将简单介绍这些文件系统。

  1. Second extended fs
  2. The Extended 3 (ext3) filesystem
  3. The Extended 4 (ext4) filesystem
  4. Reiserfs
  5. JFS filesystem
  6. XFS filesystem
  7. GFS2 file system
  8. OCFS2 file system
  9. Btrfs filesystem
  10. NILFS2 file system
  11. F2FS filesystem
  12. ISO 9660 CDROM file system
  13. UDF file system
  14. DOS/FAT/NT Filesystems
  15. ORANGEFS (Powered by PVFS)
  16. ADFS file system
  17. Amiga FFS file system
  18. eCrypt filesystem
  19. Apple Macintosh file system
  20. Apple Extended HFS file system
  21. BeOS file system (BeFS)(read only)
  22. BFS file system
  23. EFS file system
  24. Journalling Flash File System v2 (JFFS2)
  25. UBIFS file system
  26. Compressed ROM file system (cramfs)
  27. SquashFS 4.0 - Squashed file system
  28. Squashfs XATTR
  29. FreeVxFS file system(VERITAS VxFS(TM) compatible)
  30. Minix file system
  31. OS/2 HPFS file system
  32. QNX4/6 file system (read only)
  33. ROM file system
  34. sysfs file system support
  35. UFS file system(read only)
  36. exofs: OSD based file system
  37. NFS
  38. SMB3 and CIFS (advanced network filesystem)
  39. Coda file system (advanced network fs)

extended fs (ext ext2 ext3 ext4)

extended 从字面上的意思上来解读就是拓展的意思,拓展文件系统,它是专门为Linux设计的。ext于1992年4月发表,是为linux核心所做的第一个文件系统。它是在linux上,第一个利用虚拟文件系统实现出的文件系统,在linux核心0.96c版中首次加入支持,最大可支持2GB的文件系统。ext2由Rémy Card设计,用以代替ext,是LINUX内核所用的文件系统。单个文件最大限制2TB;该文件系统最大支持32TB的容量。ext3一个日志文件系统。单个文件最大限制16TB,该文件系统最大支持32TB的容量。ext4Theodore Tso领导的开发团队实现,Linux系统下的日志文件系统。单个文件最大限制16TB,该文件系统最大支持1EB的容量

ReiserFS

ReiserFS是一种新型的文件系统,它通过一种与众不同的方式–完全平衡树结构来容纳数据,包括文件数据,文件名以及日志支持。ReiserFS还以支持海量磁盘和磁盘阵列,并能在上面继续保持很快的搜索速度和很高的效率。

JFS filesystem

JFS一种字节级日志文件系统,该文件系统主要是为满足服务器的高吞吐量和可靠性需求而设计、开发的。单个文件最大限制16TB,该文件系统最大支持1PB的容量。

XFS filesystem

XfS文件系统是SGI开发的高级日志文件系统,XFS极具伸缩性,非常健壮。

GFS2 file system

GFS 也就是 google File System,Google公司为了存储海量搜索数据而设计的专用文件系统。GFS是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。GFS2 文件系统不提供对上下文关联路径名的支持,上下文关联路径名允许您生成指向各种目的地文件或者目录的符号链接。

OCFS2 file system

OCFS2是下一代的ORACLE集群文件系统,它已经被设计成为一种为通用的文件系统。OCFS2能使运行在集群中所有节点并发的通过标准文件系统接口来访问存储备。

Btrfs filesystem

文件系统似乎是内核中比较稳定的部分,多年来,人们一直使用 ext2/3,ext 文件系统以其卓越的稳定性成为了事实上的 Linux 标准文件系统。近年来 ext2/3 暴露出了一些扩展性问题,于是便催生了 ext4 。在 2008 年发布的 Linux2.6.19 内核中集成了 ext4 的 dev 版本。 2.6.28 内核发布时,ext4 结束了开发版,开始接受用户的使用。似乎 ext 就将成为 Linux 文件系统的代名词。然而当您阅读很多有关 ext4 的文章时,会发现都不约而同地提到了 btrfs,并认为 ext4 将是一个过渡的文件系统。 ext4 的作者 Theodore Tso 也盛赞 btrfs 并认为 btrfs 将成为下一代 Linux 标准文件系统。https://www.ibm.com/developerworks/cn/linux/l-cn-btrfs/

NILFS2 file system

NiLFS(2) 是日本 Nippon Telegraph and Telephone(NTT)开发的一种日志结构文件系统的第二次迭代。该文件系统的开发非常活跃,最近已进入主流 Linux 内核(另外还有 NetBSD 内核)。第一版的 NILFS(version 1)出现于 2005 年,这个版本没有任何形式的垃圾收集。在 2007 年,第 2 版首次发布,其中包括一个垃圾收集器,并且可以创建和维护多个快照。今年(2009),NiLFS(2) 文件系统进入主流内核,可通过安装它的可装载模块方便地启用它。https://www.ibm.com/developerworks/cn/linux/l-nilfs-exofs/

F2FS filesystem

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

ISO 9660 CDROM file system

ISO 9660文件系统(file system)是一个标准的CD-ROM文件系统,它允许您在PC、Mac和其它主要计算机平台上读取CD-ROM文件。此标准,通过于1998年,是由称为High Sierra的工业组织草拟的。几乎所有带有CD-ROM的计算机都可以从ISO 9660文件系统读取文件。

UDF file system

UDF 是统一光盘格式 (Universal Disc Format)的英文缩写 ,由国际标准化组织于1996 年制定的通用光盘文件系统 。它采用标准的包刻录技术 (PW ,Packet Writing)来简化刻录机的使用。
DOS/FAT/NT Filesystems

DOS是DOS操作系统的文件系统
FAT是文件配置表(英语:File Allocation Table,首字母缩略字:FAT),是一种由微软发明并拥有部分专利的文件系统,供MS-DOS使用,也是所有非NT核心的微软窗口使用的文件系统。
Microsoft Windows NT(New Technology)是Microsoft在1993年推出的面向工作站、网络服务器和大型计算机的网络操作系统,也可做PC操作系统。
ORANGEFS (Powered by PVFS)

Orangefs是一种扩展的网络文件系统,专为高端计算(HEC)系统设计,它提供对基于多服务器的磁盘存储的非常高性能的访问。OrangeFS服务器和客户端都是用户级代码,因此它们非常容易安装和管理。OrangeFS优化了对并行和分布式应用程序的MPI-IO支持,并将其用于生产安装,并用作分布式和并行存储的研究平台。OrangeFS现在是版本4.6的Linux内核的一部分。随着内核的这个版本变得广泛可用,它将简化Linux应用程序通过OrangeFS使用并行存储的过程。http://www.orangefs.org/
ADFS file system

The Acorn Disc Filing System is the standard file system of the RiscOS operating system which runs on Acorn’s ARM-based Risc PC systems and the Acorn Archimedes range of machines.
Amiga FFS file system

The Amiga Fast File System (abbreviated AFFS, or more commonly historically as FFS, not to be confused with the identically named Berkeley Unix FFS) is a file system used on the Amiga personal computer. The previous Amiga filesystem was never given a specific name and known originally simply as “DOS” or AmigaDOS. https://en.wikipedia.org/wiki/Amiga_Fast_File_System

eCrypt filesystem

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

Apple Macintosh file system

苹果电脑文件系统

Apple Extended HFS file system

APFS是为苹果设备创建的下一代的文件系统(代替HFS+)。可以在iOS、macOS、tvOS、watchOS全平台运行。APFS在构建的时候是以加密为主要特征的,它可以充分利用SSD存储和Flash闪存。

BeOS file system (BeFS)(read only)

The BeOS File System (BeFS) is the native file system of Be, Inc’s BeOS.

BFS file system

The Be File System (BFS) is the native file system for the BeOS. In the Linux kernel, it is referred to as “BeFS” to avoid confusion with Boot File System.

EFS file system

加密文件系统。 EFS加密是基于公钥策略的, 对用户是透明的。这也就是说,如果你加密了一些数据,那么你对这些数据的访问将是完全允许的,并不会受到任何限制。

Journalling Flash File System v2 (JFFS2)

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

UBIFS file system

无序区块镜像文件系统(Unsorted Block Image File System, UBIFS)是用于固态存储设备上,并与LogFS相互竞争,作为JFFS2的后继文件系统之一。

Compressed ROM file system (cramfs)

CRAMFS文件系统是专门针对闪存设计的只读压缩的文件系统,其容量上限为256M,采用zlib压缩,文件系统类型可以是EXT2或EXT3.

SquashFS 4.0 - Squashed file system

SquashFS [1] 是一套基于Linux内核使用的压缩只读文件系统。该文件系统能够压缩系统内的文档,inode以及目录,文件最大支持2^64字节。

FreeVxFS file system(VERITAS VxFS(TM) compatible)

FreeVxFS is a file system driver that support the VERITAS VxFS(TM) file system format. VERITAS VxFS(TM) is the standard file system of SCO UnixWare (and possibly others) and optionally available for Sunsoft Solaris, HP-UX and many other operating systems. However these particular OS implementations of vxfs may differ in on-disk data endianess and/or superblock offset.

Minix file system

Minix is a simple operating system used in many classes about OS’s. The minix file system (method to organize files on a hard disk partition or a floppy disk) was the original file system for Linux, but has been superseded by the second extended file system ext2fs.

OS/2 HPFS file system

HPFS,即High Performance File System(高性能文件系统),最早是随 OS/2 1.2 引入的,目的是提高访问当时市场上出现的更大硬盘的能力。

QNX4/6 file system (read only)

This is the file system used by the real-time operating systems QNX 4 and QNX 6 (the latter is also called QNX RTP).

ROM file system

romfs is a space-efficient, small, read-only filesystem originally for Linux and used by some Linux based projects. It is a block-based filesystem, that means it makes use of block (or sector) accessible storage driver (like disks, CDs, ROM drives). It is part of stock Linux kernels since about version 2.1.21 (about January, 1997). All current (2.4–2.6) kernel sources contain support for romfs, but depending on the distributor, it might not have been compiled in. http://romfs.sourceforge.net/

sysfs file system support

The sysfs filesystem is a virtual filesystem that the kernel uses to export internal kernel objects, their attributes, and their relationships to one another.

UFS file system(read only)

BSD and derivate versions of Unix (such as SunOS, FreeBSD, NetBSD, OpenBSD and NeXTstep) use a file system called UFS. Some System V Unixes can create and mount hard disk partitions and diskettes using this file system as well.

exofs: OSD based file system

EXOFS (formerly known as OSDFS) is an object-based file system implemented on top of an external object store. Its name stands for “EXtended Object File System” referring to its use of ext2-based metadata and object storage devices. Exofs was originally developed by Avishay Traeger for IBM HRL and was originally based on the ext2 file system.[1]Since 2008, Panasas develops and maintains Exofs on open-osd.org.

NFS

NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。

SMB3 and CIFS (advanced network filesystem)

CIFS 是一个新提出的协议,它使程序可以访问远程Internet计算机上的文件并要求此计算机提供服务。CIFS 使用客户/服务器模式。客户程序请求远在服务器上的服务器程序为它提供服务。服务器获得请求并返回响应。CIFS是公共的或开放的SMB协议版本,并由Microsoft使用。SMB协议在局域网上用于服务器文件访问和打印的协议。像SMB协议一样,CIFS在高层运行,而不像TCP/IP协议那样运行在底层。CIFS可以看做是应用程序协议如文件传输协议和超文本传输协议的一个实现。

Coda file system (advanced network fs)

Coda is an advanced network file system, similar to NFS in that it enables you to mount file systems of a remote server and access them with regular Unix commands as if they were sitting on your hard disk. Coda has several advantages over NFS: support for disconnected operation (e.g. for laptops), read/write server replication, security model for authentication and encryption, persistent client caches and write back caching.

猜你喜欢

转载自blog.csdn.net/wq3028/article/details/81235547