Bochs 2.0 Released 284
Jas Sandys-Lumsdaine writes "Bochs 2.0 has just been released - project lead Bryce Denney writes: "It's been a busy 6 months since our previous release! Bochs is now about twice as fast as version 1.4.1. Also, we can now emulate MMX instructions, SSE/SSE2, and even AMD x86-64 instructions if you turn on the appropriate configure options. The emulation improvements have paid off; several people have been able to install Windows XP recently." Excellent stuff."
Boch vs. VMWare (Score:4, Interesting)
BeOS MHz (Score:2, Interesting)
I ran BeOS Max 2.1 on it, even though it hangs before running to completion. (As well as regular BeOS, so it's not the known AMD XP / Pentium 4 CPU bug.)
The debugging console reports Bochs running as 13MHz. My machine is 1GHz. Still, it's speedier than older versions.
I am still waiting to be able to run BeOS on it.
What does it do? (Score:2, Interesting)
I need Windows on Linux.... (Score:3, Interesting)
So many choices, but I really don't have time to try everything out. Mainly I care about compatibility over performance. $250 won't break the bank, but free is better of course. I need to run a few simple apps like UPS shipping software, but also a bunch of specialty stuff where hardware compatilibty might be hard and the apps aren't likely to have been thoroughly tested already (OrCAD, Microchip MPLAB, Xilinx WebPack, stuff like that). I could give a flying sh*t about games, but I suspect that's mostly what people want these for.
Could anyone with experience using several of these emulators shed some light? It'd be really nice if the authors would provide some compatiblity/performance/stability matrices for popular apps, to help us choose.
Re:Anything would be faster... (Score:4, Interesting)
Re:Just curious... (Score:1, Interesting)
Re:I need Windows on Linux.... (Score:3, Interesting)
Possible for transparent x86 emulation on Linux? (Score:3, Interesting)
Anyone look at the possibility of incorporating such emulation into the Linux kernel? It would be a enormous boost for acceptance of Linux on non-X86 platforms.
Comment removed (Score:2, Interesting)
Re:I need Windows on Linux.... (Score:1, Interesting)
Re:Possible for transparent x86 emulation on Linux (Score:2, Interesting)
You can run x86-16 applications on x86-32 CPUs,
and you can run ELKS (Linux/8086) applications
inside GNU/Linux/x86-32 (Linux/80386).
Plus, x86 is a darn complicated architecture,
think of all the legacy parts.
This is why emulation writers have such a hard
job. Even coders of projects such as Wine or
the BSD Linuxulation (those are no emulation,
but just a transfer layer) have a hard time to
code, because most of the stuff is barely docu-
mented, if at all.
Again a problem is, the hardware basics books were
written in the late 80es or early 90es, and they
aren't available for sale usually any more (I tried
to get a BIOS book from Microsoft Press here in
Germany, but they couldn't even order it from the
USA, and that was about three or four years ago!).
If you actually have interest, I think the projects
(bochs, plex86, wine) have fora and newsgroups,
or at least irc channels (the webpage is a good
start; most free projects sit at irc.freenode.net)
Re:Trade off ? (Score:2, Interesting)
Result--> massively quick win98 install booting automatically into Photoshop...Almost like one (slightly overweight) application... at least that seems like it would be the slickest way to do it... Last time I checked, photoshop didn't run too great under wine, and the 98lite bare bones install could cut stuff down to about 40 megs...
So what happened to plex86? (Score:4, Interesting)
Re:Anything would be faster... (Score:3, Interesting)
I'll tell you what Bochs is good for (Score:2, Interesting)
True, SoftICE is much faster and has better debugging features. But Windows developers aren't stupid -- if they really don't want you stepping through their code, the program can either disable SoftICE, or detect its presence and refuse to run.
That's the advantage of Bochs: It's undetectable. Slow execution won't give it away, because the real-time clock is as fake as all the other Bochs hardware. It's like hardware ICE without the $40,000 price tag.
Also, because Bochs is open-source, you can put in useful hacks like "Copy this big chunk of memory from the virtual computer to a file on the real computer every time this line is executed".
Re:here it is: (Score:2, Interesting)
However, PC I/O is (always??) memory-mapped. The processor writes commands to certain places in memory to cause things to happen. VMWare virtualizes this process; it uses the memory management unit to trap attempts to write to I/O devices on virtual machines. It then figures out what the virtualized program is trying to do, and does the actual correct thing with the real hardware. If the virtual machine is trying to write to disk, for instance, VMWare emulates the responses that the real hardware would make, but actually writes to or reads from a file on the host machine's filesystem.
Apparently this trickery runs at a lower level than the operating system, because you can run just about any OS that's out.
You notice this overhead the most on video and hard disk writes. Both video and disk I/O are *a lot* slower under VMWare. Network operations, however, aren't very affected; they run at nearly full speed. You can run most server-type applications very nicely under VMWare, unless they are extremely disk-intensive. You wouldn't want to run a database, but Apache runs great.
Games are pretty much a loss in VMWare; the video virtualization is simply too slow. Solitaire is fine. Quake would be a slideshow, if it ran at all.
To help avoid the disk I/O bottleneck, VMWare has the ability to assign a 'raw disk' to a virtual machine. This would probably be a lot faster, but I haven't worked with it. There are also versions of VMWare that are designed to entirely replace the host operating system. I imagine that they are much more efficient, but haven't worked with them either. (they cost thousands, not just hundreds.)
Bochs, on the other hand, emulates EVERYTHING, including the CPU. This full virtualization allows the emulation to run on any processor, but it's A LOT slower than a real CPU (which is essentially a highly-tuned hardware emulator of the X86 instruction set.) The X86 is devilishly hard to emulate properly, because of all the different instruction layers (8086, 80286, 80386, 80486, 80586, 80686). You have to spend a lot of CPU time figuring out what each instruction is: is it 8-bit, 16-bit, 32-bit, MMX, or SSE? You can't take the same kind of easy shortcuts you can with cleaner instruction sets. Decoding takes a long time and a lot of host processor cycles, so you take an enormous speed hit.
On top of that, you ALSO have to virtualize the video, I/O, and network, so you get all the overhead of VMWare, above and beyond the CPU emulation bottleneck. You probably couldn't run a realistic server of ANY sort under Bochs.