Linux操作系统实验:探索EXT4文件系统与添加系统调用

需积分: 0 0 下载量 199 浏览量 更新于2024-07-01 收藏 3.01MB PDF 举报
"这篇文档是关于操作系统实验四的,作者张逸凯,171840708,实验内容主要包括查看当前操作系统使用的文件系统类型及版本号,深入理解Ext3(或Ext4)文件系统,特别是索引节点的源代码,并设计实现一个新的系统调用`filesys`,用于打印指定文件占用的所有磁盘块。实验过程中涉及了系统调用的添加、内核编译和用户态测试程序的编写。" 在此次操作系统实验中,学生张逸凯首先探讨了如何确定系统当前使用的文件系统类型和版本。通过使用`parted`命令,可以查看磁盘分区的信息,包括不同类型的文件系统,如ext2、ext3、fat16、fat32等。此外,通过`df -Th`命令,可以更直观地查看文件系统的类型,其中第二列显示的就是文件系统类型。实验结果显示,该系统使用的是Ext4文件系统,这是一种广泛应用于Linux的 journaled 文件系统,设计为ext3的继承者。 实验的另一部分涉及深入理解Ext3(或Ext4)文件系统,特别是与索引节点相关的源代码。在Ext3和Ext4文件系统中,索引节点(inode)是一个重要的概念,它存储了文件的所有元数据,如文件权限、创建时间、修改时间、访问时间以及文件数据所在的磁盘块位置。理解这些元数据结构和索引节点的管理对于操作系统的运行至关重要。 接下来,张逸凯设计并实现了名为`filesys`的新系统调用。这个调用接收一个全局路径名,然后输出该文件占用的所有磁盘块。这涉及到对内核源代码的修改,添加新的系统调用接口,并确保其正确地与文件系统层交互,获取并打印出文件所占的磁盘块信息。 实验过程中,可能需要编译内核以包含新添加的系统调用,并编写用户态的测试程序来验证`filesys`的功能。在这个阶段,可能会遇到诸如内核配置错误、系统调用接口定义不正确、文件系统接口调用失败等问题,需要通过调试和查阅相关文档来解决。 最后,实验总结了查看文件系统类型、理解文件系统原理以及添加系统调用的实际操作,这些都是操作系统学习中的关键实践环节。同时,也提到了其他与文件系统相关的工具,如`fsck`,这是一个用于检查和修复Linux文件系统的实用程序,确保文件系统的数据一致性。 这个实验加深了对Linux文件系统工作原理的理解,特别是在实际操作层面,同时也锻炼了内核编程和系统调用设计的能力。