linux文件系统是啥意思

author author     2023-04-11     559

关键词:

文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于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中?

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

mount命令是啥意思在linux中?

...。yumupdate是更新的意思。参考技术AMOUNT是将存储设备变成文件来访问的,LINUX所有的存储设备都是映射成“文件”来访问的,包括U盘,光驱,硬盘,磁带mount/dev/cdrom/media/cdrom这个的意思就是将CDROM映射成media/CDROM这个文件来访问yu... 查看详情

linux里的mkfs命令后面跟.vfat是啥意思?

...知道-t参数的意义那就好解释了-t参数后跟格式化目标的文件系统格式比如要格式化为ext3就是mkfs-V-text3/dev/xxx至于vfat“扩展文件分配表系统”的意思,主要应用于在Windows95中。它对FAT16文件系统进行扩展,并提供支持长文件名,... 查看详情

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

e是表示该文件为可执行文件。特提供该命令的相关资料整理如下:(1)命令作用:显示文件属性(2)功能说明:lsattr命令显示关于给定设备或设备类型的属性信息。(3)语法:lsattr[-adlRvV][文件或目录...](4)所属包:coreutils... 查看详情

linux里“挂载”是啥意思?

Linux系统中一切皆文件,所有文件都放置在以根目录为树根的树形目录结构中。在Linux看来,任何硬件设备也都是文件,它们各有自己的一套文件系统,也就是文件目录结构。说到这里就产生了一个问题,当在Linux系统中使用这些... 查看详情

linux版本的发行版和内核版是啥意思

...特性1、基本思想Linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而... 查看详情

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

挂载的含义:一般,挂载是指linux系统挂载一个iso文件到系统中,然后自动概念。这个概念值得是在开机的时候系统自动将一些工作做完。一、自动挂载如何实现1、查看系统开机启动文件是哪个(不同的系统,启动文件位置不同... 查看详情

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

linux中/etc与/var目录,各是什么意思?这两个目录下的文件有什么特点?/etc目录下一般存放系统和程序所需的配置文件。例如:/etc/passwd为系统用户数据库;/etc/fdprm为软盘参数表;/etc/group为系统用户组数据库。/var目录下一般为... 查看详情

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

...吗?这个mount是挂载命令mount命令详解功能:加载指定的文件系统。语法:mount[-afFhnrvVw][-L<标签>][-o<选项>][-t<文件系统类型>][设备名][加载点]用法说明:mount可将指定设备中指定的文件系统加载到Linux目录下(也就是... 查看详情

在linux中文件属主、属组是啥意思?

...er所在的group咯本回答被提问者和网友采纳 参考技术B对于文件来说,它都有一个特定的所有者,也就是对该文件具有所有权的用户。同时,在Linux系统中,用户是按组分类的,一个用户属于一个或多个组。文件所有者以外的用户... 查看详情

请问linux命令ls-l后出现的是啥意思

...些行都是什么意思Linux命令ls -l 是用来查看详细的文件资料的,ls -l出来的是各个文件或目录的详细信息。Linux不仅系统性能稳定,而且是开源软件。其核心防火墙组件性能高效、配置简单,保证了系统的安全。在很多... 查看详情

inode是啥意思

...索引节点对象;索引结点索引节点对象(inode):存储了文件和目录的相关信息(和文件本身是两个不同的概念。它包含的是诸如文件的大小、拥有者、创建时间…参考技术A在Linux中,inode是一个重要的概念,是理解Unix/Linux文件... 查看详情

java中.class文件是啥意思?有啥用吗?

参考技术AJAVA中.class文件是什么意思,有什么用吗,解决办法:JAVA中*.java这样的文件是用java语言编写的源文件。经过编译会变成相应的*.class文件*.class文件。有一处编译到处运行的特点(即windows生成的class可以在linux系统中运行)... 查看详情

selinux是啥意思,如何关闭?linux下的防火墙用啥命令打开?

...个复杂的安全子系统,它可以控制程序只访问一定数量的文件,使用学位设置工具进入对角化关闭。Linux防火墙打开方法:1.首先,您需要在Linux系统中找到并打开文件来编辑和配置防火墙,并执行以下命令:vi/etc/sysconfig/ip... 查看详情

op固件是啥意思

...示:UBNTAirrouter路由器的型号;-squashfs-表示:使用SquashFS文件系统压缩的factory或者sysupgrade和tftp文件。(百度说了,SquashFS[1]是一套基于Linux内核使用的压缩只读文件系统。)然后,给出它们的区别:您给出的4种类型包括3类文件... 查看详情

linux中的shell是啥意思?

...简单的说shell程序就是一个包含若干行shell或者linux命令的文件.象编写高级语言的程序一样,编写一个shell程序需要一个文本编辑器.如VI等.在文本编辑环境下,依据shell的语法规则,输入一些shell/linux命令行,形成一个完整的程序文件.... 查看详情

挂载是啥意思?

...并列的最顶级目录,但Linux中没有C盘D盘E盘的概念,整个文件系统就只有一个顶级的根目录(/),所有的物理磁盘都是根目录(/)下的一个子目录而已。所以,如果你要给现在的系统加快硬盘或添加分区,就先创建一个目录,然后... 查看详情

挂载是啥意思

...用。)需要理解的是,linux操作系统将所有的设备都看作文件,它将整个计算机的资源都整合成一个大的文件目录。我们要访问存储设备中的文件,必须将文件所在的分区挂载到一个已存在的目录上,然后通过访问这个目录来访... 查看详情