如何写一个最简单的操作系统

关于如何写一个最简单的操作系统,这个事情完全处于好奇。实际上这样一个操作系统没有任何使用价值。整个系统要做的事情就是输出一句“Hello,OS world!”,但是这样一个输出不同于printf和cout,它是完全不依赖高级语言的。总之就是神奇又酷酷的事情。
闲话少说,下面逐步讲一下,如何完成这件事情:
1、你需要准备一下软件:nasm,VMware
2、然后你需要有一个文本编辑器。Windows里你可以用记事本,不过我更喜欢用Notepad++。Linux下你可以用GEdit等等,看你个人习惯。
3、打开文本编辑器,写下以下内容:
[plain]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. org 07c00h      ;告诉编译器程序加载到7c00处  
  2. mov ax, cs  
  3. mov ds, ax  
  4. mov es, ax  
  5. call DispStr    ;调用显示字符串例程  
  6. jmp $  
  7. DispStr:  
  8. mov ax, BootMessage  
  9. mov bp, ax  
  10. mov cx, 16  
  11. mov ax, 01301h  
  12. mov bx, 00ch  
  13. mov dl, 0  
  14. int 10h  
  15. ret  
  16. BootMessage:    db "Hello, OS world!"  
  17. times 510-($-$$) db 0  
  18. dw 0xaa55  


你想知道以上内容是什么意思吗?请自行翻阅《自己动手写操作系统》
把上面的内容保存,并把文件保存为Boot.asm
4.如果你安装好nasm,那么打开Nasm,这是一个命令行程序,用CD命令进入到你存放Boot.asm的文件夹,输入nasm Boot.asm -o Boot.img这样在这个文件夹下面你就会获得一个名为“Boot.img”的文件。

5、运行VMware,新建一个虚拟机,图片比文字更直观:



由于这个操作系统太简单了,我用不上网络,所以这里我选择“不使用网络”,当然你选了别的应该也没有影响。


硬盘也用不了多少,随便写吧,反正完全够用。


点下一步走到这里,这里是关键,点一下定制硬件,如果你的VMware是英文的,这里写的是Customize Hardware。选择软盘管理器->使用软盘镜像文件,选择你刚刚生成的Boot.img


千万不要忘了勾上这个打开电源时连接


打开你刚刚创建的虚拟机电源


你的操作系统启动了,是不是很有成就感大笑


参考文献:《自己动手编写操作系统》

    《自己动手写操作系统——在 VMware下实现软驱加载并运行》

  • 10
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
1.1 计算机启动过程 计算机启动过程一般是指计算机从点亮到加载操作系统一个过程。对于IBM 兼容机(个人电 脑)来讲,这个过程大致是这样的: 1. 加电电源开关被按下时,机器就开始供电,主板的控制芯片组会向CPU(Central Processing Unit,中央处理器)发出并保持一个RESET(重置)信号,让CPU恢复到初始状态。当芯片组 检测到电源已经开始稳定供电时就会撤去RESET信号(松开台式机的重启键是一样的效果), 这时CPU就从0xffff0处开始执行指令。这个地址在系统BIOS(Basic Input/Output System, 基本输入输出系统)的地址范围内,大部分系统BIOS厂商放在这里的都只是一条跳转指令,跳 到系统BIOS真正的启动代码处。 2. 自检系统BIOS的启动代码首先要做的事情就是进行POST(Power-On Self Test,加电后自 检),POST的主要任务是检测系统中一些关键设备是否存在和能否正常工作,例如内存和显卡 等。由于POST是最早进行的检测过程,此时显卡还没有初始化,如果系统BIOS在POST的 过程中发现了一些致命错误,例如没有找到内存或者内存有问题(此时只会检查640K常规内 存),那么系统BIOS就会直接控制喇叭发声来报告错误,声音的长短和次数代表了错误的类 型。 3. 初始化设备接下来系统BIOS将查找显卡的BIOS,存放显卡BIOS的ROM芯片的起始地址通 常设在0xC0000处,系统BIOS在这个地方找到显卡BIOS之后就调用它的初始化代码,由显卡
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值