自制操作系统--lelo OS (基于OSASK)day1-hello,world!

这将是一个很有意义的博客,一个很长的博客。

我一直非常喜欢计算机编程,而且还经常把自己的ThinkPad搞得乱七八糟,重装过无数次系统,有时我还妄想自己要编一个操作系统,不过愿望马上就要实现了,几十天后,我们将编成一个独一无二的操作系统。

day1开始!

准备工作

主机配置:

ThinkPad E480
windows10 1909 专业工作站版版
8G内存
Intel core i5

准备工具:

BZ
vbox
开始!

资源下载

首先安装BZ
下载地址
然后安装vbox
下载地址
今天我们来写hello,world (可启动)

开始编写

打开BZ,输入以下内容:
开头部分
注意
注意

代码

000000->000080:
EB4E9048 454C4C4F 49504C00 02010100 02E00040 0BF00900 12000200 00000000 400B0000 000029FF FFFFFF48 454C4C4F 2D4F5320 20204641 54313220 20200000 00000000 00000000 00000000 00000000 B800008E D0BC007C 8ED88EC0 BE747C8A 0483C601 3C007409 B40EBB0F 00CD10EB EEF4EBFD 0A0A6865 6C6C6F2C 20776F72 6C640A00

0001F0:
00000000 00000000 00000000 000055AA F0FFFF00 00000000 

001400:F0FFFF

剩下的内容全是0,一共168000行,大小1.40MB,合1474560字节,file-save保存为leloOS1.img

原理

我们现在在使用16进制手动编写一个软盘格式的文件。一个软盘的大小就是1474560字节,这也是为什么我们操作系统的大小要是1474560字节。BIOS读软盘第一个扇区时,磁盘内不同地方的内容有不同的含义,这里不仔细说明每一位的含义了。其大概意思为,软盘的格式为FAT12,软盘的名称为HELLOOS(这里并没有改成lelo OS,因为这不是最终的系统,这只是一次实验)

如果将计算机的开机设置为从软盘启动,计算机开机会驱动软盘的磁头0读其0柱面1扇区的内容到内存0x7c00~ 0x7dff处,并检查扇区最后两2字节内容,如果为55AAH,则从0x7c00开始执行这段程序。

如果将一个好的软盘的磁头0对应的0柱面1扇区内含有一段(让显存)显示“Hello world”的机器指令,且将扇区最后2个字节的内容为55AAH。设置计算机开机时从软盘启动后就能够显示“Hello World”。

这就是这一段代码的基本原理

当然我们编写操作系统不可能用16进制去编写,这一段代码只是一个小的实验,为了像大家展示,这已经是一个可以使用的系统了。后面,我们将用更高级的语言编写操作系统。

其实就是汇编。。。。。
高级吧!。。。。。。

虚拟机测试

虚拟机配置

既然代码写完了,我们来测试一下吧!

打开vbox,点击新建,名称为lelo OS,类型为Other,版本为Other/Unknown,其他设置保持默认。

在这里插入图片描述
在虚拟机设置里点击存储-添加存储控制器-182078(Floppy)-添加虚拟软驱-注
册-选择leloOS1.img-确定-选择-OK
在这里插入图片描述

结果展示

点击启动
如果你看到这个画面,就证明!!!
你的第一个操作系统实现了!!!!

在这里插入图片描述

结语


我们今天的内容完成啦。
我们明天继续!

img文件下载
提取码:97zk

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值