In addition, I want to adding threading to the CPU emulation and other components, so multiple processor machines will be needed in the near future. I currently have single processor x86 and SPARC machines, though faster versions of those are also greatly appreciated.
If you are a CPU, OS, or platform vendor, you may benefit
greatly by a port of dynamic translation to your product.
Your support will lead to much faster development time, to
get bochs running in high-performance mode on your product.
Q: Is bochs "freeware".
Not currently, bochs has a commercial license. Source
code is available via anonymous FTP. Bochs costs $25 for
use as-is. You have to negotiate a special license if you need
to link it to other software. The reasons for this? The first,
is that bochs is what I do for a living. Without the potential
to create revenue, I can not continue it's further development.
The second is that I have an inordinate amount of money and
time wrapped into bochs. In short, if you valuated all the
time and money I put into bochs, I passed 7 figures some time ago.
I'd love to stamp the GPL or other
public license on bochs. If one or more friendly companies
throw their financial backing behind bochs, I will.
Or perhaps I'll get the backing via licensing costs. The more
people contribute, the faster that will happen. Please don't
contact me with your philosophy about free software. Spend
the time contacting companies who benefit from the ability
to run legacy software on a new OS, and tell them about bochs.
Q: Who is the author of bochs?
Well, Kevin Lawton (myself) is the primary author
of bochs. There have been bug fixes, enhancements, and
code contributions from some few hundred people to date.
Support has been incredible! And it's growing. Without
it, I would have quit years ago.
Q: How do you pronounce "bochs"?
Phonetically the same as the English word "box". It's just
a play on the word "box", since techies like to call their
machines a "Linux box", "Windows box", ... Bochs emulates
a box inside a box.
Q: Tell me about peformance when running bochs?
Up to now, bochs has exclusively used interpreter
emulation technology; fetch in an instruction, decode,
then execute it. I am currently in the process of adding
dynamic translation, which allows for small x86 code sequences
to be translated into native CPU code sequences, on-the-fly.
This native code is cached, so it can be run any number of
times thereafter. There's an architecture neutral part
to the dynamic translation, and an architecture specific
part (back-end). There needs to be a back-end for each
platform bochs runs on. It's too early for me to comment
on performance using dynamic translation. But, I have tested
a few code sample, and I walked away with a smile on my face.
I'm hoping to release the framework for this in the next
release or two. It won't have many instructions translated,
but those will be added incrementally, and quickly, once the
framework is stable. The first backends will support
Linux/x86 and BeOS/x86. Probably SPARC after that. It
would be helpful if I could get a high-end PPC platform
loaner. Multiple CPU's would be wonderful, but not essential.
I'll need one for writing a back-end for it.
Also, I want to add threading to bochs. At some point, I want to
put certain parts (optionally) in their own thread. Also,
I believe with very careful lightweight thread communication,
it may be possible to thread the CPU emulation itself.
This idea was suggested on the developer's email list.
So, back to your question. If you need speed, wait for
dynamic translation. In interpreted mode, I get approximately
1.5MIPS using bochs on my 400Mhz PII Linux machine. In dynamic
translation mode, you will see a lag as bochs encounters
new code, then it'll get snappy and run at a much higher
rate than in interpreted mode.
Q: Does bochs use a disk partition to install the OS?
No. You use a disk image file, which is simply a large
file, like any other file, on your platform's disk.
Q: Why can't I use Bochs with my current Win95 installation?
Think about this. If you had two different PC's, they
would require different hardware drivers. So you may not
be able to safely move a disk drive with Win95 on it, from
one to the other. Bochs is no different. It emulates
a certain set of hardware devices, and requires each OS
be configured for those devices.
Q: Is there a developer's email list for bochs?
Yes. For instructions on joining, go to
Developers email-list.
Q: Is there an irc channel for bochs?
Not that I am aware of.
Q: Do you know of any snapshots of Bochs running Win95?
There are some on external project sites. Look at the
main bochs web page under "What is Bochs" or other topic.
I don't include any, because I'm trying to keep the web site
very low bandwidth.
Q: Does bochs support a CDROM?
Not yet. However you can use the "mtools" package on quite
a few platforms, to copy files from your CDROM to a disk image
file. Make sure to comply with all software copyright issues.
Q: Does bochs support a sound device?
Not yet. There are efforts in this area going on by
contributing authors. The emulation is of a Sound Blaster.
Q: Does bochs support a network card?
Not yet. There are also efforts in this area going on by
contributing authors. The emulation is of an NE2000 NIC,
and I'm told it's quite far along.
Q: What applications are known to run inside of bochs?
Well, lot's of different OS's run inside of bochs, so
thousands. I'm assuming your asking about Windows programs.
To give you a few, the following ones from the Winstone'98 tests
worked: