三个进程切换,完全均匀调度。
use apt
sudo apt install bochs
sudo apt install bochs-x
make run
在bochs的shell中,输入 c
。
make
make boot.com
- 使用任意方法通过dos执行
mac上执行
# bochs加载rom依赖的相对路径,所以需要修改执行的base。
ssh -X user@ip "cd /path/to/eos/ && bochs -f ./boot.bxrc"
- no bootable device 就是生成的镜像里面 没有符合约定的将510处置为0xaa55
- mount failed unknown error
我使用的是win10的ubuntu子系统 16.04,生成的img没法成功挂载。没能解决,我通过使用 dosbox 来模拟了dos环境,直接运行了生成的com, 效果拔群。dosbox不支持中断15h 来读取内存 我通过租的服务器来实现了挂载写入,最后还是用了bochs。
- ld: i386 架构于输入文件 kernel/kernel.o 与 i386:x86-64 输出不兼容 64-bit的gcc会导致格式问题,在gcc的编译选项中添加
-m32
解决 - 对‘__stack_chk_fail’未定义的引用 原因未知, 解决方案是gcc编译选项中添加
-fno-stack-protector
解决 (强制忽略堆栈保护检查)?
在处理回车的逻辑中没有保护bl,如果使用堆栈保护了ebx之后问题消除