写光盘(的文件系统)驱动程序ing,所以需要用到ISO9660文件系统的规范,研究了一个下午弄懂了
总体情况
首先我们先要有一个makeisofs这样的制作iso文件的工具,用它来制作一个iso文件,里面放上几个非空文件(至于为什么非空,最后会有介绍)
然后再有一个hexdump这样二进制文件查看器
先来看一下这个表格
| ISO 9660 File System | |
|---|---|
| System Area (32,768 B) | Unused by ISO 9660 |
| Data Area | |
| Volume Descriptor (2,048 B) | |
| Volume Descriptor (2,048 B) | |
| ... | |
| Volume Descriptor Set Terminator (2,048 B) | |
| Optional space | |
| Root directory | |
| Directories and files | |
照此我们先用hexdump看一下我的mkisofs生成的iso文件
hexdump -C os.iso | less
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00008000 01 43 44 30 30 31 01 00 4c 49 4e 55 58 20 20 20 |.CD001..LINUX |
00008010 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
00008020 20 20 20 20 20 20 20 20 43 44 52 4f 4d 20 20 20 | CDROM |
00008030 20 20 20 20 20 20 20 20 20

本文介绍了ISO9660文件系统的基本结构,包括Volume Descriptor、Primary Volume Descriptor和Directories的内容。通过hexdump工具分析ISO文件,重点解析了如何找到文件的LBA号和大小,并展示了将这些理论应用于编程实现的思路。
最低0.47元/天 解锁文章
6806





