"
I think OpenOSX.com is deliberately misleading potential customers
about what this product is and what its capabilities are. Mike, I
hope you can put this up on your web page so that people can get a
better idea of what's going on.
[Jeshua Lacock: I do believe that you may have jumped to some conclusions.]
To start off with, their product is really just a rebadging of Bochs.
Bochs is an open source x86 PC emulator which can be downloaded for
free from http://bochs.sourceforge.net.
[Jeshua Lacock: It is not "just a rebadging" . WinTel is our native Cocoa interface for
configuring and starting Bochs - that is what we are selling, along with
the inconvenience of a double-click installer and support.
Note that we have a link on our main WinTel product home page to
http://bochs.sourceforge.net.]
What OpenOSX.com adds is a pair of GUI utilities ("OpenOSX WinTel"
and "OpenOSX DiskXFer") for configuring Bochs and dealing with Bochs
disk images. They have also contributed a MacOS X CD-ROM driver to
the Bochs project. Bochs itself, and the MacOS X / Carbon port of
Bochs, are the work of other people, not OpenOSX.com.
[Jeshua Lacock: Besides the CD-ROM driver we developed, we also developed a patch for
the mouse.
No where do we attempt to make an attempt to claim that the Carbon port
of Bochs is our work.]
Although they avoid making specific claims, OpenOSX.com clearly wants
people to think this is a practical way to run operating systems like
Win95 or WinNT, and the applications which run on top of them. It is
not. Bochs is slow. I mean dog slow. Bochs does not have anything
like optimized emulation routines, much less processor-specific
optimizations such as AltiVec enhancement. Its emulator core is
straight C++, and from the way the Bochs developers are talking on
their mailing list, the C++ code isn't even very well optimized as
C++ code. (I'm extremely skeptical of OpenOSX.com's claim of G4
optimization. They would need to do massive rewrites of the Bochs
emulator core to optimize it for *anything*, much less the G4
specifically. I suspect that if pressed, they would admit that this
only means they turned on the C++ compiler's "optimize for G4"
option, which is basically meaningless and doesn't even imply use of
AltiVec.)
[Jeshua Lacock: Well, it is quite usable here, in my humble opinion. If I need to run a
Windows 95 or a Linux program, I can. I am satisfied with the layer of
compatibility it offers, and I would choice that over performance.
Yes, we enabled the AltiVec optimization at compile time, and it did
significantly improve performance in performance trials.
We are also developing AltiVec accelerated screen draws, and optimizing
the C++ code as much as possible.
BTW: Testing here shows it to be just a bit outperformed by Connectix's
commercial product Virtual PC 5.0 on a dual processor, 800mhz G4. ]
Anybody who wants to check out the performance of Bochs can easily do
so by downloading it from the Bochs homepage,
http://bochs.sourceforge.net . Currently, only version 1.2.1 is
available precompiled for MacOS X (OpenOSX is using 1.3p1). However,
for the purpose of performance evaluation, 1.2.1 should be about the
same. (The changelog shows no performance enhancements between 1.2.1
and 1.3.)
[Jeshua Lacock: Well, those binaries are not the same as ours, so I can not vouch that
they will perform the same.]
Bochs 1.2.1 comes with a disk image containing DLX Linux, a very old
text-only Linux distribution which uses Linux kernel version 1.3.89.
Even though Linux was a *very* lightweight OS at 1.3.89, Bochs runs
it *very* slowly on my dual processor G4-500. I think it's safe to
say that any version of Windows would be unbearably slow.
[Jeshua Lacock: Windows 95, DOS and Linux is functional and completely usable. I do not
claim that it is a speed demon, however. Nor would I / do I recommend it
for intensive gaming.]
The OpenOSX.com claim that
"Thanks to Mac OS X's advanced architecture, multiple G4 CPUs are
utilized and are emulated as a single powerful Pentium(R) processor."
is either an intentional lie or a serious misunderstanding of the
emulator they're rebadging. Aside from the fact that Bochs is a
single-threaded emulator and therefore uses exactly one CPU (*), it
is literally impossible to do what they claim. The idea that two
real processors can emulate one virtual CPU faster than one real
processor can do the same job is basically equivalent to the idea
that a person can drive twice as fast if they use two cars instead of
one. (**)
[Jeshua Lacock: Actually, our claim is accurate. This is an archtectual benfit of OS X
and G4 processors. For the most part, Mac OS X treats both CPUs as if
they were one, single threaded or muti-threaded processes alike benefit.
No where do we claim that, Apple does - however: it is clearly evident
that both processors are being used when running Bochs that is emulating
a single CPU.]
Finally, OpenOSX.com has a history of not dealing in good faith with
the open source community, which provides most of the software used
in their products. Please see
http://fink.sourceforge.net/pr/openosx.php for further details. I
encourage people to avoid patronizing them until they clean up their
act. (Besides which, by open source standards, their prices are
pretty stiff.)
[Jeshua Lacock: I appreciate your opinions, however I must disagree with you here.
We fully work with the community, and many leads of related open-source
projects have actually contacted us with emails of praise. We also
donate funds to many projects.
Further more, there was a posting on slashdot.org a few weeks ago with
the fink link that you provided. I read 182 postings on that site, and
99% of their spoken community was in agreement with my responses and in
disagreement with Mr. Pfisterer views and attitudes. The 1% that did not
agree, apparently failed to grasp the full situation.
We used Fink to download some tar balls for our Gimp CD. I also used
Microsoft Internet Expolorer, but Microsoft does not put up a fuss about
us not giving them "fair" credit. I also used a Macintosh that is based
on BSD, that receives its electricity from ....
In all fairness we have been working on adding Bochs to our Kudos page.]
(*)
Part of the Bochs documentation:
http://bochs.sourceforge.net/docs-html/smp-simulation.html
reveals that while Bochs can emulate a SMP x86 box, Bochs itself is
single threaded. By definition, a single threaded program uses only
one CPU.
(**)
Briefly put, the enemy of multiprocessing performance is
synchronization (that is, when one CPU must wait for another CPU to
finish doing something before it can proceed with its own work).
Good multiprocessor performance absolutely depends on finding work
which can be split up into asynchronous tasks such that each CPU can
work independently for long periods of time. Synchronization points
waste CPU cycles and incur costly interprocessor communication.
The job of emulating a single CPU is not something that can be split
into asynchronous tasks. Each and every emulated instruction alters
the virtual CPU's state (i.e., the values stored in its register
file, condition codes, program counter, etc.). The behavior of
subsequent instructions depends on that state, meaning that the
emulator would have to constantly synchronize each real processor's
idea of the virtual CPU's state.
With synchronization so common, the performance of a hypothetical
multithreaded CPU emulator would actually be *worse* than a
single-threaded CPU emulator, no matter how many real processors you could throw at the job.
The one thing that can be done is to emulate one virtual CPU on each
real CPU, using one thread per virtual CPU. The only synchronization
needed in this scenario is when the programs running on the virtual
CPUs need to synchronize (just as they would on a real SMP x86
computer). However, as mentioned above, even though Bochs can
emulate multiple virtual CPUs, they all run in a single thread on the
host system, which means they all run on a single CPU.
-- Tim Seufert"
The comments on OpenOSX's web site implies they are doing more than repackaging the Bochs code however - at least per this statement: