原本的启动是从img启动的,并且这个img是用FAT12文件系统进行格式化的(详细去搜索FAT12文件格式,这里给大家推荐一篇http://www.doc88.com/p-646605198560.html),那么也就是说我们的img文件符合FAT12文件系统的格式了。接下来我们用winhex这个软件来查看我们的img文件,同一时候比对FAT12文件系统的格式,看是否我们的img文件同FAT12文件系统描写叙述的同样:

从上图中能够看到里面有一个haribotesys的文件夹项。那么我们看看我们的U盘里面是否存在这个文件

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

从上图能够看到U盘里面确实存在HARIBOTE.SYS这个文件,说明我们的U盘在利用fdisk来拷贝img文件的同一时候就已经被FAT12文件系统格式化了,那么也就是说window下我们的U盘的大小应该为1.44M了,尽管在window下我们的U盘显示的是1.44M(这个高级格式化的结果,高级格式化是将U盘格式化为特定的文件系统格式,我们的U盘被FAT12格式化了,那么window就会以FAT12文件系统定义的信息来计算大小)。可是实际上我们的U盘还是4G的(这个是低级格式化的结果,4G的计算是依据U盘的head(磁头)、sector(扇区)、cylinder(柱面)来计算的。这个计算与文件系统无关)。

那么以下的文件夹信息是怎么写到img文件里的呢?这个就得去看看Makefile了。事实上在Makefile中进行拷贝的时候主要做的工作是FAT12文件系统格式化(wbinimg src:ipl.bin len:512 from:0 to:0 ),这个时候img已经被FAT12文件系统格式化了,接下来的文件拷贝的操作就会自己主动的改动FAT的位图、文件夹等相关控制信息。然后接着是文件的拷贝(copy from:haribote.sys to:@:)这个过程事实上就是一个简单的文件的拷贝过程。当然文件的拷贝过程自然会改动文件系统的相关控制信息了。

从上面的解说,再结合前面我写的的文章——怎样制作从U盘启动。能够总结出来。假设在开发过程中没有遇到启动扇区的改动(也就是说ipl.nas)的改动的话。那么能够将生成的haribote.sys直接的复制到U盘就可以,都不用fdisk来进行拷贝了,这样是不是更加的省事了呢。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

好了,今天的文章的内容就这么多了,接下来我会结合《30天自制操作系统》这本书和linux0.01的源码来对操作系统进行分析。

关于U盘启动操作系统《30天自制操作系统》的更多相关文章

  1. 从你的u盘启动:30天自制操作系统第四天u盘启动学习笔记

    暑假学习小日本的那本书:30天自制操作系统 qq交流群:122358078    ,更多学习中的问题.资料,群里分享 developing environment:ubuntu 关于u盘启动自己做的操 ...

  2. 30天自制操作系统第八天学习笔记(u盘软盘双启动版本)

    暑假学习小日本的那本书:30天自制操作系统 qq交流群:122358078    ,更多学习中的问题.资料,群里分享 environment:开发环境:ubuntu 第八天的学习思考: 关于鼠标是怎么 ...

  3. 30天自制操作系统第九天学习笔记(u盘软盘双启动版本)

    暑假学习小日本的那本书:30天自制操作系统 qq交流群:122358078    ,更多学习中的问题.资料,群里分享 environment:开发环境:ubuntu 第九天的课程已学完,确实有点不想写 ...

  4. 《30天自制操作系统》笔记(03)——使用Vmware

    <30天自制操作系统>笔记(03)——使用Vmware 进度回顾 在上一篇,实现了用IPL加载OS程序到内存,然后JMP到OS程序这一功能:并且总结出下一步的OS开发结构.但是遇到了真机测 ...

  5. 《30天自制操作系统》笔记(02)——导入C语言

    <30天自制操作系统>笔记(02)——导入C语言 进度回顾 在上一篇,记录了计算机开机时加载IPL程序(initial program loader,一个nas汇编程序)的情况,包括IPL ...

  6. 《30天自制操作系统》笔记(01)——hello bitzhuwei’s OS!

    <30天自制操作系统>笔记(01)——hello bitzhuwei's OS! 最初的OS代码 ; hello-os ; TAB=4 ORG 0x7c00 ; 指明程序的装载地址 ; 以 ...

  7. 《30天自制操作系统》笔记(01)——hello bitzhuwei’s OS!【转】

    转自:http://www.cnblogs.com/bitzhuwei/p/OS-in-30-days-01-hello-bitzhuwei-OS.html 阅读目录(Content) 最初的OS代码 ...

  8. 30天自制操作系统(三)进入32位模式并导入C语言

    1 制作真正的IPL IPL(Initial Program Loader),启动程序装载器,但是之前并没有实质性的装载任何程序,这次作者要开始装载程序了. 虽然现在开发的操作系统啥功能也没有,作者说 ...

  9. 《30天自制操作系统》软盘 -> VMware虚拟机

    书名叫做30天自制操作系统,按照学校课设答辩的时间来看,估计得把书名改成<一周自制操作系统>,太卷了哈哈哈 我们可以使用qemu来模拟物理机 make run第二天制作的操作系统 可以看到 ...

随机推荐

  1. webuploader插件使用分析

    大致架构: 前端:html5+ajax 后端:java (struts框架相关) 碰到问题: 后台coder给我提供一个接口./file/uploader.do?upFile=?,让我上传文件对应up ...

  2. python类的继承和多态

    现在属于是老年人的脑子,东西写着写着就忘了,东西记着记着就不知道了.之前学C++的时候就把类.对象这块弄得乱七八糟,现在是因为很想玩python,所以就看看python的类和对象. 就像说的,类有三个 ...

  3. (一) Mysql 简介及安装和配置

    第一节:Mysql 简介 百度百科 第二节:Mysql 安装及配置 1,Mysql5.1 下载及安装 2,Mysql 数据库编码配置 utf-8 3,Mysql 图形界面 Sqlyog 下载及安装

  4. 以太坊go-ethereum客户端docker安装(二)开发(dev)环境搭建

    在上一篇博客中,讲述了基于docker怎么搭建一个go-ethereum节点.作为开发人员,如果只是单纯的拥有一个Full node,还无法满足正常的开发.比如说,进行转账交易,你要考虑是否拥有一定的 ...

  5. UAF漏洞学习

    产生原因: UAF漏洞的成因是一块堆内存被释放了之后又被使用.又被使用指的是:指针存在(悬垂指针被引用).这个引用的结果是不可预测的,因为不知道会发生什么.由于大多数的堆内存其实都是C++对象,所以利 ...

  6. booklist for machine learning

    Recommended Books Here is a list of books which I have read and feel it is worth recommending to fri ...

  7. python开发学习-day06(模块拾忆、面向对象)

    s12-20160130-day06 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: ...

  8. spring_150906_sqlmapclientdaosupport_getSqlMapClientTemplate

    添加到ibatis相关jar包! 实体类: package com.spring.model; public class DogPet { private int id; private String ...

  9. 用php写的一个猜数字的程序

    写一个php的猜数字的小程序,提高自己对php的熟悉程度. <?php $count=rand(0,100); $number = (isset($_POST['number'])) ? $_P ...

  10. Spring MVC——搭建HelloWeb工程

    1.确保环境配置配置正确(Myeclipse(eclipse)+Tomcat) 2.新建web project 3.将Spring MVC所需的jar包粘贴到WebRoot/WEB-INF/lib下 ...