活动介绍

2020 操作系统实验(二)1

preview
需积分: 0 0 下载量 139 浏览量 更新于2022-08-03 收藏 170KB PDF 举报
操作系统实验(二)1主要关注的是FAT12文件系统的理解和操作,以及使用C/C++和汇编语言(nasm)编写一个FAT12镜像查看工具。实验要求如下: 1. **FAT12文件系统理解**:FAT12是一种早期的文件分配表(FAT)类型,广泛应用于软盘和一些早期的闪存驱动器。它存储文件和目录的信息,包括文件的起始簇号、文件长度等。 2. **FAT12镜像查看工具**:该工具需要读取.img格式的FAT12镜像文件,并提供用户交互。用户可以输入指令如`ls`来查看目录内容,或者`cat`来显示文件内容。工具需处理不同参数,如`-l`以显示详细信息。 3. **`ls`命令**:用户输入`ls`命令后,程序应列出根目录及其子目录的文件和目录,目录名以红色显示,文件名不加颜色。如果使用`-l`参数,还需显示每个目录的直接子目录和子文件数量,以及文件的大小。 4. **`cat`命令**:用户输入`cat`命令及文件名,程序应显示指定文件的内容。如果文件不存在或非普通文件,则需给出错误提示。 5. **`exit`命令**:输入`exit`退出程序。 6. **错误处理**:对于无效的命令参数,程序需要提供适当的错误提示。 7. **汇编输出**:输出功能需在汇编程序`my_print.asm`中实现,不能使用C/C++库函数。 8. **构建工具**:使用Makefile进行编译链接,Windows平台可以使用CMake或其他工具。 9. **二进制读取**:直接从.img文件中读取二进制内容,不挂载镜像。 10. **路径和文件名处理**:只支持英文大写和数字的路径/文件名,不考虑中文字符和长文件名。 实验中还涉及了计算机体系结构的问题,如实模式和保护模式的区别,以及选择子、描述符、全局描述符表(GDT)、局部描述符表(LDT)、GDTR和LDTR的结构,以及如何通过它们查找物理地址。此外,还需要理解静态链接和动态链接的概念,以及在Linux环境下可执行文件的虚拟地址空间分配。 在实验过程中,学生需要理解FAT12文件系统的结构,如根目录区的大小、数据区的起始簇号,以及FAT表的作用。同时,他们还需要熟练地使用C和汇编语言进行参数传递和返回值处理,并熟悉汇编代码中对I/O操作的处理。 学生需要提交程序运行截图、源代码和Makefile文件,并准备回答相关问题,如PPT中的实模式和保护模式、链接过程、FAT12的特定细节等。实验成绩将基于基本功能的实现和额外加分项,如支持大文件的`cat`命令。
身份认证 购VIP最低享 7 折!
30元优惠券
大头蚊香蛙
  • 粉丝: 22
上传资源 快速赚钱
voice
center-task 前往需求广场,查看用户热搜

最新资源