linux 文件系统 是啥意思

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux 文件系统 是啥意思相关的知识,希望对你有一定的参考价值。

文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NANDFlash的固态硬盘)或分区上的文件的方法和数据结构;
即在存储设备上组织文件的方法。
操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。
文件系统由三部分组成:文件系统的接口,对对象操纵和管理的软件集合,对象及属性。
从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。
参考技术A Linux是一个性能稳定、功能强大、效率高的操作系统。它在功能特性方面与Unix系统相似,同时又具有多任务、多用户、多平台等若干特性。Linux的源代码是开放的,阅读Linux源代码,无疑是深入学习Linux的最好方法。

文件系统是Linux操作系统的重要组成部分,Linux文件具有强大的功功能。文件系统中的文件是数据的集合,文件系统不仅包含着文件中的数据而且还有文件系统的结构,所有Linux 用户和程序看到的文件、目录、软连接及文件保护信息等都存储在其中。

Linux 最早的文件系统是Minix,但是专门为Linux 设计的文件系统——扩展文件系统第二版或EXT2被设计出来并添加到Linux中,这对Linux产生了重大影响。EXT2文件系统功能强大、易扩充、性能上进行了全面优化优化,也是现在所以Linux发布和安装的标准文件系统类型。

每个实际文件系统从操作系统和系统服务中分离出来,它们之间通过一个接口层:虚拟文件系统或VFS来通讯。VFS使得Linux可以支持多个不同的文件系统,每个表示一个VFS 的通用接口。由于软件将Linux 文件系统的所有细节进行了转换,所以Linux核心的其它部分及系统中运行的程序将看到统一的文件系统。Linux 的虚拟文件系统允许用户同时能透明地安装许多不同的文件系统。

在Linux文件系统中,作为一种特殊类型/proc文件系统只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。/proc文件系统是一个伪文件系统,用户和应用程序可以通过/proc得到系统的信息,并可以改变内核的某些参数。

在Linux文件系统中,EXT2文件系统、虚拟文件系统、/proc文件系统是三个具有代表性的文件系统,本论文试图通过对他们的分析来研究Linux文件系统机制。并且在分析这三种文件系统的基础上对Linux文件系统操作进行了解、研究(本论文选取了open和close两种操作进行研究)。在第二部分中将介绍EXT2文件系统;第三部分论述虚拟文件系统的特点;第四部分简要介绍/proc文件系统;最后,介绍两种具体文件系统操作的实现。

2 EXT2文件系统
在Linux中普通文件和目录文件保存在称为块物理设备的磁盘或者磁带上。一套Linux系统支持若干物理盘,每个物理盘可定义一个或者多个文件系统。(类比于微机磁盘分区)。每个文件系统由逻辑块的序列组成,一个逻辑盘空间一般划分为几个用途各不相同的部分,即引导块、超级块、inode区以及数据区等。

引导块:在文件系统的开头,通常为一个扇区,其中存放引导程序,用于读入并启动操作系统;超级块:用于记录文件系统的管理信息。特定的文件系统定义了特定的超级块;inode区(索引节点):一个文件或目录占据一个索引节点。第一个索引节点是该文件系统的根节点。利用根节点,可以把一个文件系统挂在另一个文件系统的非叶节点上;数据区:用于存放文件数据或者管理数据。

Linux最早引入的文件系统类型是MINIX。MINIX文件系统由MINIX操作系统定义,有一定的局限性,如文件名最长14个字符,文件最长64M字节。第一个专门为Linux设计的文件系统是EXT(Extended File System),但目前流行最广的是EXT2。

第二代扩展文件系统由Rey Card 设计,其目标是为Linux 提供一个强大的可扩展文件系统。它同时也是Linux界中设计最成功的文件系统。通过VFS的超级块(struct ext2_sb_info ext2_sb)可以访问EXT2的超级块,通过VFS的inode(struct ext2_inode_info ext2_i)可以访问EXT2的inode。

文件系统EXT2的源代码在/usr/src/linux/fs/ext2目录下,它的数据结构在文件/usr/src/linux/include/linux/ext2_fs.h以及同一目录下的文件ext2_fs_i.h和ext2_fs_sb.h中定义。

EXT2文件系统将它所占用的逻辑分区划分成块组(block group),如下图所示:

组0
组1
…………
组N



超级块
组描述符表
块位图
inode位图
inode表
数据块

图1 EXT2文件系统逻辑分区

