《2022年Linux文件系统概述 .pdf》由会员分享,可在线阅读,更多相关《2022年Linux文件系统概述 .pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Linux文件系统概述什么是文件系统文件系统是对一个存储设备上的数据和元数据进行组织的机制。尽管内核是Linux 的核心,但文件却是用户与操作系统交互所采用的主要工具。文件系统的作用就是在应用概念的文件和存储设备之间提供一个中间层,以使多个文件驻留在一个存储设备上,由文件系统来管理所有文件的存储。术语“文件系统”可以在Linux 文件编制中互换使用,用于指代几个不同但相关的概念。除磁盘分区的具体实例外,文件系统还指代数据结构以及分区中文件的管理方法。Linux 和 UNIX 中的基本文件存储单元都是磁盘分区,即将一个或多个硬盘的逻辑划分,操作系统将每个逻辑分区视为独立的磁盘。文件和文件管理系统
2、处于在磁盘分区中。Linux将这些磁盘分区作为设备处理,进而通过 /dev 目录中的特殊文件使用文件I/O 机制。 文件系统将每个存储设备化为一系列目录,每个目录含有若干文件。在Linux 中将一个文件系统与一个存储设备关联起来的过程称为挂装(mount )。使用mount 命令将一个文件系统附着到当前文件系统层次结构中(/)。在执行挂装时,要提供文件系统类型、文件系统和一个挂装点。# df -a Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda2 39984500 2594352 37390148 7% / proc 0
3、 0 0 - /proc sysfs 0 0 0 - /sys debugfs 0 0 0 - /sys/kernel/debug udev 648284 96 648188 1% /dev devpts 0 0 0 - /dev/pts securityfs 0 0 0 - /sys/kernel/security /dev/hdc 2627822 2627822 0 100% /media/SLES10SP_001 注:以上“/dev/sda2”、“proc ”、 “sysfs”、 “debugfs”、“udev ”、“devpts”、“securityfs”、“/dev/hdc”都是文件
4、系统。文件系统的另一个解释是:文件系统是在一个磁盘(包括光盘、软盘、闪盘及其它存储设备)或分区组织文件的方法,如ext3、reiserfs 或 iso9660;另一种看待文件系统的方式是把它看作一个协议。网络协议(比如IP)规定了互联网上传输的数据流的意义,同样,文件系统会给出特定存储媒体上数据的意义。比如NFS (网络文件系统)、CIFS (通用网际文件系统)。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 5 页 - - - - - - - - - Linux文件系统
5、层次结构“文件系统层次结构”用于系统中文件的整体组织形式:目录树。Linux 文件系统的结构是树形结构,并且遵循自己的文件系统层次标准(Filesystem Hierarchy Standard )。 Linux和 UNIX 的文件系统是一个以“/ “为根的阶层式的树状文件结构,/ 因此被称为根目录。所有的文件和目录都置于根目录/ 之下。根目录/下面有 /usr,/etc ,/var 等子目录。结构如下图:几个主要常用的文件目录的用途如下:目录内容和用途/ 根目录/bin 一般用户使用的命令/boot 放置内核及LILO、GRUB 等导引程序 (bootloader)的文件, 用于启动。/de
6、v 硬盘,分区,键盘,鼠标,tty 等所有的设备文件都放在这个目录。/etc 系统的所有配置文件都存放在此目录中。/home 用户空间,所有的用户都是用此空间。/lib 共享连接库,如C 库和 C 编译器等等。/media 挂接 CD-ROM等设备的目录/mnt 移动设备文件系统的挂点/opt 存放后来追加的用户应用程序/root Root 用户的家目录名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 5 页 - - - - - - - - - /sbin 存放系统管理所需
7、要的命令/tmp 临时文件目录,重新启动时被清除/usr 存放只能读的命令和其他文件。/usr/X11R6 X Window系统/usr/bin 用户和管理员的标准命令/usr/include c/c+等各种开发语言环境的标准include文件/usr/lib 应用程序及程序包的连接库/usr/local/ 系统管理员安装的应用程序目录/usr/local/share 系统管理员安装的共享文件/usr/sbin 用户和管理员的标准命令/usr/share 存放使用手册等共享文件的目录/usr/share/man 系统使用手册/var /var/cache 应用程序缓存目录/var/games
8、游戏数据/var/lib 各种状态数据/var/lock 文件锁定纪录/var/log 日志记录/var/mail 电子邮件/var/opt /opt目录的变量数据/var/run 进程的标示数据/var/spool 存放电子邮件,打印任务等的队列目录。/var/tmp 临时文件目录Linux文件系统类型文件系统是文件的数据结构或组织方法,每一种数据结构或组织方法称为一种文件系统类型。 要使分区后的磁盘可用,必须在其上构建文件系统。这种情况下,通常还将文件系统称作“分区类型”、“基于磁盘的文件系统”和“文件系统类型”。目前核专门为Linux 设备的文件系统有ext2、ext3、ReiserFS
9、 。总体来说, Linux 的磁盘文件系统有两大类:标准文件系统ext 是第一个专门为Linux 设计的文件系统类型,称为扩展文件系统,在 Linux 发展的早期,起过重要的作用。由于稳定性,速度和兼容性方面存在许多缺陷,ext 现已很少使用。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 5 页 - - - - - - - - - ext2 是为解决 ext 文件系统存在的缺陷而设计的可扩展、高性能的文件系统,称为二级扩展文件系统。 Ext2: 是 GNU/Linux
10、系统中标准的文件系统,其特点为存取文件的性能极好,对于中小型的文件更显示出优势,这主要得利于其簇快取层的优良设计。日志文件系统( Journaling Filesystems)日志文件管理系统(如ext3 和 ReiserFS )记录对文件系统元数据:inode、空闲块分配映射、 inode 映射等的更改。当系统崩溃时,可以通过此方式检查日志以获得最近修改的元数据, 从而确保快速恢复文件系统。此功能对大型系统尤其重要。如果没有此功能,则在出现硬件故障后,对于ext2 等文件系统,需要在重新启动时运行fsck 工具。对于大型文件系统,此过程可能要花费几个小时。ext3 是 ext2 的升级版本,
11、兼容ext2,在 ext2 的基础上,增加了文件系统日志记录功能,称为日志式文件系统,是目妆Linux 默认采用的文件系统。日志式文件系统在因断电或其他异常事件而停机重启后,操作系统会根据文件系统的日志,快速检测并恢复文件系统到正常的状态,并可提高系统的恢复时间,提高数据的安全性。若对数据有较高安全性要求,建议使用 ext3 文件系统。日志文件系统是目前Linux 文件系统发展的方向,常用的还用reiserfs和 jfs 等日志文件系统。可以通过以下命令查看Linux 下某个磁盘分区的文件系统类型:# file -s /dev/sdb* /dev/sdb: x86 boot sector, e
12、xtended partition table /dev/sdb1: Linux rev 1.0 ext3 filesystem data (needs journal recovery) /dev/sdb2: SGI XFS filesystem data (blksz 4096, inosz 256, v2 dirs) /dev/sdb3: x86 boot sector, extended partition table /dev/sdb5: x86 boot sector, mkdosfs boot message display, code offset 0 x3c, OEM-ID
13、mkdosfs, sectors/cluster 16, root entries 512, Media descriptor 0 xf8, sectors/FAT 247, heads 255, sectors 1012032 (volumes 32 MB) , serial number 0 x4ad1bf77, label: , FAT (16 bit) 此外 Linux 内核还支持十多种不同类型的文件系统。某个Linux 系统支持的文件系统可以通过以下命令查看:# ls /lib/modules/uname -r/kernel/fs 9p adfs affs autofs autofs
14、4 befs bfs binfmt_aout.ko binfmt_misc.ko cifs coda configfs cramfs dmapi efs exportfs ext3 fat freevxfs fuse hfs hfsplus hpfs jbd jffs jffs2 jfs lockd msdos ncpfs nfs nfs_common nfsd nls ntfs ocfs2 qnx4 quota_v1.ko quota_v2.ko reiserfs romfs smbfs sysv udf ufs vfat xfs 名师资料总结 - - -精品资料欢迎下载 - - - - -
15、 - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 5 页 - - - - - - - - - Linux 大文件系统支持Linux 文件系统的大小受硬件、内核、文件系统块大小的限制。在 32 位 CPU的 Linux 操作系统上, 文件系统上文件大小和文件系统大小的限制在2TB。在 64 位 CPU的 Linux 操作系统上,对于基于Linux kernel 2.4.x 的 Linux 发行版本,文件和文件系统的大小限制扩展到了263TB(8EB )。对于基于Linux kernel 2.6.x 的 Linux 发行版本,文件和文件
16、系统的大小限制扩展有了更大的范围,可以参考下表:文件系统文件大小限制文件系统大小限制ext2/ext3 with 1 KiB blocksize 16448 MiB ( 16 GiB) 2048 GiB (= 2 TiB) ext2/3 with 2 KiB blocksize 256 GiB 8192 GiB (= 8 TiB) ext2/3 with 4 KiB blocksize 2048 GiB (= 2 TiB) 8192 GiB (= 8 TiB) ext2/3 with 8 KiB blocksize (Systems with 8 KiB pages like Alpha on
17、ly) 65568 GiB ( 64 TiB) 32768 GiB (= 32 TiB) ReiserFS 3.5 2 GiB 16384 GiB (= 16 TiB) ReiserFS 3.6 (as in Linux 2.4) 1 EiB 16384 GiB (= 16 TiB) XFS 8 EiB 8 EiB JFS with 512 Bytes blocksize 8 EiB 512 TiB JFS with 4KiB blocksize 8 EiB 4 PiB NFSv2 (client side) 2 GiB 8 EiB NFSv3 (client side) 8 EiB 8 EiB 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 5 页 - - - - - - - - -