【转载】FAT12格式的引导程序】的更多相关文章

FAT12格式的引导程序 在上一篇文章中详细介绍了FAT12格式的引导扇区数据结构,详情请浏览: 地址是:http://blog.sina.com.cn/s/blog_3edcf6b80100cr08.html 现在我们来编写一个简单的符合FAT12格式的引导程序,用它来领略一下程序的力量,并以此来敲开操作系统神秘的大门. 其实,只要是在0磁头0柱面1扇区中的指令能加载到7c00h处运行的程序,并且在扇区最后两字节分别是55和AA,就可以称为有效的引导扇区,能成功的引导系统,那么为什么还要大费周…
 1.用WinImage来写入到引导区的详细步骤: 启动WinImage后,打开“文件”菜单,单击菜单中的“打开”命令. 选择之前保存的磁盘镜像文件“boot.img”或者“boot.ima”. 打开“映像”菜单,单击菜单中的“引导扇区属性”命令. 在弹出的“引导扇区属性”对话框中,单击“打开”按钮. 浏览并选择经过汇编后生成的引导程序,如:“boot.bin”,然后单击“打开”按钮以选择引导文件并关闭对话框.注意此处所选择的文件长度应该是512字节,文件类型是BIN启动文件. 返回到“引导扇区…
org 07c00h ;================================================ jmp short START nop ; 这个 nop 不可少 ;这个结构将要被写在软盘的第一个扇区,相当于格式化软盘为FAT12格式 BS_OEMName DB 'PAVKOOOO' ; OEM String, 必须 8 个字节 BPB_BytsPerSec DW ; 每扇区512字节 BPB_SecPerClus DB ; 每簇1扇区 簇的定义是为了操作系统能够更加快速…
一.问题的提出 在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用 系统提交实际应用后,随着数据库中数据的增加,系统的响应速度就成为目前系统需要解决的最主要的问题之一.系统优化中一个很重要的方面就是SQL语句的优 化.对于海量数据,劣质SQL语句和优质SQL语句之间的速度差别可以达到上百倍,可见对于一个系统不是简单地能实现其功能就可,而是要写出高质量的 SQL语句,提高系统的可用性. 在多数情况下,Oracle…
FAT12文件系统之引导扇区结构 文件系统即文件管理系统,是操作系统的重要组成部分之一,如果需要开发底层磁盘驱动或编写自己的操作系统,就必须详细了解文件系统. FAT12是Microsoft公司DOS操作系统所支持的文件系统之一,此外还有FAT16和FAT32,之后会分别详述这些文件系统.当软盘被标准格式化后,磁盘被格式化为:每磁头80个柱面(磁道),每个柱面有18个扇区,每个扇区有512字节空间.所以标准软盘的总空间(容量)为: 2*80*18*512=1474560B=1440K=1.44M…
摘要: 原创博文:转载请标明出处:http://www.cnblogs.com/zxouxuewei 首先加载启动代码: ; hello-os ; TAB=4 ORG 0x7c00 ; 指明程序装载地址 ; 标准FAT12格式软盘专用的代码 Stand FAT12 format floppy code JMP entry ;程序跳转指令 DB 0xeb, 0x4e, 0x90 DB "HELLOIPL" ; 启动扇区名称(8字节) DW 512 ; 每个扇区(sector)大小(必须5…
qq:992591601 欢迎交流 2016.04.03 2016.05.31 2016.06.29 这一章是有些复杂的,我不太懂作者为什么要把这么多内容都放进一天. 1读入了十个柱面 2从启动区执行操作系统 3进入32位 4导入C语言 makefile的内容: TOOLPATH = ../z_tools/ INCPATH = ../z_tools/haribote/ MAKE = $(TOOLPATH)make.exe -r NASK = $(TOOLPATH)nask.exe NASM =…
目录: 1.用0-1编写最简单的操作系统 2.用汇编改写上面0-1程序 2.1 只用DB的汇编改写版  2.2 加入RESB汇编的改写版  2.3 进一步使用汇编替换0-1文件  2.4 核心程序也用汇编改写  2.5 向汇编程序中加入IPL(启动程序装载器)  2.6 从启动区执行操作系统(读盘的应用) 3.汇编和C语言混合开发 3.1 32位开发及C语言混合开发引入 3.2 汇编引入C语言(用汇编写C语言函数)  3.3 C语言实现内存写入  3.4 C语言指针的强大  3.5 色号设定与调…
qq:992591601 欢迎交流 2016-03-31作 2016-06-01.2016-06-27改 我总结了些基本原理: 1.软盘的第一个扇区为启动区 2.计算机读软盘是以512字节为单位来读写,所以第一个扇区为512字节 3.一张软盘1440KB,2880个扇区 4.第一扇区为启动区,加载操作系统用 5.启动区结束标志位55AA 一个简单的开机引导程序(这个算是很基本的了): ; hello-os ; TAB=4 ORG 0x7c00 ; bios 将程序加载到0x7c00 + 偏移地址…
微软在Dos/Windows系列操作系统中共使用了6种不同的文件系统(包括即将在windows的下一个版本中使用的Winfs).它们分别是:FAt12.FAT16.FAT32.NTFS.NTFS5.0和WINFS.其中FAt12.FAT16.FAT32均是FAT文件系统.是File Allocation Table的简称. 1. FAT12 这是伴随着Dos诞生的“老”文件系统了.它采用12位文件分配表,并因此而得名.而以后的FAT系统都按照这样的方式在命名.在DOS3.0以前使用.但是在现在,…
继续开发 ; hello-os ; TAB= ORG 0x7c00 ; 指明程序的装载地址 ; 以下的记述用于标准FAT12格式的软盘 JMP entry DB 0x90 DB "HELLOIPL" ; 启动区的名称 DW ; 每个扇区(sector)的大小 DB ; 簇(cluster)的大小 DW ; FAT的起始位置 DB ; FAT的个数 DW ; 根目录的大小 DW ; 该磁盘的大小 DB 0xf0 ; 磁盘的种类 DW ; FAT的长度 DW ; 1个磁道(track)有几…
先说几句题外话: 回想第一次看到<30天自制操作系统>这本书时,就被这快餐般的标题深深吸引了,我无法想象如此复杂有内涵的内容能在30天就弄出来,直到我花了一个多月看到这本书的第9天时,我放弃了. 然而这次. 对不起,我是认真的! 以下开始正文,都是个人浅见,如有错误,欢迎斧正. 操作系统如何自己运行起来? 首先,机器自动读取磁盘的第一个扇区(512字节),并载入到内存的0x7c00位置,然后执行第一个扇区的代码,这段代码会读取磁盘后续的扇区到内存,接着跳转到引导文件,由引导文件继续启动操作系统…
<30天自制操作系统>笔记(01)——hello bitzhuwei's OS! 最初的OS代码 ; hello-os ; TAB=4 ORG 0x7c00 ; 指明程序的装载地址 ; 以下这段是标准FAT12格式软盘专用的代码 JMP entry DB 0x90 DB "HELLOIPL" ; freeparam 启动区的名称可以是任意的字符串(8字节) DW ; 每个扇区(sector)的大小(必须为512字节) DB ; 簇(cluster)的大小(必须为1个扇区)…
一个操作系统从开机到开始运行,大致经历“引导—>加载内核入内存—>跳入保护模式—>开始执行内核”这样一个过程.也就是说,在内核开始执行之前不但要加载内核,而且还有准备保护模式等一系列工作,如果全都交给引导扇区来做,512字节很可能是不够用的,所以不妨把这个过程交给另外的模块来完成,我们把这个模块叫做Loader.引导扇区负责把Loader加载入内存并且把控制权交给它,其他工作放心地交给Loader来做,因为它没有512字节的限制,将会灵活得多. 为了操作方便,把软盘做成FAT12格式.这…
一.drawable  图形对象,可以转载常用格式的图像,可能是(位图)Bitmapdrawable,或者shapedrawable(图形),还可能是多种其他图片格式GIF,PNG,JEPG 二.Bitmap 就是位图,用于图片的处理 三.Canvas 意为画布,就是绘画的目标区域,用来管理Bitmp或者path路径 下面就是讲到drawable转换成Bitmap的方法 我所知有两种方法(两种方法谁好谁坏,得看情况) (1)常见的一种方法就是创建个Bitmap出来,再用画布绑定这个位图,将dra…
在 x01.os.7 中,借助 freedos,学习了保护模式.但操作系统必须完成引导:boot, 加载内核:loader,kernel,进而管理process,memory,file等. 引导比较简单,开机启动时,CPU 采取硬的方式,直接把 BIOS 载入内存某处运行.这就是电脑启动时按 DEL 键可以看到的画面.此时,无硬盘可以,无内存则不可以.BIOS 是一个只读芯片,但我认为它仍有可写的部分,否则,启动盘设置的保存,就说不通.BIOS 退出时,它会检测启动盘 0 扇区的最后两个字节,是…
1.大致介绍: >_<" 大致执行顺序是:ipl10.nas->asmhead.nas->bootpack.c PS: 这里bootpack.c要调用graphic.c.dsctbl.c.fifo.c.int.c实现功能,其中有些函数还必须汇编来写,所以单独写一个汇编文件naskfunc.nas,为了方便看全部函数和结构体,所以写一个bootpack.h来写一些结构体和函数声明~ >_<" 下面是编译图解:最终生成的haribote.img可放在软盘…
helloos3: helloos.nas的解释在P29中 接下来课本讲了一些汇编语言的知识,便于理解这个汇编文件helloos4: 讲解在P41 helloos.nas后半部分去掉就成了ipl.asm ipl.asm是用来制作启动区的,启动区只需要最初的512字节 输入顺序 asm--makeimg--run asm   ipl.asm->ipl.bin   ipl.lst makeimg   ipl.bin->helloos.img run 加载运行helloos.img镜像helloos…
本篇博文跟上一篇[Python][flask][flask-wtf]关于flask-wtf中API使用实例教程有莫大的关系. 简介:Flask-Login 为 Flask 提供了用户会话管理.它处理了日常的登入,登出并且长时间记住用户的会话. 直白的讲,flask-login包为用户管理了涉及到用户登录相关的缓存(Session)管理. Posted by Alima | cnblogs. 一.安装(Install) PC环境:Windows 7,Python 3.5.2. PS:此次配置环境阶…
简介:简单的集成flask,WTForms,包括跨站请求伪造(CSRF),文件上传和验证码. 一.安装(Install) 此文仍然是Windows操作系统下的教程,但是和linux操作系统下的运行环境相差甚微. 使用Python版本3.5.2. 上一篇文章提到Virtualenv环境运行Python,这次仍然建立Python虚拟运行环境以便实现不同数据包的隔离. 创建wtfdemo虚拟运行环境 用控制台(管理员运行模式)进入(cd)到想要创建工程的路径下,创建wtfdemo文件夹. mkdir…
鉴于网上关于flask-SQLAlchemy的实例使用教程参差不齐,于此写下工作学习过程中的使用过程,以便分享交流. 对于python关于flask有一定了解的高端玩家来说,请转至flask官方开发文档. 一.安装(install) 需要有安装python的PC一台,介于windows系统用户比较多,本文章使用的是windows下开发. 1.创建虚拟 为每一个工程创建一个独立的python运行环境是我们所需要的,python提供了virtualenv,可以为我们提供这个特殊的需求. 配置virt…
helloos.nas 源码: ; hello-os ; TAB= ; 以下这段是标准的FAT12格式软盘专用代码 DB 0xeb, 0x4e, 0x90 DB "HELLOIPL" ; 启动区名称,可以是任意的字符串(8个字节) DW ; 每个扇区(sector)的大小(必须为512字节) DB ; 簇(clustor)的大小(必须为1个扇区) DW ; FAT的起始位置(一般从第一扇区开始) DB ; FAT的个数(必须为2) DW ; 根目录的大小(一般设为224项) DW ;…
时间的操作System.DateTime1 DateTime如何存储时间2 如何在DateTime对象和字符串对象之间进行转换3 什么是UTC时间,如何转换到UTC时间 时间的操作System.DateTime1 DateTime如何存储时间 DateTime结果内部存储在一个64位长的整数,其中低62位来代表时间,它表示从0001年1月1日0时0分0秒开始到表示的时间经过百毫微秒数 2 如何在DateTime对象和字符串对象之间进行转换 DateTime可以通过ToString方法来格式化输出…
转自:http://www.cnblogs.com/bitzhuwei/p/OS-in-30-days-01-hello-bitzhuwei-OS.html 阅读目录(Content) 最初的OS代码 虚拟机加载helloos.img 真机加载helloos.img 制作启动盘 真机启动 总结 <30天自制操作系统>笔记(01)——hello bitzhuwei's OS! 回到顶部(go to top) 最初的OS代码 1 ; hello-os 2 ; TAB=4 3 4 ORG 0x7c0…
移植方法参见我的另一篇博客:<stm32--FatFs移植(SPIFlash)>. 本文仅记录在初次移植完成后,遇到的问题,和解决的过程. 调试记录: 问题1:f_open返回3,即磁盘没有准备好. 原因:这是因为逻辑驱动器是按默认(0)初始化的,而在宏定义中把SPIFlash定义为了1.将SPIFlash定义为0即可. 问题2:开机是否格式化?如果不格式化,SPIFlash无法创建创建文件系统:又不可能每次开机都格式化. 处理:f_getfree检测FAT卷空间,如果返回是FR_NO_FIL…
1 制作真正的IPL IPL(Initial Program Loader),启动程序装载器,但是之前并没有实质性的装载任何程序,这次作者要开始装载程序了. 虽然现在开发的操作系统啥功能也没有,作者说轻轻松松做. 起始我觉得吧,有了启动程序加载器之后,相当于给了我们一个给CPU传送指令的入口,我们想让CPU干啥,就给它传指令和数据就可以啦.操作系统嘛,就是一个启动程序装载器调用的一个很大的.很复杂的函数而已,突然感觉自己有些升华了( ^_^ ). CPU就是一个干活很快的家伙,但是智商基本为0,…
1 介绍文本编辑器 这部分可直接略过 2 继续开发 helloos.nas中核心程序之前的内容和启动区以外的内容先不讲了,因为还涉及到一些软盘方面的知识. 然后来讲的是helloos.nas这个文件 ; hello-os ; TAB=4 ORG 0x7c00 ; 指明程序的装载地址 ; 以下这部分记录的是FAT12格式的软盘 JMP entry DB 0x90 DB "HELLOIPL" ; 启动扇区的名称可以是任意的字符串 (8字节) DW ; 每个扇区(sector)的大小(必须是…
来自:清泛网 - http://www.tsingfun.com/html/2015/dev_0804/hello_os_word_my_first_os.html 首先阐述下程序运行的基本原理:计算机CPU仅仅运行二进制指令,我们使用的开发语言开发出的程序终于由对应的编译器编译为二进制指令.二进制中包括程序相关的数据.代码指令(用我们最常见的公式描写叙述就是:程序=数据+算法).CPU读取对应的指令.数据后開始运行,运行后的结果输出到外部设备,如屏幕.磁盘等.整个过程中,CPU发挥最为核心的作…
Day2 汇编语言学习与Makefile入门 本文仅带着思路,研究源码里关于文件系统的参数 关于day2主程序部分及更多内容,请看<30天自制操作系统>笔记 导航 发现学习中的变化 源码差异分析 FAT12/FAT16/FAT32相关资料 开始全面分析 发现学习中的变化 day1代码(只简单地使用DB DW DD RESB指令) ; hello-os ; TAB=4 ; 标准FAT12格式软盘专用的代码 Stand FAT12 format floppy code DB 0xeb, 0x4e,…
Windows (开机)读软盘第一个扇区的读法的具体表格 Hello World汇编版 就是将16进制编写的代码使用汇编语言编写出来 ; cherry-os ORG 0x7c00 ;指定程序装载的位置 ;下面用于描述FAT12格式的软盘 JMP entry DB 0x90 DB "CHRRYIPL" ;启动区的名称可以是任意的字符串,但长度必须是8字节 DW ; 每一个扇区的大小,必须是512字节 DB ;簇的大小(必须为1个扇区) DW ;FAT的起始位置(一般从第一个扇区开始) D…