《30天自制操作系统》笔记1 --- 准备阶段

光盘中文翻译版:https://github.com/yourtion/30dayMakeOS.git

原版光盘(含iso文件):https://github.com/sky5454/30daysMakeOS-Origin-ISOfiles.git

原版光盘git版本:https://github.com/Tassandar/OSASK.git

  使用dd(Windows)刻盘及Fat知识:  30天自制操作系统-Hello OS

 

工具tolset目录

  • nask编译器, 把nas文件(作者的汇编源码)转为二进制的,用来把nas文件编译成二进制img文件。可能用翻译更贴切,不过说成编译也没有什么毛病。 路径/tolset/z_tools/nask.exe
  • imgtol.com      刻软盘工具

      用法\z_tools\imgtol.com w a: helloos.img

      现在软盘淘汰了,所以推荐把img写到移动储存设备,如u盘/sd卡

  • make.exe    读取并执行Makefile的GNU系列工具,能读取指定目录下的Makefile脚本。其参数与Makefile有关

 

 

 

img文件在qemu的启动脚本分析

 

目录 /01_day

  helloos.nas    汇编语言源码文件

  asm.bat  一个 调用nask把汇编转为二进制 的脚本,内容:

..\z_tools\nask.exe helloos.nas helloos.img

  

  install.bat   把img写到软盘a的脚本,内容:

..\z_tools\imgtol.com w a: helloos.img

 

  run.bat   运行img的脚本,内容及分析如下:

copy helloos.img ..\z_tools\qemu\fdimage0.bin
..\z_tools\
make.exe -C ../z_tools/qemu

把img复制到qemu目录下同时命名为fdimage0.bin

命令make -C指定目录,读取指定目录下的Makefile文件

 

 

所以,我们看一下Makefile文件(/z_tools/qemu/Makefile)内容吧

default :

 qemu-win.bat

 

没错他指导系统执行bat文件(/z_tools/qemu/qemu-win.bat),bat脚本内容

1 @set SDL_VIDEODRIVER=windib
2 @set QEMU_AUDIO_DRV=none
3 @set QEMU_AUDIO_LOG_TO_MONITOR=0
4 qemu.exe -L . -m 32 -localtime -std-vga -fda fdimage0.bin

// 设置三个环境变量,然后用qemu指定参数启动bin(原来的名字是img,这个bin内容和img一样)

 -L     指定BIOS和VGA BIOS所在目录,此处为当前目录

-m     指定容量,单位Mb,此处为32Mb

-localtime   使用localtime

-std-vga       模拟标准的VGA卡,带有Bochs VBE扩展

Standard VGA card with Bochs VBE extensions. If your guest OS supports the VESA 2.0 VBE extensions (e.g. Windows XP) and if you want to use high resolution modes (>= 1280x1024x16) then you should use this option.

      -fda <二进制文件>  指定二进制镜像文件作为软盘a加载

总结

fdimage0.bin就是helloos.img,改了名字而已,内容完全一样。

 

简洁步骤

先把汇编源码文件helloos.nas编译成二进制img,然后:

  • 真机启动只需要把img刻到u盘,然后从主板选择启动。
  • 虚拟qemu启动只需要声明环境变量,然后指定一些参数来启动img

 

注:真机刻盘启动,UltraISO-菜单:启动-写入硬盘映像…

 

 

虚拟UEFI环境:archlinux上安装QEMU+EFI BIOS

更多书籍:推荐邮电出版社的自制系列: https://book.douban.com/series/34137

 


 

posted @ 2019-05-26 14:19  蓝天上的云℡  阅读(3129)  评论(0编辑  收藏  举报