


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
我的操作系统之旅 第二篇:用U盘启动的我的OS作者: 胡辉萍 01/04/2012上篇按照书本上的案例,直接照抄稍微修改一下,就实现了软件启动自己的OS,看上去很简单。也很兴奋,想着自己照这个思路应该也可以简单的在U盘上实现我的OS的启动。实际上这么想真是大错特错了。首先让我们安装书本上抄写去软盘的方法去把程序抄到U盘上,很快搞定。重启动机器,哈哈,我的OS出来了。Hello HiniA OS红色字体显示在了我的屏幕上面。高兴还不到2分钟,我重新启动Windows 7,这个时候把我的U盘插进电脑,电脑立马提示不认识的的U盘,是否格式化.我一开始当然不格式化,从资源管理器里面看U盘。真是要晕了,真是什么也看不到了,连多少容量都没有了。U盘成了废物一个,怎么办? 只能选择格式化。没有办法,看书上有没有说原因。其实书本上一直就没有提过用U盘去启动,也从来没有说过用这个程序在软盘下可以看到软件的文件。我估计Windows进去后,软盘插入到软驱系统也会提示需要格式化,只是现在找不到软驱和软盘。也终于清楚的明白为何作者以前一直做试验都是用虚拟机和虚拟软盘。作者就从来没有说过第二章的OS程序可以在实际软盘上运行。真郁闷呀!继续找资料研究吧,百度搜索,找到一个据说是实现了在U盘上启动系统的网页。/bombless/archive/2010/12/28/writing-x86-os-part1.html。作者说 无论如何,看完本文,你应该可以手写一段通过U盘启动的在PC上运行的不需要其他软件来协助的自启动的代码,这无疑是一个完整的操作系统的基础。这句话我非常同意,的确如果操作系统不能直接用U盘启动并进行测试,学习这个操作系统也真没有什么意思。不是吗。其实我想用U盘启动的目的没有什么,就是想要U盘像以前的刚启动DOS的一样,可以直接进去,然后在逐步的修改自己的OS。老是在虚拟机器上面搞,没有什么感觉。没有办法,找着网页上的程序做实验了一下,郁闷呀!也还是不行,安装了我根本不熟悉的MinGw.一切按上面的步骤下来.都是成功的.唯独重新启动的也是和我上面操作的一样,找不到U盘,还更加惨,格式化都不行。兴好,在前面几次失败后,我有准备。连U盘低级格式化的软件都准备好了。格式化后终于又可以用U盘了。也不知道作者还有没有关注自己的网页,我怀疑可能在Linix下可以成功。就用空白点的名义发了一个留言在这个网页上,希望作者能指导一下。自己也开始认真的思索为何自己做的不行了,找到作者写的这本书的第二版,Orange_s.一个操作系统的实现。自己一直想在网络上买一本,基本上都是要我做缺货登记,算了,从网络上下了一个pdf文件。再简略的过了一便,然后发现了一个以前自己没有注意的点。大概在第四章第一节的时候,作者开始分析FAT12的格式,说下面有一段代码是关于DOS可以识别的引导盘。代码如下:;%define_BOOT_DEBUG_; 做 Boot Sector 时一定将此行注释掉!将此行打开后用 nasm Boot.asm -o B 做成一个.COM文件易于调试%ifdef_BOOT_DEBUG_org 0100h; 调试状态, 做成 .COM 文件, 可调试%elseorg 07c00h; Boot 状态, Bios 将把 Boot Sector 加载到 0:7C00 处并开始执行%endifjmp short LABEL_START; Start to boot.nop; 这个 nop 不可少; 下面是 FAT12 磁盘的头BS_OEMNameDB ForrestY; OEM String, 必须 8 个字节BPB_BytsPerSecDW 512; 每扇区字节数BPB_SecPerClusDB 1; 每簇多少扇区BPB_RsvdSecCntDW 1; Boot 记录占用多少扇区BPB_NumFATsDB 2; 共有多少 FAT 表BPB_RootEntCntDW 224; 根目录文件数最大值BPB_TotSec16DW 2880; 逻辑扇区总数BPB_MediaDB 0xF0; 媒体描述符BPB_FATSz16DW 9; 每FAT扇区数BPB_SecPerTrkDW 18; 每磁道扇区数BPB_NumHeadsDW 2; 磁头数(面数)BPB_HiddSecDD 0; 隐藏扇区数BPB_TotSec32DD 0; 如果 wTotalSectorCount 是 0 由这个值记录扇区数BS_DrvNumDB 0; 中断 13 的驱动器号BS_Reserved1DB 0; 未使用BS_BootSigDB 29h; 扩展引导标记 (29h)BS_VolIDDD 0; 卷序列号BS_VolLabDB Tinix0.01 ; 卷标, 必须 11 个字节BS_FileSysTypeDB FAT12 ; 文件系统类型, 必须 8个字节 LABEL_START:movax, csmovds, axmoves, axCallDispStr; 调用显示字符串例程jmp$; 无限循环DispStr:movax, BootMessagemovbp, ax; ES:BP = 串地址movcx, 16; CX = 串长度movax, 01301h; AH = 13, AL = 01hmovbx, 000ch; 页号为0(BH = 0) 黑底红字(BL = 0Ch,高亮)movdl, 0int10h; int 10hretBootMessage:dbHello, OS world!times 510-($-$)db0; 填充剩下的空间,使生成的二进制代码恰好为512字节dw 0xaa55; 结束标志流汗呀,我一开始居然没有看到,失败是必然的!我也赶紧照个这个文件去重新生成了一个Bin文件,兴冲冲的写到U盘。呵呵,非常不幸运,这个bin文件也不行,甚至让我在W
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 交换机务员测试考核试卷及答案
- 托育师特殊工艺考核试卷及答案
- 石工质量管控考核试卷及答案
- 餐厅服务员转正考核试卷及答案
- 通信交换设备装调工培训考核试卷及答案
- 预拌混凝土生产工测试考核试卷及答案
- 客运值班员标准化作业考核试卷及答案
- 2025年职业病诊断医师(职业性耳鼻喉口腔疾病)考生练习题及答案(肇庆)
- 福建省公路工程试验检测师资格考试(公共基础)综合能力测试题及答案(2025年)
- 珠海市2025年职业病医师资格(综合类)练习题及答案
- 2023类器官技术与行业研究报告-复刻结构重现功能 构建组织器官替身
- 国有资产交易法律实务与疑难问题
- 初中毕业证在哪里查询
- 名词语法讲解
- GB/T 5796.4-2022梯形螺纹第4部分:公差
- 小数乘整数教案 省赛一等奖
- 妇产科用药指南
- 智能电网-课件
- 安全文明施工措施费清单五篇
- 《战略的本质》读书分享
- 《城镇燃气室内工程施工与质量验收规范》CJJ94-2009
评论
0/150
提交评论