查看“Linux文件系统类型”的源代码
←
Linux文件系统类型
跳转至:
导航
,
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
==文件系统== 文件系统是在一个磁盘或分区组织存储文件或数据的方法,目的是便于查询和存取文件。如Windows系统使用的FAT32或NTFS就属于文件系统的不同类型。 [[文件:linux3-1.png]] '''用户层''':最上面用户层就是我们日常使用的各种程序,需要的接口主要是文件的创建、删除、打开、关闭、写、读等。 '''VFS层''':我们知道Linux分为用户态和内核态,用户态请求硬件资源需要调用System Call通过内核态去实现。用户的这些文件相关操作都有对应的System Call函数接口,接口调用 VFS对应的函数。 '''文件系统层''':不同的文件系统实现了VFS的这些函数,通过指针注册到VFS里面。所以,用户的操作通过VFS转到各种文件系统。文件系统把文件读写命令转化为对磁盘LBA的操作,起了一个翻译和磁盘管理的作用。 '''缓存层''':文件系统底下有缓存,Page Cache,加速性能。对磁盘LBA的读写数据缓存到这里。 '''块设备层''':块设备接口Block Device是用来访问磁盘LBA的层级,读写命令组合之后插入到命令队列,磁盘的驱动从队列读命令执行。Linux设计了电梯算法等对很多LBA的读写进行优化排序,尽量把连续地址放在一起。 '''磁盘驱动层''':磁盘的驱动程序把对LBA的读写命令转化为各自的协议,比如变成ATA命令,SCSI命令,或者是自己硬件可以识别的自定义命令,发送给磁盘控制器。Host Based SSD甚至在块设备层和磁盘驱动层实现了FTL,变成对Flash芯片的操作。 '''磁盘物理层''':读写物理数据到磁盘介质。 参考文档:https://blog.csdn.net/new0801/article/details/63687127 ==文件系统的作用== ===如果没有文件系统=== [[文件:linux3-100.jpg]] 先看看对于操作普通文件来说,意味着什么。 <nowiki>我们要拿着一个小本本,上面记着,文件名,文件所在扇区以及文件大小。每次要读写文件,我们要人工查询这个账本,知道我们要的文件在哪里。如果文件A所在的扇区M已经写满了,随后的一个扇区M+1被文件B占用了,我们还想接着写文件A,怎么办呢?只能从其他地方找一个空闲扇区N,然后在账本上把N记录到文件A占用的扇区项中</nowiki>。 不同操作系统使用的文件系统一般是不相同的。Linux支持十多种不同的文件系统,对于Red Hat Linux,默认使用ext3和swap文件系统。 [[文件:linux3-1.png]] ==文件系统的类型== ===ext2与ext3文件系统=== ext是第一个专门为Linux设计的文件系统类型,称为扩展文件系统。由于在稳定性、速度和兼容性方面存在许多缺陷,现已很少使用。 ext2是为解决ext文件系统的缺陷而设计的可扩展、高性能的文件系统,称为二级扩展文件系统。ext2于1993年发布,在速度和CPU利用率上具有较突出的优势,是GNU/Linux系统中标准的文件系统,支持256字节的长文件名,文件存取性能极好。 ext3是ext2的升级版本,兼容ext2,在ext2的基础上,增加了文件系统日志记录功能,称为日志式文件系统,是目前Linux默认采用的文件系统。 '''日志式文件系统在因断电或其他异常事件而停机重启后,操作系统会根据文件系统的日志,快速检测并恢复文件系统到正常的状态,并可提高系统的恢复时间,提高数据的安全性。'''若对数据有较高安全性要求,建议使用ext3文件系统。 日志文件系统是目前Linux文件系统发展的方向,除了Red Hat Linux采用的ext3外,常用的还有reiserfs和jfs等日志文件系统。 ===swap文件系统=== swap用于Linux的交换分区。在Linux中,使用交换分区来提供虚拟内存,其分区大小一般是系统物理内存的2倍。 在安装Linux操作系统时,就应创建交换分区,它是Linux正常运行所必需的,其类型必需是swap。交换分区由操作系统自行管理。 ===vfat文件系统=== vfat是Linux对Dos、windows系统下的FAT(包括FAT16和FAT32)文件系统的一个统称。Red Hat Linux支持FAT16和FAT32分区,也能在该系统中通过相关命令创建FAT分区。 ===NFS文件系统=== NFS即网络文件系统,用于在Unix系统间通过网络进行文件共享,用户可将网络中NFS服务器提供的共享目录,挂载到本地的文件目录中,从而实现操作和访问NFS文件系统中的内容。 ===ISO9660文件系统=== 该文件系统是光盘所使用的标准文件系统,Linux对该文件系统也有很好的支持,不仅能读取光盘和光盘ISO映像文件,而且还支持刻录光盘。 (此处可添加练习) ==文件系统的基本单位——文件== ===文件名=== 文件名是文件的唯一标识符。Linux中文件名遵循以下约定: *可以使用除“/”以外的所有ASCII字符,但不能包含空格和一些对shell来说有特殊含义的字符,如: ! $ # * & ? \ , ; < > [ ] { } ( ) ^ @ % | “ ‘ ` *文件名区分大小写字母, 如: sample.txt、Sample.txt和SAMPLE.TXT都代表不同的文件。 *文件名最长可达到256个字符。 *文件名以句点开头,则该文件就成为隐藏文件。 ==文件路径== 在使用Linux命令对某个文件或目录操作时,一般应指明文件或目录所在的查找路径,否则默认对当前目录中的同名文件或目录进行操作。Linux中的路径可分为绝对路径和相对路径。 *绝对路径 如:“/usr/bin/zip” *相对路径 如果当前目录是/usr,则zip的相对路径名为“bin/zip”,而local的相对路径名则为“local”。 [[文件:linux2-51.png]] 例: cd /usr/bin/zip cd bin/zip 这里再把昨天目录的基本命令回顾一下 ~ ===文件的分类=== Linux系统将文件大致分成四种类型:普通文件、目录文件、链接文件和设备文件。 *普通文件 Linux中最多的一种文件类型, 包括 纯文本文件(ASCII);二进制文件(binary);数据格式的文件(data);各种压缩文件.第一个属性为 [-] *目录文件 就是目录, 能用 # cd 命令进入的。第一个属性为 [d],例如 [drwxrwxrwx] *链接文件 类似Windows下面的快捷方式。第一个属性为 [l],例如 [lrwxrwxrwx] *设备文件 在类Unix操作系统中,设备文件或特殊文件是设备驱动程序的接口,出现在文件系统中就好像它是普通文件一样。 参考文档:https://blog.csdn.net/rong09_13/article/details/79233956 (此处可添加练习) ==文件系统修复== fsck命令 格式:fsck [选项] 功能:检查文件系统并尝试修复错误。 主要选项: -a 自动修复文件系统,不询问任何问题。 -r 采用互动模式,在执行修复时询问问题。 -t 指定检查的文件系统。 -C 显示指令执行过程。 以下命令检查/dev/sda1设备,文件系统为ext4。 [root@rhel6 ~]# fsck -C –t ext4 /dev/sda1
返回至
Linux文件系统类型
。
导航菜单
个人工具
登录
命名空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
帮助
工具
链入页面
相关更改
特殊页面
页面信息