10分钟写一个“操作系统”(《自己动手写操作系统》笔记)
时间:2006-06-27
来源:互联网
你需要准备些什么:
1、nasm汇编器,我用的gentoo已经默认就有了
2、vmware workstation,原谅我使用盗版软件。我的qemu没有编译成功,而且vmware工作得也很好,也就没有折腾着一定要装一个开源软件了。
下面编辑一个boot.asm文件如下:
org 07c00h mov ax, cs mov ds, ax mov es, ax call DispStr jmp $ DispStr: mov ax, BootMessage mov bp, ax ;es:bp = 串地址 mov cx, 16 ;cx = 串长度 mov ax, 01301h mov bx, 000ch mov dl, 0 int 10h ret BootMessage: db "Hello, OS world!" times 510-($-$$) db 0 ;填充剩下的空间,使生成的二进制代码恰好为512字节 dw 0xaa55
$ nasm boot.asm -o boot.bin
这样就得到了一个512字节的boot.bin文件了,这个就是软盘启动扇区里面应该放的代码。你可以用下面这个命令生成软盘镜像文件:
$ dd conv=sync if=boot.bin of=boot.img bs=1440k count=1
这样我们就得到软盘镜像boot.img了。注意命令中的conv=sync,使用这个选项后可以使得在把每个输入块填充到ibs个字节时,不足部分用空(NULL)字符补齐。在这个例子里由于输入文件只有512个字节,输出文件却需要1.44MB所以我用了这个选项。
下面,用vmware新建一个虚拟机,把软驱设置为刚才生成的镜像,启动系统,就可以得到预期的效果了。怎么样,是不是很简单呢?
作者: ifree 发布时间: 2006-06-27
作者: MAGPINE 发布时间: 2006-06-27
从这个贴子里学到了一点dd的用法。。
dd
du
df
都很有用
作者: huyongzs 发布时间: 2006-06-27
作者: gotop2004 发布时间: 2006-06-27
4年前学的汇编都忘光光了,而且是16位汇编。对于保护模式及保护模式下的汇编很不熟悉,有什么好的资料吗?
作者: ifree 发布时间: 2006-06-27
作者: ifree
是的,所以我打了个引号。
4年前学的汇编都忘光光了,而且是16位汇编。对于保护模式及保护模式下的汇编很不熟悉,有什么好的资料吗? |
作者: hendric 发布时间: 2006-06-28
不过用vm多麻烦啊,用boch好了,用bximg(好象这个工具,bochs自带的,制作img工具的)工具和dd命令就可以制作软盘和硬盘img文件,我就是用那个,很方便,而且bochs小,速度快!
作者: Heefan 发布时间: 2006-07-12
作者: hanzixing 发布时间: 2006-07-12
作者: lycaon 发布时间: 2006-07-13
作者: fiag 发布时间: 2006-07-16
作者: gradetwo 发布时间: 2006-07-17
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28