0
点赞
收藏
分享

微信扫一扫

30天自制操作系统 第一天


关注本人 一键三连, 私聊免费获得全部资料

文章目录

  • ​​关注本人 一键三连, 私聊免费获得全部资料​​
  • ​​<30天自制操作系统> 第一天​​

<30天自制操作系统> 第一天

上机环境: win10 + 虚拟机VMware

准备工作下载资料如下,PDF版课本和软件和自带的程序

30天自制操作系统 第一天_u盘


​​点此下载​

首先介绍一下文件和功能
(1) !cons_nt.bat
功能是打开命令行
(2) install.bat run.bat这两个文件其实相似
相当于运行在电脑上生成镜像文件helloos.img
然后在运行仿真

下面介绍一下实际操作
(1) 制作启动U盘
然后就是书上说的制作启动软盘,这里我参照下博主制作U盘启动,只需要将.img文件拷贝到U盘中就能在电脑中重启操作中打开刚做好的hello小系统

(2) 在虚拟机上面仿真.img系统镜像

现在虚拟机上面新建系统,选择空空win7

然后在win7中设置添加软盘启动,路径就选择刚刚生成好的.img文件

30天自制操作系统 第一天_u盘_02


30天自制操作系统 第一天_u盘_03


好了,现在我们开始正式学习相关程序:

helloos.nas文件
此时保存的是16进制,也就是最初的系统机器指令

运行asm.bat文件,将.nas文件通过nask.exe汇编软件转换为img镜像文件
…\z_tools\nask.exe helloos.nas helloos.img

接下来来看helloos.nas文件

; hello-os
; TAB=4 ;文本编辑器调整tab宽度
; 以下这段是标准的FAT12格式软盘专用代码
;FAT12格式----用Windows或者Dos格式化出来的软盘格式
;启动区----(boot sector)软盘第一个扇区成为启动区;PC读写软盘先将整个一个扇区读取,然后查看该扇区最后两个字节的内容,如果是55AA标识这个扇区就是启动程序
;IPL 启动程序加载器-----启动区只有512字节,成为IPL

; 以下这段是标准的FAT12格式软盘专用代码
DB 0xeb, 0x4e, 0x90
DB "HELLOIPL" ; 启动区名称可以是任意的字符串
DW 512 ; 每个扇区的大小必须是512
DB 1 ; 簇大小必须一个扇区
DW 1 ; FAT起始位置(一般为第一个扇区开始)
DB 2 ; FAT的个数
DW 224 ; 根目录大小
DW 2880 ; 磁盘大小
DB 0xf0 ; 硬盘种类
DW 9 ; FAT长度
DW 18 ; 一个磁道几个扇区
DW 2 ; 磁头数
DD 0 ; 不使用分区,必须是0
DD 2880 ; 重写一次磁盘大小
DB 0,0,0x29 ; 意义不明,固定写法
DD 0xffffffff ; 卷标号码
DB "HELLO-OS " ; 磁盘名称
DB "FAT12 " ; 磁盘格式名称
RESB 18 ; 先空出18个字节

; 程序主体

DB 0xb8, 0x00, 0x00, 0x8e, 0xd0, 0xbc, 0x00, 0x7c
DB 0x8e, 0xd8, 0x8e, 0xc0, 0xbe, 0x74, 0x7c, 0x8a
DB 0x04, 0x83, 0xc6, 0x01, 0x3c, 0x00, 0x74, 0x09
DB 0xb4, 0x0e, 0xbb, 0x0f, 0x00, 0xcd, 0x10, 0xeb
DB 0xee, 0xf4, 0xeb, 0xfd

; 信息显示部分

DB 0x0a, 0x0a ; 换行*2
DB "hello, world"
DB 0x0a ; 改行
DB 0

RESB 0x1fe-$ ; $符号是标识一个变量,告诉我们这一行现在的字节数

DB 0x55, 0xaa

; 以下是启动区以外的输出
DB 0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00
RESB 4600
DB 0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00
RESB 1469432

其实第一天没啥内容,主要是就是介绍一下基础知识;
同时通过bat工具将helloos.nas文件汇编成img,在通过run进行运行仿真


举报

相关推荐

0 条评论