Saturday, May 30, 2020

Experiment: HelenOS in DOSBox

A while back I tried running HelenOS is DOSBox. This may sound strange, but DOSBox is a full machine (CPU + peripherals) emulator and a DOS emulator *in addition*. It fully emulates i386 protected mode by necessity, since many DOS protected mode software simply switches the CPU to protected mode instead of relying on DPMI. You can run Windows 3.1 in DOSBox just fine. Therefore there seems to be no reason why HelenOS compiled for 486-class or similar CPU could not run in DOSBox.

How to boot it? DOSBox cannot boot from CD-ROM, but it can boot an OS from a hard disk image. So I installed HelenOS IA-32 using sysinst to a hard disk image and then tried booting it in DOSBox. However, the boot failed very early in GRUB, even before the minimal command line (I think it printed 'GR' or something, I might not remember correctly). Too bad we don't have other boot methods available for x86.

I see two options how to proceed. Either try to diagnose why GRUB fails (might require instrumenting DOSBox as I don't believe it has extensive debugging facilities) with the hope of making it work (might not be easy). The other option is to use another boot method. The optimal boot method for DOSBox might be to 'chain-load' HelenOS from DOS, i.e. have a DOS application that loads HelenOS .. kind of like Windows gets loaded from DOS.

But why would anyone want to run HelenOS in DOSBox, I hear you ask? Well, apart from it being pretty darn cool, DOSBox can emulate some HW that Qemu can't such as some old sound and video cards, MIDI, etc.

Hopefully I can get back to this experiment one day.

No comments:

Post a Comment