自己动手写操作系统阅读笔记(一)
本来今天想要学习一下操作系统的相关内容,奈何书都没带,猛然想起自己还有一个自己动手写操作系统的梦想,于是拿出这本书重新研究以下。
对于第一章节的写一个简单的boot写出来以后也是着实兴奋一把,不过也是要记下相关的信息。
安装NASM
首先我的操作系统是Ubuntu
使用sudo aptitude install nasm
来安装nasm
然后就是简单的asm代码
org 07c00h ;汇编程序加载到7c00处
mov ax, cs ;cs 无法直接加载到ds,通过ax(x86基础)
mov ds, ax
mov es, ax
call DispStr ;调用显示字符串例程
jmp $ ;无限循环
DispStr:
mov ax, BootMessage
mov bp, ax
mov cx, 16
mov ax, 01301h
mov bx, 000ch
mov dl, 0
int 10h
ret
BootMessage: db "Hello, OS world!"
times 510-($-$$) db 0 ;使用0填充剩下的空间
dw 0xaa55 ;结束标志
编译
nasm boot.asm -o boot.bin
写入软盘
然后这个时候可爱的作者让我们写到软盘里= =
这个时候很多朋友都会
dd if=boot.bin of=/dev/sdx
比如一开始的我= =
我写到了8G的U盘里
其实我们可以用virtualbox来搞定
建立一个虚拟机——我选的是ubuntu_32bit——我觉得挺麻烦的,所以就不换了,因为我成功了。
在设置,存储中,点添加软盘控制器。
然后我们使用dd命令建立一个虚拟软盘。
dd if=boot.bin of=floppy.img count=2880
然后选择虚拟软盘。。选择floppy.img然后启动看。
然后就可以看到可爱的Hello,OS world!
本文参考: Linux 下制作虚拟软盘镜像 http://blog.163.com/wascm@126/blog/static/9385027200851905148317/
:http://www.cnblogs.com/svitter/