千家信息网

操作系统-Hello,DTOS!的创建

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,一.Hello,DTOS的创建Q:主引导程序是软件还是固件?如果是软件,那么由谁开发?如何开发?A.主引导程序1.一段存储在主引导区中的有效代码2.并不固化于硬件,属于操作系统代码的一部分3.启动操作
千家信息网最后更新 2025年12月02日操作系统-Hello,DTOS!的创建

一.Hello,DTOS的创建

Q:主引导程序是软件还是固件?如果是软件,那么由谁开发?如何开发
A.主引导程序
1.一段存储在主引导区中的有效代码
2.并不固化于硬件,属于操作系统代码的一部分
3.启动操作系统内核的桥梁,由汇编程序写出
4.代码总量不能超过512个字节(包含0x55aa)
我们可以由图可以看出BIOS的入口于C/C++的入口的对比

实验-编写一个主引导程序(汇编语言),可独立运行于x86架构的主机(无操作系统),运行后在屏幕上打印"Hello,DTOS!"
A.实现思路
1.将关键寄存器的值设为0(mov ax,0)
2.定义需要打印的数据(db "Hello,D.T.OS!")
3.打印预定义好的字符数据(int 0x10)
在这里需要知道的是
mov:赋值操作,将右操作数赋值给左操作数

int:触发中断

hlt:停止运行,CPU进入暂停状态,不执行任何操作

汇编中地址的访问 方式:段地址:段内偏移地址

标签


B.中断调用VS函数调用

实验解决方案的设计
1.将汇编源码编译为二进制机器码(nasm)

创建虚拟网盘
2.创建虚拟盘(bximage)
设置大小
3.将二进制代码写入虚拟盘起始位置(dd)
if为输入 of为输出 bs为大小 连续写入没有间隔
4.在虚拟机将虚拟盘作为启动盘执行(vmware)
B.实现过程如下
a.编写汇编语言

org 0x7c00start:  mov ax, cs//关键寄存器地址为0    mov ss, ax    mov ds, ax    mov es, ax    mov si, msg//赋值操作 将msg的第一行地址赋值到si寄存器中print:    mov al, [si]//[]表示取数据    add si, 1//si保存的地址值+1    cmp al, 0x00//结束位置    je last//进行比较跳转    mov ah, 0x0e    mov bx, 0x0f    int 0x10//触发中断,打印字符    jmp print//相当于while循环last:    hlt    jmp last//无条件的跳转msg:    db 0x0a, 0x0a//定义两个连续数据 0x0a换行    db "Hello, DTOS!"//定义字符串数据     db 0x0a, 0x0a//定义换行符    times 510-($-$$) db 0x00//填0满足512字节    db 0x55, 0xaa//占用两个字节

b.在Linux下将其编译成二进制

1-2.通过nasm命令进行二进制编译,如果没有安装nasm通过提示进行安装
3-4.通过bximage命令进行网盘设置,如果没有安装bximage通过提示进行安装
5-8.分别设置虚拟为虚拟网盘,然后将其设置为标准大小1.44兆,同时将其命名为a.img
9.通过dd命令将二进制代码写入虚拟盘起始位置,不间断的写入大小为512
生成的a.img如图所示

c.在虚拟机上新建一个操作系统,对其进行设置完之后,对启动盘进行设置,将生成的a.img拷贝至新建的虚拟机下进行设置

d.设置完成之后启动该操作系统,可以得到我们需要的打印结果如图所示

小结
1.主引导程序的代码量不能超过512字节
2.主引导程序需要使用汇编语言开发
3.主引导程序中可以通过BIOS中断使用硬件功能
4.主引导程序运行于实模式(地址都是实际的物理地址)

地址 程序 代码 操作系统 系统 二进制 数据 大小 字节 运行 汇编语言 位置 命令 字符 寄存器 语言 开发 两个 入口 关键 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 天津市网络安全警保卫 aix重启需要关闭数据库吗 浙江协云网络技术有限公司 青岛软件开发驻场代理公司 泰州小型网络技术价格查询 天津软件开发驻场哪家好 大同游戏软件开发 中国5g网络技术的公司 网络安全法一人一网 sql2008 数据库对比 孙老师服务器搭配视频 开放的网络安全么 翼猫科技是互联网吗 嵌入式式软件开发工程师 电子商务与网络安全 说课稿 商铺软件开发一般多少钱 孤岛惊魂3怎么取消服务器连接 5g网络技术带来的影响 如何同步服务器时间 湖北管理软件开发外包 电脑终端网络安全风险及措施 服务器搜索360就闪退 get调取json数据库 闵行区参考软件开发价格咨询 智能互联网高科技数学 北京萌宝网络技术有限公司 上海长亭科技网络安全工程师 全国教师信息网络技术培训 思迅系统如何连接数据库 济宁共享陪护床软件开发
0