《30天自制操作系统》笔记(01)——hello bitzhuwei’s OS!【转】

本文涉及的产品
文件存储 NAS,50GB 3个月
简介: 转自:http://www.cnblogs.com/bitzhuwei/p/OS-in-30-days-01-hello-bitzhuwei-OS.html 阅读目录(Content) 最初的OS代码 虚拟机加载helloos.

转自:http://www.cnblogs.com/bitzhuwei/p/OS-in-30-days-01-hello-bitzhuwei-OS.html

《30天自制操作系统》笔记(01)——hello bitzhuwei's OS!

最初的OS代码

复制代码
 1 ; hello-os
 2 ; TAB=4  3  4 ORG 0x7c00 ; 指明程序的装载地址  5  6 ; 以下这段是标准FAT12格式软盘专用的代码  7  8 JMP entry  9  DB 0x90 10 DB "HELLOIPL" ; freeparam 启动区的名称可以是任意的字符串(8字节) 11 DW 512 ; 每个扇区(sector)的大小(必须为512字节) 12 DB 1 ; 簇(cluster)的大小(必须为1个扇区) 13 DW 1 ; FAT的起始位置(一般从第一个扇区开始) 14 DB 2 ; FAT的个数(必须为2) 15 DW 224 ; 根目录的大小(一般设成224项) 16 DW 2880 ; 该磁盘的大小(必须是2880扇区) 17 DB 0xf0 ; 磁盘的种类(必须是0xf0) 18 DW 9 ; FAT的长度(必须是9扇区) 19 DW 18 ; 1个磁道(track)有几个扇区(必须是18) 20 DW 2 ; 磁头数(必须是2) 21 DD 0 ; 不使用分区,必须是0 22 DD 2880 ; 重写一次磁盘大小 23 DB 0,0,0x29 ; 意义不明,固定 24 DD 0xffffffff ; (可能是)卷标号码 25 DB "HELLO-OS " ; freeparam 磁盘的名称(11字节) 26 DB "FAT12 " ; 磁盘格式名称(8字节) 27 RESB 18 ; 先空出18字节 28 29 ; 程序核心 30 31 entry: 32 MOV AX,0 ; 初始化寄存器 33 MOV SS,AX 34 MOV SP,0x7c00 35 MOV DS,AX 36 MOV ES,AX 37 38 MOV SI,msg 39 putloop: 40 MOV AL,[SI] 41 ADD SI,1 ; 给SI加1 42 CMP AL,0 43 JE fin 44 MOV AH,0x0e ; 显示一个文字 45 MOV BX,15 ; 指定字符颜色 46 INT 0x10 ; 调用显卡BIOS 47 JMP putloop 48 fin: 49 HLT ; 让CPU停止;等待指令 50 JMP fin ; 无限循环 51 52 msg: ; 信息显示部分 53 DB 0x0a, 0x0a ; 换行2次 54 DB "hello, bitzhuwei's OS!" ; freeparam 55 DB 0x0a ; 换行 56 DB 0 57 58 RESB 0x7dfe-$ ; 填写0x00,直到0x001fe 59 60  DB 0x55, 0xaa 61 62 ; 以下是启动区以外部分的输出 63 64 DB 0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 65 RESB 4600 66 DB 0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 67 RESB 1469432
复制代码

 

 

虚拟机加载helloos.img

下载(30天自制操作系统光盘.rar),解压。

将"OS\projects\01_day\helloos1"文件夹复制到"OS\tolset"文件夹下,如下图所示。

进入"OS\tolset\helloos1"文件夹,删除"helloos.nas"文件,然后将上表中的"02helloos.nas"内容保存到此处,并重命名为"helloos.nas"。(即更新helloos.nas文件的内容)

双击"!cons_9x.bat"(若后续操作失败,则双击"!cons_nt.bat"重试),在弹出的命令行窗口中输入"asm",回车;然后输如"run",回车。

之后你就可以看到QEMU这个虚拟机加载启动了(以helloos.nas为源代码生成的)helloos.img这个及其简单的操作系统,如下图所示。

真机加载helloos.img

刚刚是用虚拟机启动的helloos.img这个操作系统,下面介绍如何用物理机器加载启动之。

制作启动盘

首先,准备一个U盘,保证里面的数据你都不需要了。

然后,下载一个UltraISO软件。运行之,打开刚刚生成的helloos.img,如下图所示。

然后,使用菜单项"启动-写入硬盘映像…",如下图所示。

在弹出的窗口中,确定"硬盘驱动器"中选中的是你准备好的U盘,然后点击"写入"按钮,稍候即可,如下图所示。

真机启动

刻录成功了,就是说启动盘做好了。下面就重启电脑,然后选择从U盘启动,你就可以看到真机启动helloos.img了。除了一些细节不同外,和虚拟机加载helloos.img的情况基本一致。

总结

以后继续编写OS用虚拟机测试比较方便。

操作系统的hello world就算完成了。

 

 点此查看下一篇《30天自制操作系统》笔记(02)——导入C语言

如果您愿意花几块钱请我喝杯茶的话,可以用手机扫描下方的二维码,通过微信捐赠。我会努力写出更好的文章。
微信捐赠不显示捐赠者的个人信息,如需要,请注明您的联系方式(微信留言只显示10个汉字)
Thank you for your kindly donation!

