30天自制操作系统中edimg的含义

在学习自制操作系统的过程中,解析edimg命令用于制作镜像文件的功能。核心在于理解FAT12文件系统的结构,包括引导扇区、FAT表、根目录区和用户数据区。最大根目录设置为224时,各部分的地址为:0x0000、0x0200、0x1400、0x2600和0x4200。文件存储涉及修改FAT表、根目录区和用户数据区的数据。通过查看0x4200和0x2600地址的数据,可以验证文件内容和目录信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在学习30天自制操作系统时,遇到一个问题就是:

$(EDIMG)   imgin:../z_tools/fdimg0at.tek \
wbinimg src:ipl.bin len:512 from:0 to:0 \
copy from:haribote.sys to:@: \
imgout:haribote.img

书上说是制作镜像文件,但是没有非常清楚的说明白。


弄清楚这个问题,首先需要将FAT12文件系统弄清楚,

FAT12文件系统分为四个部分,【引导扇区】、【FAT文件分配表1和2】、【根目录区】、【用户数据区】

当设置最大的根目录为224时,其地址分别为:

0x0000 、0x0200 、0x1400、0x2600 、0x4200

也就是是说根目录的地址是0x2600

而实际文件存放数据的地址为0x4200

当存储一个文件时,实际上修改了三个地方的数据,【FAT文件分配表1和2】、【根目录区】、【用户数据区】

他们的含义可以从目录查看:

http://blog.sina.com.cn/s/blog_3edcf6b80100crz1.html

而根据实际的二进制文件也可以证实这点.

首先查看最后

0x4200的地址的数据,

该数据就是外部文件haribote.sys文件实际经过nask.exe 转换为二进制数据后的数据


而查看地址0x2600的数据

该数据首先是haribotesys的大写,没有点,接着是一段乱码,总共32个字节,至于原因可以从上文所给的链接

中找到。


再看FAT文件分配表1,

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值