I was reading this /. article http://bsd.slashdot.org/article.pl?sid=05/02/28/1230206&tid=190&tid=7/ and wanted to make a post, but it had been archived.
Anyway, I have recently been playing with Bochs on my new Debian PC. I was originally interested in
a way of running Windows applications on my linux machine. And had already had limited success with Wine. However the ability to emulate an entire machine is attractive. Especially since the Bochs project does such an amazing job of hardware emulation... It would be great to get an old version of linux or BSD running in it and actually start playing with OS code (kernel sabotage is what another /.er called it...).
Again I have digressed, the point is I have the latest version of Frenzy. And it does have a huge range of applications on the disk. Including an XServer. However, I have 3 machines at home (1 laptop, 1 store build PC with common midrange hardware - of its period, and 1 home built PC with high end hardware)... and I have not been able to get Frenzy to boot on any of these machines.
It did boot on Bochs. I couldn't get the XServer to start, but this was possibly because I hadn't compiled in VBE support to Bochs on the build I tried to start Frenzy with.
Now its possibly particularly obvious, but it struck me as odd that a large portion of the messages, informational, warning and error level are in Russian. As the Frenzy project is russian. However it does give you an option to use english at the start... I am not sure if this applies to all messages or just some? I have compiled in VBE now, so I should find out how the Xserver runs!
On a different topic, Bochs collects substantial abuse from people who think that it is possible for an emulator to emulate hardware and run just as quickly. Especially those MAC users who have been converted to MAC OSX (as opposed to the linux and BSD users who are attracted to the pretty colours running on a system they know and love). Many of these users expect Bochs (and variants of Bochs, based on Bochs, such as OpenOSX WinTel) to work at the same speed as the machine they are running.
Emulated speed being equivalent to hardware speed simply is not possible. However optimisations and forwarding of instructions are possible. And this is where running Bochs on a PC to emulate a PC is beneficial, as it is like most of the instructions can be forwarded to the host machine. Emulation of a PC on a PPC is going to make it difficult to do this.
However, when you limit the variation of the instructions you are going to handle, then you simplify this task greatly. For example, on a MAC OSX machine, it is likely that virtual PC doesn't pretend to be a PC... it would make much more sense to provide a native PPC library that supplies the API that a Microsoft Windows based application would expect if running in MS Windows on a PC. This way you don't need to emulate a hardware layer, all you need to do is supply an interface, which can be backed with native code. Similar to Wine. Of course Microsoft have simplified this further, as they have versions of virtual PC to match specific versions of windows.
I have actually got very respectable performance out of Bochs by enabliing the optimisations when I compiled my own version. I also enabled the X11 hack, so it didn't burn CPU cycles when it wasn't doing anything. However I wouldn't know how many of these optimisations would be of any use when you were running Bochs on a PPC machine?
Now I am keen to download PearPC and see what the performance is like running that on my Debian Linux box!
Please excuse the spelling, I studied computer science.