【作者】 张昺华
【新浪微博】 张昺华--sky
【twitter】 @sky2030_
【facebook】 张昺华 zhangbinghua
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
目录
相关文章
|
20天前
|
前端开发 JavaScript 开发工具
【04】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-正确安装鸿蒙SDK-结构目录介绍-路由介绍-帧动画(ohos.animator)书写介绍-能够正常使用依赖库等-ArkUI基础组件介绍-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
【04】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-正确安装鸿蒙SDK-结构目录介绍-路由介绍-帧动画(ohos.animator)书写介绍-能够正常使用依赖库等-ArkUI基础组件介绍-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
101 5
【04】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-正确安装鸿蒙SDK-结构目录介绍-路由介绍-帧动画(ohos.animator)书写介绍-能够正常使用依赖库等-ArkUI基础组件介绍-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
|
21天前
云产品评测|操作系统智能助手OS Copilot新功能获奖名单公布!
云产品评测|操作系统智能助手OS Copilot新功能获奖名单公布!
125 2
|
23天前
|
存储 人工智能 编译器
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
50 10
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
|
23天前
|
JavaScript 编译器 开发工具
【02】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-项目开发实战-准备工具安装-编译器DevEco Studio安装-arkts编程语言认识-编译器devco-鸿蒙SDK安装-模拟器环境调试-hyper虚拟化开启-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
【02】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-项目开发实战-准备工具安装-编译器DevEco Studio安装-arkts编程语言认识-编译器devco-鸿蒙SDK安装-模拟器环境调试-hyper虚拟化开启-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
60 2
【02】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-项目开发实战-准备工具安装-编译器DevEco Studio安装-arkts编程语言认识-编译器devco-鸿蒙SDK安装-模拟器环境调试-hyper虚拟化开启-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
|
26天前
|
安全 前端开发 开发工具
【01】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-项目开发实战-优雅草卓伊凡拟开发一个一站式家政服务平台-前期筹备-暂定取名斑马家政软件系统-本项目前端开源-服务端采用优雅草蜻蜓Z系统-搭配ruoyi框架admin后台-全过程实战项目分享-从零开发到上线
【01】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-项目开发实战-优雅草卓伊凡拟开发一个一站式家政服务平台-前期筹备-暂定取名斑马家政软件系统-本项目前端开源-服务端采用优雅草蜻蜓Z系统-搭配ruoyi框架admin后台-全过程实战项目分享-从零开发到上线
68 5
【01】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-项目开发实战-优雅草卓伊凡拟开发一个一站式家政服务平台-前期筹备-暂定取名斑马家政软件系统-本项目前端开源-服务端采用优雅草蜻蜓Z系统-搭配ruoyi框架admin后台-全过程实战项目分享-从零开发到上线
|
27天前
|
缓存 运维 监控
Anolis OS深度集成运维利器 阿里云操作系统控制台上线
阿里云在百万服务器运维领域的丰富经验打造。
Anolis OS深度集成运维利器 阿里云操作系统控制台上线
|
1月前
|
运维 自然语言处理 Ubuntu
OS Copilot-操作系统智能助手-Linux新手小白的福音
OS Copilot 是阿里云推出的一款操作系统智能助手,专为Linux新手设计,支持自然语言问答、辅助命令执行和系统运维调优等功能。通过简单的命令行操作,用户可以快速获取所需信息并执行任务,极大提升了Linux系统的使用效率。安装步骤简单,只需在阿里云服务器上运行几条命令即可完成部署。使用过程中,OS Copilot不仅能帮助查找命令,还能处理文件和复杂场景,显著节省了查找资料的时间。体验中发现,部分输出格式和偶尔出现的英文提示有待优化,但整体非常实用,特别适合Linux初学者。
138 10
|
1月前
|
运维 前端开发 应用服务中间件
操作系统智能助手OS Copilot新功能
作为一名公司的研发人员,我体验了OS Copilot的安装与使用。尽管我的工作主要涉及前后端开发,对云服务有一定了解。OS Copilot的安装过程直观顺利,但目前支持的操作系统较少。通过-t和-f功能,可以快速测试命令输出、处理批量任务及调试脚本,显著提升了工作效率。然而,管道功能在实际应用中存在识别文件路径的问题,有待改进。总体而言,OS Copilot极大地提高了我的运维效率,并成为开发中的有效工具,我对它的未来潜力充满信心。
54 11
|
1月前
|
移动开发 运维 前端开发
操作系统智能助手OS Copilot新功能
我是一名公司前端开发人员,专注于官网和H5页面的开发,涵盖页面构建、交互逻辑及性能优化。主要负责静态和移动端页面开发,不直接涉及云资源运维,但在项目部署时会接触云服务器。 关于Copilot的使用体验:安装过程顺畅,目前功能较少,建议增加更多功能和中文支持。核心功能包括-t代理模式(实现黑客帝国代码瀑布效果但未达预期)、-f读取文件(生成随机字符接近目标但仍需改进)和管道功能(稳定性欠佳)。总体而言,-t/-f选项实用,管道功能需完善。
|
1月前
|
Shell 测试技术 UED
云产品评测|操作系统智能助手OS Copilot新功能
作为一名企业开发人员,我最近测试了 OS Copilot 的 -t、-f 功能及管道功能。-t 功能能正确识别并解释端口号,但界面操作需优化;-f 功能成功完成自定义任务,但在交互连续性上有待改进;管道功能表现最佳,支持简便的自定义任务操作。建议在 -t 功能中增加交互入口,并优化 -f 功能的后续操作体验。

热门文章

最新文章