30天自制操作系统笔记(一)
前三天笔记
非基础笔记,主要梳理架构,针对一些不熟悉的知识做些记录。
目录结构
- ipl10.nas (bootloader,用于加载软盘,跳转到OS)
- asmhead.nas(16位模式下的功能定制 + 32模式切换工作)
- bootpack.c(32模式下C语言开发)
- naskfunc.nas(C语言无法实现借助汇编实现的功能)
- !cons.bat(windows下cmd.exe)
- Makefile(文件生成规则+命令)
- make.bat(windows下make.exe)
bootpack.c到机器代码
- 编译:bootpack.c(C语言)→ bootpack.obj(目标文件)
- 链接:bootpack.obj(目标文件)→ bootpack.bim(二进制映像文件)
- OS适配:bootpack.bim(二进制映像文件)→ bootpack.hrb(完整机器语言)
Tip1:基本过程上述已经说明,如果希望改变1中的生成目标文件的规则(如将RESB预留位置赋值为0),就需要额外的工作:
1.1. C语言编译器编译:bootpack.c(C语言)→ bootpack.gas (编译)
1.2. gas2nask:bootpack.gas → bootpack.nas(将汇编语言变换成nask能翻译的语言)
1.3. nask:bootpack.nas → bootpack.obj(使用自制的nask工具完成自定义规则)
Tip2:如果想使用上述可执行程序,确保已经切换到32位模式,asmhead.nas完成此工作,进而可以得到haribote.sys