编写操作系统1--概述

编写操作系统,就是想办法制作一张“含有操作系统的,能够自动启动的磁盘”。

1.在Windows(或其他)操作系统上编写源代码
2.用C语言编译器编译源代码,生成机器语言文件
3.对机器语言文件进行加工,生成软盘映像文件
4.将映像文件写入磁盘,作成含操作系统的启动盘

以前的软盘 的 总 容量 是 1440KB, 所以 作为 备份 数据 的 映像 文件 也 恰好 是 1440KB。

实现上自底向上,底层采用NASM汇编+C实现,初期在VM上调试,后期以虚拟软盘镜像的形式部署到机器上

我们现在在使用16进制手动编写一个软盘格式的文件。一个软盘的大小就是1474560字节,这也是为什么我们操作系统的大小要是1474560字节。BIOS读软盘第一个扇区时,磁盘内不同地方的内容有不同的含义,详细含义见汇编代码注释,在这里引用github上面的汇编注释,
点我查看
其大概意思为,软盘的格式为FAT12如果将计算机的开机设置为从软盘启动,计算机开机会驱动软盘的磁头0读其0柱面1扇区的内容到内存0x7c00(人为设定)~ 0x7dff处,并检查扇区最后两2字节内容,如果为55AAH,则从0x7c00开始执行这段程序。
如果将一个好的软盘的磁头0对应的0柱面1扇区内含有一段(让显存)显示“Hello world”的机器指令,且将扇区最后2个字节的内容为55AAH。设置计算机开机时从软盘启动后就能够显示“Hello World”。
这就是这一段代码的基本原理.。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值