U盘实现《自己动手写操作系统》
来源:互联网 发布:淘宝客服快捷短语设置 编辑:程序博客网 时间:2024/06/05 10:14
原文地址:http://blog.csdn.net/zhanglei8893/article/details/5912903
看了《自己动手写操作系统》后,也想自己打造一个迷你操作系统,但是书中使用的软盘现在基本已经绝迹了,而U盘成为一种喜闻乐见的工具。因此想将操作系统写入U盘中,而读写U盘的引导扇区成为成功的关键。
将U盘格式化为FAT32文件系统,要读写U盘的引导扇区,需要首先了解FAT32的格式。它包含四个部分:
保留扇区 | FAT1 | FAT2 | 数据区。需要注意的是:保留扇区的第一个扇区是引导扇区(DBR)。
其中引导扇区的数据结构为:
数据区的开始为主目录区,主目录区包含了文件的熟悉,数据结构如下:
根据每个文件起始的簇号,就可以找到文件内容的绝对扇区起始位置
文件的簇号在FAT表中安装链表的形式存放,文件的属性在主目录区安装数组的形式存放。
文件内容的绝对扇区起始位置 = 保留扇区 + FAT1 + FAT2 + (起始簇号 -2)*每簇的扇区数
然后编写引导程序,读入U盘引导扇区,选择从U盘启动,就可以看到自己打造的U盘操作系统了
引导程序的汇编代码如下:
- org 07c00h
- jmp short LABEL_START
- nop
- OEM db 'Dirichet' ;//8Bytes
- Bytes_per_sector dw 512
- Sectors_per_cluster db 8
- Reserved_sectors dw 584
- Number_of_FATs db 2
- Root_entries dw 0
- Sectors_small dw 0
- Media_descriptor db 0f8h
- Sectors_per_FAT_small dw 0
- Sectors_per_track dw 63
- Heads dw 255
- Hidden_sectors dd 63
- Sectors dd 3902913
- Sectors_per_FAT dd 3804
- Extended_flags dw 0
- Version dw 0
- Root_dir_1st_cluster dd 2
- FSInfo_sector dw 1
- Backup_boot_sector dw 6
- times 12 db 0
- BIOS_drive db 80h
- db 0
- Ext_boot_signature db 29h
- Volume_serial_number dd 15329558
- Volume_label db 'Dirichlet09' ;//11个字节
- File_system db 'FAT32 ' ;//8个字节
- LABEL_START:
- mov ax,cs
- mov ds,ax
- mov es,ax
- call DispStr
- jmp $
- DispStr:
- mov ax,BootMessage
- mov bp,ax
- mov cx,15
- mov ax,01301h
- mov bx,000ch
- mov dl,0
- int 10h
- BootMessage: db 'hello, kitty!', 13, 10, '$'
- times 510-($-$$) db 0
- dw 0xaa55
0 0
- U盘实现《自己动手写操作系统》
- 《自己动手写操作系统》Boot Sector U盘实现
- Orange's 自己动手写操作系统 第一章 十分钟完成的操作系统 U盘启动 全记录
- 自己动手写操作系统——(1)将引导写入U盘
- 自己动手写操作系统
- [转载]自己动手写操作系统
- 自己动手写操作系统(一)
- 自己动手写操作系统(二)
- 自己动手写操作系统(一)
- 《自己动手写操作系统》读书笔记
- 自己动手写操作系统(一)
- 自己动手写操作系统(二)
- 读《自己动手写操作系统》
- 自己动手写操作系统
- 《自己动手写操作系统》观感
- 自己动手写操作系统
- 读《自己动手写操作系统》
- 自己动手写操作系统
- 写的不知道有木有问题
- 题目1449:确定比赛名次
- CGContextRef画图
- jPicker - 一个jQuery的颜色选择器插件
- Linux下chkconfig命令详解
- U盘实现《自己动手写操作系统》
- 独立成分分析(Independent Component Analysis)
- xcode Architecture
- “愚”一下,看着一个个逐渐陌生的名
- 蓝桥杯 错误票据
- 移动互联时代--诸行无常,诸法无我
- 字符串倒置
- [操作系统设置]桌面中添加我的电脑,我的文档和网上邻居图标
- Stack