自制操作系统-0

从零开始写一个操作系统相信是很多编程爱好者的梦想。以前也下载过linux0.11的源代码,看过一部分,虽然代码不多,但还是看不懂。
这次借助30天自制操作系统这本书,一定要写出一个属于自己独一无二的操作系统。

一.环境搭建

我自己的系统是linux的,所以整个过程也是在linux下面完成的。
第一步需要一个文本编辑器,我使用的是sublime text3。
第二步需要一个汇编器,nasm。
第三步需要一个虚拟机或者模拟器,qemu,vmware都可以,正好电脑上装了vmware。

二.编写代码

;FAT12格式文件系统头部分  
DB      0xeb, 0x4e, 0x90  
DB      "HELLOIPL"  
DW      512  
DB      1  
DW      1  
DB      2  
DW      224  
DW      2880  
DB      0xf0  
DW      9  
DW      18  
DW      2  
DD      0  
DD      2880  
DB      0,0,0x29  
DD      0xffffffff  
DB      "HELLO-OS   "  
DB      "FAT12   "  
RESB    18  
;程序主体  
DB      0xb8, 0x00, 0x00, 0x8e, 0xd0, 0xbc, 0x00, 0x7c  
DB      0x8e, 0xd8, 0x8e, 0xc0, 0xbe, 0x74, 0x7c, 0x8a  
DB      0x04, 0x83, 0xc6, 0x01, 0x3c, 0x00, 0x74, 0x09  
DB      0xb4, 0x0e, 0xbb, 0x0f, 0x00, 0xcd, 0x10, 0xeb  
DB      0xee, 0xf4, 0xeb, 0xfd  
;信息显示部分  

DB      0x0a, 0x0a  
DB      "my operating system"  
DB      0x0a  
DB      0  
;原书中使用下面指令,但这个在nasm中不通过,故使用times  
;这里的指令还没有细细研究
;RESB   0x1fe - $  
times 510 - ($-$$) DB 0  
DB      0x55, 0xaa  
;以下是启动区外输出部分  
DB      0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00  
RESB    4600  
DB      0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00  
RESB    1469432  

三.汇编

nasm boot.asm -o boot.img

四.在vmware下运行

在新建的操作系统的设置中添加硬件软盘
floppy

启动
run

五.最后

代码还是不太懂,尤其是那一堆16进制数。加油!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值