学习笔记5
- EXT2文件系统概述
- 1级和2级文件系统函数
- 实践过程
EXT2文件系统概述
EXT2(Second Extended File System)是Linux操作系统早期使用的文件系统,它是EXT文件系统家族的第二个版本,于1993年首次引入。在现代Linux系统中已经被后续版本的EXT文件系统(如EXT3和EXT4)所取代。
1.历史和发展:
EXT2是EXT文件系统的改进版本,由Rémy Card开发于1993年。它取代了EXT文件系统,旨在提供更好的性能和可靠性。
2.特点:
- 无日志:与后续的EXT3和EXT4文件系统不同,EXT2没有日志功能。这意味着在系统非正常关闭或崩溃时,EXT2更容易导致文件系统损坏,需要运行fsck(文件系统检查)工具来修复问题。
- 性能:相对于EXT文件系统,EXT2提供了更好的性能,尤其在大文件和目录操作方面。
- 限制:最大文件大小为2 TB,最大文件系统大小为4 TB。
3.文件和目录结构:
EXT2使用类似树的数据结构来组织文件和目录。每个文件和目录都有一个节点,称为inode(索引节点),用于存储元数据信息,如文件权限、所有者、文件大小和时间戳。
文件数据存储在数据块中,而inode包含指向这些数据块的指针。
4.文件系统一致性:
由于缺乏日志功能,EXT2在系统崩溃或意外断电时可能会导致文件系统损坏。因此,需要运行fsck工具来修复问题,这可能需要一些时间。
5.可移植性:
EXT2文件系统在不同的Linux发行版之间具有良好的可移植性,这使得可以轻松地在不同的Linux系统之间共享EXT2格式的存储介质,如硬盘分区或USB驱动器。
6.使用场景:
由于其性能和可移植性,EXT2仍然在某些嵌入式系统和旧版Linux发行版中找到用途,但在现代Linux系统中已不再是首选文件系统。后续版本的EXT文件系统,如EXT3和EXT4,引入了日志功能和更多高级功能,提供了更好的数据一致性和性能。
1级和2级文件系统函数
在Linux系统中,文件系统函数被组织为一级文件系统函数和二级文件系统函数,这些函数提供了与文件系统交互的接口。
一级文件系统函数
1.文件操作函数:
open
:打开文件,获取文件描述符。close
:关闭文件描述符。read
:从文件中读取数据。write
:向文件中写入数据。lseek
:设置文件指针位置。
2.目录操作函数:
opendir
:打开目录。readdir
:读取目录中的条目。closedir
:关闭目录。mkdir
:创建目录。rmdir
:删除目录。chdir
:更改当前工作目录。
3.文件和目录属性函数:
stat
:获取文件/目录的元数据。chmod
:更改文件/目录的权限。chown
:更改文件/目录的所有者。utime
:更改文件/目录的访问和修改时间戳。
4.链接和符号链接函数:
link
:创建硬链接。symlink
:创建符号链接。readlink
:读取符号链接的目标。
5.删除函数:
unlink
:删除文件。remove
:删除文件或目录。
6.文件描述符操作函数:
dup
:复制文件描述符。dup2
:将一个文件描述符复制到另一个文件描述符。pipe
:创建管道。
二级文件系统函数
这些函数是针对特定的文件系统类型,如EXT4、XFS、Btrfs等,它们提供了对文件系统的更高级别控制和操作。这些函数的名称和功能会根据不同的文件系统而变化,但一般包括以下:
1.文件系统挂载和卸载函数:
mount
:将文件系统挂载到指定的挂载点。umount
:卸载文件系统。
2.日志和快照函数:
用于文件系统日志和快照管理的函数,如EXT4中的journalctl
和Btrfs中的btrfs
subvolume。
3.磁盘管理和块设备函数:
用于底层磁盘管理和块设备访问的函数,如XFS中的xfs_growfs
用于扩展文件系统。
4.高级文件系统属性函数:
用于访问特定文件系统属性的函数,如EXT4中的e2fsck
用于检查和修复文件系统。
5.文件系统扩展和压缩函数:
用于扩展或压缩文件系统的函数,以适应不同的存储需求。