DIY操作系统(一)

这篇博客开启了DIY操作系统的系列教程,主要分享了《30天自制操作系统》中引导扇区的代码,作者增加了详细注释,便于读者理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引文:构想根据《30天自制操作系统》以及《ORANGE’S:一个操作系统的实现》初步实现一个操作系统。

先开个头,以后的棋一步一步下。

先说几句题外话:
  回想第一次看到《30天自制操作系统》这本书时,就被这快餐般的标题深深吸引了,我无法想象如此复杂有内涵的内容能在30天就弄出来,直到我花了一个多月看到这本书的第9天时,我放弃了。
  然而这次。
  对不起,我是认真的!

以下开始正文,都是个人浅见,如有错误,欢迎斧正。
  操作系统如何自己运行起来?
  首先,机器自动读取磁盘的第一个扇区(512字节),并载入到内存的0x7c00位置,然后执行第一个扇区的代码,这段代码会读取磁盘后续的扇区到内存,接着跳转到引导文件,由引导文件继续启动操作系统。
  这里有几点说明,并不是所有的第一个扇区都是引导扇区,因为他有个特殊的标记,以0x55aa结尾,为什么是0x55aa?还是让我们先看下为什么要载入到内存的0x7c00位置,因为答案都是一样的,龟腚!

下面是《30天自制操作系统》引导扇区的代码,略作修改,并且加了大量注释,让我们RTFSC!

CYLS    EQU        10                ; 定义变量,将要读取的柱面数量

        ORG        0x7c00            ; 指明程序载入到内存的地址,7c00是魔法数字,人为规定的,没什么道理好讲

        
; 以下这段是标准的FAT12格式软盘用的代码

        JMP       entry           ; 跳到下面执行入口entry
        DB        0x90            ; 写一个字节,DW是写2个字节,DD是写4个字节
        DB        "HARIBOTE"        ; 启动区的名称,必须8字节
        DW        512                ; 每个扇区的大小,必须512字节
        DB        1              
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值