和很多文件系统一样, EXT2 建立在数据被保存在数据块中的文件内这个前提下。这些数据块长度相等且这个长度可以变化,某个EXT2 文件系统的块大小在创建(使用mke2fs)时设置。每个文件的大小和刚好大于它的块大小正数倍相等。如果块大小为1024 字节而一个1025 字节长的文件将占据两个1024 字节大小的块。这样你不得不浪费差不多一般的空间。我们通常需要在CPU 的内存利用率和磁盘空间使用上进行折中。而大多数操作系统,包括Linux 在内,为了减少CPU 的工作负载而被迫选择相对较低的磁盘空间利用率。并不是文件中每个块都包含数据,其中有些块被用来包含描叙此文件系统结构的信息。EXT2通过一个inode 结构来描叙文件系统中文件并确定此文件系统的拓扑结构。inode 结构描叙文件中数据占据哪个块以及文件的存取权限、文件修改时间及文件类型。EXT2 文件系统中的每个文件用一个inode 来表示且每个inode 有唯一的编号。文件系统中所有的inode都被保存在inode 表中。 EXT2 目录仅是一个包含指向其目录入口指针的特殊文件(也用inode表示)。

对文件系统而言文件仅是一系列可读写的数据块。文件系统并不需要了解数据块应该放置到物理介质上什么位置,这些都是设备驱动的任务。无论何时只要文件系统需要从包含它的块设备中读取信息或数据,它将请求底层的设备驱动读取一个基本块大小整数倍的数据块。EXT2 文件系统将它所使用的逻辑分区划分成数据块组。每个数据块组将那些对文件系统完整性最重要的信息复制出来, 同时将实际文件和目录看作信息与数据块。为了发生灾难性事件时文件系统的修复,这些复制非常有必要。

参考资料:http://www.aihuifu.com/ask/question.php?id=21

参考技术B 就是 Linux 所使用的文件系统……

Linux 支持很多系统,主要是 ext 系列、reiserfs 、xfs 这些常见的文件系统。
ext 不说了 ext2 ext3 以及最新的 ext4 ,是 Linux 的标准文件系统。各方面设计都比较均衡。版本的变化带来的是功能的增加。
reiserfs 他也有不同的版本,3 系列被内核所直接支持,对于小文件的性能很好,reiser4 因为各种原因,不被 Linux 内核直接支持,但可以加补丁来支持。但前景比较悲观。(作者因杀妻而被捕)
xfs 更适合大型主机使用,前身印象里是 IBM 的一个文件系统。

其实 Linux 还支持很多文件系统的,只要是 POSIX 标准的文件系统,就可以用来作为 linux 的文件系统。
这个 Linux 文件系统一般是针对于 Windows 的 NTFS 、FAT 所作的表示,因为 Windows 并不直接支持 Linux 所使用的文件系统,为了便于 Windows 用户的理解,Linux 文件系统的称呼可以方便的表示 Windows 不支持的用在 Linux 下面的文件系统。
参考技术C 文件系统就是数据的储存结构.
不要以为你的硬盘储存东西很理所当然,没有文件系统,你存的只是01010100011101010101010
你的Windows文件系统就是NTFS FAT什么的.
Linux只是用了不同的.ext3 ext4 reiserFS 什么的.本回答被提问者采纳

mount命令是啥意思在Linux中?

mount  /dev/cdrom    /media/cdrom  这句话是什么意思?yum update是什么意思?

mount是挂载命令,在linux系统中所有新硬盘或者光盘,或者ISO文件并不能直接被系统检测并挂载(现在部分系统使用桌面化,有自动挂载这个功能)
mount指令一般用法如下:
mount -t 文件类型 /dev/... dir

/dev/..是挂载的硬盘或光盘;
dir是挂载目录

PS:文件类型
光盘或光盘镜像:iso9660
DOS fat16文件系统:msdos
Windows 9x fat32文件系统:vfat
Windows NT ntfs文件系统:ntfs
Mount Windows文件网络共享:smbfs
UNIX(LINUX) 文件网络共享:nfs
参考技术A MOUNT是将存储设备变成文件来访问的,LINUX所有的存储设备都是映射成“文件”来访问的,包括U盘,光驱,硬盘,磁带
mount /dev/cdrom /media/cdrom 这个的意思就是将CDROM映射成media/CDROM这个文件来访问
yum update是升级系统的,非专业人士一般不要用
参考技术B 嗯,mount挂载文件系统,对应卸载umount ,/dev/cdrom是挂载源,/media/cdrom是挂载点,可以查看/etc/fstab文件的内容 参考技术C 挂载与卸载,如外部设备,U盘呀、光驱呀等等都是通过这个命令来完成的。

以上是关于linux 文件系统 是啥意思的主要内容,如果未能解决你的问题,请参考以下文章

Linux里“挂载”是啥意思?

linux下所谓的挂载是啥意思?请给一个很详细的回答。谢谢

mount命令是啥意思在Linux中?

在linux中用lsattr命令查看到一个文件的属性为e,是啥意思啊?

linux中/etc与/var目录,各是啥意思?这两个目录下的文件有啥特点?

linux 挂载光驱命令mount /mnt/cdrom是啥意思?