I've started working on this. The idea initially was to work with a debugger and let the OS run
almost natively. I found a better solution and it seems to be progressing nicely, just slowly.
I'm using DOSBox as the base system and I'm intending to write a simple firmware that any OS can call. The beauty is DOSBox already runs on many OS's so that all you need to do is patch the 0.74 source and compile it to suit your needs. It also includes an internal debugger.
The system I've hooked is the internal command BOOT so you can run your own OS with the command
Code:
dosbox -c "MOUNT /images/hdd500mb.img" -c "BOOT --firmware fd01.img fd02.img -l c"
The plan is to be able to create multiple firmwares that you compile into your standard DOSBox source code. You can then boot using
BOOT --coreboot or
BOOT --bios32 or
BOOT --myownfirmware and your OS will be loaded with the installed firmware. The firmware exists outside of the DOSBox memory leaving more memory inside DOSBox for your OS.
Your default (or included -conf) configuration file can still run any auto mounts using the autoexec section. Your OS will be able to access the real filesystem through the firmware, just not using read or write sector calls.
At the moment I've completed a service callback (an internal system call to run a C++ function), entering 32bit protected mode from the C++ firmware, and I'm working on the multiboot loader.
I'd like to know if someone else is interested in using this mod?
Does anyone have any input about the firmware to use/create?
And the format of the configuration file for loading kernels and modules?
For proof DOSBox is a good
start