Bochs x86 IA-32 Emulator 2.1 Released 216
Asmodeus writes "Just noticed that the 2.1 release of the Bochs IA-32 emulator is out at the Bochs home page
For those not in the know, Bochs is an open source implementation of the x86 instruction set(s) and a virtual PC (al la VMWare) which is capable of booting FreeDOS and Linux under the host control of another OS."
Bochs is not like VMWare (Score:5, Informative)
Bochs emulates the IA-32 instruction set and enables you to run IA-32 software on any sort of hardware that you can compile Bochs on. (eg. I once ran it on a MicroVAX at an incredibly slow speed)
VMWare requires IA-32 hardware. Most of the instructions are executed natively and only some of the priviledged operations are emulated so that whatever is run under VMWare can work as if it has full control over the CPU while in fact being an un-priviledged task.
Re:Bochs is not like VMWare (Score:2)
Heck, native code on a MicroVAX runs at an incredibly slow speed. An IA32 emulation must be positively glacial.
Re:Bochs is not like VMWare (Score:3, Insightful)
Bochs is an open source implementation of the x86 instruction set(s) and a virtual PC (al la VMWare) which is capable of booting FreeDOS and Linux under the host control of another OS.
You're just placing the parentheses wrong. Grammatically, this says that Bochs is two things:
Yeah (Score:3, Informative)
Re:Bochs is not like VMWare (Score:5, Insightful)
You completely missed the point of the post you replied to, didnt you?
While Bochs might provide the capabilities of VMWare at a performance cost, VMWare does not provide any of the capabilities of Bochs. One is a complete and portable implementation in software of an entire architecture, the other merely virtualises an architecture.
Yay. (Score:1)
Re:Yay. (Score:2, Informative)
Bochs is not your answer (Score:5, Insightful)
Many others have already posted this, but VMware != Bochs, because VMware uses virtulization to run a guest OS with minor overhead on a host system. Bochs, on the other hand, emulates everything, even if the host system is IA32, causing massive performance degredation. I see that your applications are rather large scale(3DSMAX and Adobe applications) - and probably would rely heavily on graphics adaptor and memory. Bochs is definately not your answer, as if you could even get it to work, it would be so incredibly slow that you'll forget why you were doing it in the first place before the program even loads (trust me, it has happened before).
Look to VMware to do things like this - it may have a fee attached, but its fast and capable, but not open source.
Re:Bochs is not your answer (Score:5, Interesting)
Re:Bochs is not your answer (Score:2)
Networking (Score:2)
Looks like it's starting up again... (Score:2)
Here's the new project page... [sourceforge.net]
Re:Looks like it's starting up again... (Score:3, Interesting)
capable of running serious OSes as well (Score:5, Informative)
Operating Systems inside the emulation including Linux, Windows(R) 95, DOS, and Windows(R) NT 4
It can also run Windows 2000 - and probably XP as well if product activation works.
Re:capable of running serious OSes as well (Score:5, Interesting)
Re:capable of running serious OSes as well (Score:5, Funny)
Re:capable of running serious OSes as well (Score:2)
'Nuff said.
Re:capable of running serious OSes as well (Score:2)
The mouse code sucks in Bochs though. If I ever get back to programming, I was going to change the bochs mouse layer to more of a "touch screen" style. Currently, you move the mouse and you see the mouse pointer CRAWL across the bochs virtual screen. Change a few key functions, and it would only detect where you click, move the mouse pointer in the bochs VM, i
Re:capable of running serious OSes as well (Score:2)
Re:capable of running serious OSes as well (Score:3, Informative)
Re:capable of running serious OSes as well (Score:2)
Besides, I think my alpha will only run up to winNT4, no win2k and definately not XP.
The FX32 software is available, but probably not on any official digital pages anymore.
There is also em86 for linux, which does something similar for running x86 linux binaries on alpha. I have it but haven't tried it.
As geeky as it is, I'm thinking of retiring it. I have a dual P2 that will run m
Re:capable of running serious OSes as well (Score:3, Interesting)
Let me think about this. Supposedly product activation does not reveal any personally identifiable information. Anyone could do an activation.
I suppose that Bochs emulates a given set of hardware. So it always looks like you have one motherboard. The emulated MAC address could be hardcoded, as long as Bochs also were to emulate a separate "masquerade" to the outside. When Bochs initializes a hard drive, it would assign a fixed
Re:But If you don't need the desktop... (Score:2)
wine only works on the x86 archetitures
So if you're on an non x86 architecture you could use wine running under linux runnong on bochs running on whatever OS on non x86 hardware. So you can save both the x86 hardware and OS cost.
Re:But If you don't need the desktop... (Score:2)
Bochs needs to be re-boxed. (Score:5, Interesting)
Could we not post "news" about things that came out an eon ago? Seriously... ROFL,,,,
----->
Bochs is kind-of OK. I use it regularly when I work on my exokernel project and it really IS A GREAT developing/debugging tool (especially if compiled with the GDB stubs
However, however, however... I wouldn't consider Bochs useful for anything other than hacking around with kernel/os stuff. Bochs needs a re-write from scratch and emulate a real standard PC motherboard - not an 80386 with i486, pentium, athlon, mmx, PCI, USB, ATA etc... hacks around it. PCI support is non-existent. Video is flakey - well you can get VESA-compliant > 800x600 if you physically change the source (easy). All emulated devices are ISA "bus"-based. Over the years stuff just kind-of gotten piled on, and on and on - with no sensible strucure. I am not talking out of my ass either - at some point in my life I felt that Bochs would be a great project to hack.
Re:Bochs needs to be re-boxed. (Score:2)
Re:Bochs needs to be re-boxed. (Score:5, Interesting)
Re:Bochs needs to be re-boxed. (Score:3, Informative)
Re:Bochs needs to be re-boxed. (Score:2)
Re:Bochs needs to be re-boxed. (Score:2)
Re:Bochs needs to be re-boxed. (Score:2)
Admittedly, a 12 MHz PC was pretty good in 1988...
Re:Bochs needs to be re-boxed. (Score:2, Interesting)
Re:Bochs needs to be re-boxed. (Score:2, Funny)
You sound like a volunteer (Score:2, Flamebait)
Bochs is painfuly slow (Score:5, Informative)
Re:Bochs is painfuly slow (Score:2)
The idea is very nice though, I just wish they could add (optional) VMWare/DOSEmu-like virtualization instead of emulating every single component of the system...
I really like the fact that I can do things like $ dosbox
Re:Bochs is painfuly slow (Score:2)
I just tried the recently released version 1.2.0 of DOSEmu and it seems to work WAY better than the 1.0.x-versions I had tried before... Now if they just add adlib-emulation so we can get some music and I'm happy!
Re:You're kidding right? (Score:2)
Re:Bochs is painfuly slow (Score:3, Interesting)
For those of us running OSX this is the only way to go as every single component is missing from my hardware! But yes, the thing that really sold me was the ease of use. I've spent many a merry hour trying to configure Bochs's config files only to have it find another obscure reason not to run. dosbox appears to be truly zero config!
One fun thing is that I have the saved st
Re:Bochs is painfuly slow (Score:2)
I had this complaint with dosbox too but I worked out its real CPU requirements based on what it's emulating and it's much higher than I first thought: VGA + 386 + peripherals + decent sound card like an Ultrasound adds up to a frigh
Re:Bochs is painfuly slow (Score:2)
BTW, frameskip of 4 is usually just too noticable for me.. If I have to use frameskip of more than 2 I consider the game unplayable, it's too annoying...
Re:Bochs is painfuly slow (Score:2)
Proof coming soon
Are we going to see your code in 0.62?
As soon as it works 100% - strange clipping bug when I run ImpulseTracker and some old DOS demos
Re:Bochs is painfuly slow (Score:2)
Uh, the biggest problem I've had with getting old games to run is making the VM *slow* enough, not fast enough...
Re:Bochs is painfuly slow (Score:2)
Speaking of emulation, OT like mad (Score:5, Insightful)
I know that in the past, the number of registers of the PPC was far in excess of the capabillities of the x86. Example: No PPC emulator yet exists, no matter what vaporware merchants have said in the past.
Finally, my one experience with Bochs was on BeOS. I couldn't figure it out. On the other hand, Virtual PC was easy as pie. Why doesn't Bochs copy the usabillity of Virtual PC --- the gui is neat and clean, plenty of options; throw open source in the mix and we could have a weiner. (And a real alternative to MS owned, newly activation-coded Virtual PC.)
I stopped upgrading when MS bought it. It was only fair.
Re:Speaking of emulation, OT like mad (Score:1, Interesting)
Re:Speaking of emulation, OT like mad (Score:2)
Completely unrelated. You could probably write a PowerPC emulator for a 386 if you wanted to. Extra registers may (or may not) make the emulator a bit faster, but that's all. If there's no PPC emulator yet, it's probably because nobody cared to write one.
Re:Speaking of emulation, OT like mad (Score:5, Interesting)
QEMU's not as mature as Bochs, but it's much faster, based on dynamic translation; you might think of it as a little more like a JIT compiler than an emulator. The other really interesting thing about QEMU is that in addition to a full-machine emulation mode, it can run Linux binaries from one architecture directly, translating the system call parameters as necessary. In theory at least you should be able to run binary-only x86 software -- or win32 programs on Wine -- on Linux-PPC for instance.
The main reason a PPC emulator doesn't exist (Score:5, Informative)
However, regardless, you can make an emulator. You can make an emulator in 100% C or Perl or Java if you like, and one that is portable to any platform. It needn't be anything low level. It'd be slow, but it'd work just fine.
Basically what it comes down to, is who wants a PPC emulator? I mean if you want a PPC system, get one. There are plenty available from IBM for reasonable prices. If it's Mac emulation you are looking at, well that's a problem. The Mac ROMs are not available outside of Mac hardware, nor is the OS, and without those, it is useless. So to run the emulator, someone would need a legit copy of the ROMs and OS, meaning they'd need to own a Mac. Well if you own the hardware an emulator is worthless.
x86 emulation on the Mac is of much more intrest. First off, it's actually feasable to do. PC BIOS is easy to license from a number of manufacturers, and MS is happy to sell copies of Windows, even for virtual machines. Also there are cases where you have a Mac and 99% of what you do is done natively but there is the ONE app that you need for something that is Windows only. So you get an emulator. Well the only Mac only apps I can think of are things like Final Cut Pro, which would run like shit in an emulator, so you'll have native hardware if you want to use it.
Re:The main reason a PPC emulator doesn't exist (Score:2, Informative)
I'd like to know which are not general purpose among the register son PPC. From the hardware point of view, register 0 is a bit special since it can't be used as a base register for addressing (and related instruction like effective address computation) but all the other are identical, i.e., the instruction set
Not really (Score:5, Informative)
It is a fact that they can. However that does not mean that it will be easy.
It'd be slow, but it'd work just fine.
This is exactly the problem: it would be slow. And up until a certain point, it's slow enough you might as well not do it at all. No, there's no commercial demand for PPC emulation on x86; there
doesn't really need to be. People write emulators just because they can. Do you think there is any "demand" for an emulator for the Amstrad CPC [emuunlim.com]? In the meantime, there's some hobbyist demand from people who are "curious" about OS X; there's the guarantee of instant infamy for anyone who succeeds. People have really tried, put a lot of effort into trying to, emulate the PPC on an x86. I've never seen anyone succeed. As it turns out, though, writing a PPC emulator that runs on the x86 just happens to be unbelievably difficult to do with anything even remotely approaching an acceptable speed of emulation due to the neatly mismatching design philosophies of the two instruction sets. Yeah, if there was a real commercial *NEED* for someone to emulate, an acceptable emulator could probably be created. But the issue is a little more complicated than "oh, no one wants it".
If it's Mac emulation you are looking at, well that's a problem. The Mac ROMs are not available outside of Mac hardware, nor is the OS, and without those, it is useless. So to run the emulator, someone would need a legit copy of the ROMs and OS, meaning they'd need to own a Mac. Well if you own the hardware an emulator is worthless.
Not only is this not the hard part, this is the part that has already been solved. Modern macintoshes no longer have anything significant in ROM. The ROM is just a tiny kickstart thing and the OS is booted entirely using the openly documented Open Firmware protocol. This part is a non-issue.
Since the internals of an apple machine aren't that public, virtualizing the hardware might be a little bit difficult.. but, well, not that difficult, as practically all of the work has already been done for you in the form of the mac-on-linux [maconlinux.org] project, a VMWare-like virtual machine for macintosh hardware that will let you boot OS X within a virtual machine on top of Linux. I am uncertain how much extra work needs to be done on top of that when emulating on the PC platform since I don't know what the internals of mac-on-linux look like. However, at the very least, the hardest and most voodoo-y part, actually getting it to boot, has already been done.
As far as the OS goes, you can buy a copy of the Mac OS without buying an actual mac. As in, you can go to a store and buy a copy of Mac OS X 10.3 in a box. This is not unrealistic; just because someone is emulating doesn't mean they aren't willing to actually buy the OS. Case in point, everyone who emulates Windows on the Mac does in fact actually have to buy a copy of Windows.
BTW, just out of curiousity, where are these PPC systems which you say are "available from IBM for reasonable prices"? I may just be going about it wrong, but I'm looking at IBM's website and the cheapest POWER-based system I can find is nearly $6000.
Re:Not really (Score:2)
if If x86 to PPC is slow, why is PPC to x86 fast? (Score:2)
Sooo...why does the PPC do a fair job of emulating an x86 then? I have VirtualPC on my 1.25 DP G4; it only uses ~60% [of *one* proc] when it's going full-tilt, yet it feels about as fast as my PIII-800 at my last job. Not screaming bleeding-edge fast, but perfectly
Re:if If x86 to PPC is slow, why is PPC to x86 fas (Score:2)
This is a vast oversimplification, but when you are emulating you want two things. First off, you want it to be easy to efficiently rephrase the source instruction set into the target instruction set. Second off, you want to be able to hold all the emulated registers in hardware reg
Re:if If x86 to PPC is slow, why is PPC to x86 fas (Score:2)
The PPC instruction set it pretty simple in comparison. It's easy to understand. It's easy to emulate.
Saying it's "hard" because it might be slow is all nice and good, but that's not hard. That's just slow. Actually writing a functional emulator is not (in comparison) hard. It's just kind o
Re:Not really (Score:2)
You can buy it, but just remember it isn't legal to *run* it on anything except Apple hardware.
Re:The main reason a PPC emulator doesn't exist (Score:3, Insightful)
Re:Speaking of emulation, OT like mad (Score:2)
PPC hasn't been emulated previously because there hasn't been any demand for it.
Re:Speaking of emulation, OT like mad (Score:5, Interesting)
Bochs is really a debugging tool for people writing their own OS. It's written to be accurate and portable, not fast or convenient. For those of us not writing our own operating systems, we're just not the target audience.
I've already extolled the virtues of QEMU [bellard.free.fr]'s interesting capabilities and much greater speed [bellard.free.fr]. It's also I think a little easier to use than Bochs. It's not point and click, but it's a little more UNIX-friendly: you can run it from the command line in a sane manner compared with trying to cobble together a cryptic configuration file for Bochs.
QEMU isn't perfect, though. While the latest release will run Windows 98, it may spontaneously crash during installation, etc, and so far only runs under Linux (though a Darwin port is in the works).
Re:Speaking of emulation, OT like mad (Score:2)
The Nintendo GameCube has a PPC CPU (Gecko, a modified G3). Currently there are two GC emulators. One called Dolphin and the other called Dolwin. Both are far away from being perfect, but both emulators emulate the CPU so well that some games boot.
I'm running MacOS 8.6 on my Athlon XP right now (Score:2)
If you want free VMWare check out Xen (Score:5, Interesting)
Xen has already been covered on slashdot [slashdot.org]
Re:If you want free VMWare check out Xen (Score:5, Interesting)
Re:If you want free VMWare check out Xen (Score:2, Informative)
Re:If you want free VMWare check out Xen (Score:2)
Re:If you want free VMWare check out Xen (Score:2)
Re:If you want free VMWare check out Xen (Score:2)
Re:If you want free VMWare check out Xen (Score:2)
Bochs is... (Score:5, Insightful)
Comment removed (Score:3, Informative)
Re:Windows 98 doesn't even work on it (Score:4, Interesting)
It took several hours for it just to install, so long that I went to bed while waiting for it to finish.. and when I woke up, the install stopped somewhere and needed me to click continue or something. Took several more hours after that to install, for a total of something like eight hours, if not more.
Once installed it ran EXTREMELY slow, and considering the OS X port of Bochs can't get online.. well, besides the fun of installing it, it's useless.
Re:Windows 98 doesn't even work on it (Score:2, Funny)
Re: (Score:2)
Check out qemu (Score:5, Interesting)
It's a young project, and it has a long way to go before it'll be a real alternative to VMWare for most people, but it's getting there pretty quickly - the recently released 0.5.2 can already run Windows 98.
Win98 on qemu (Score:4, Informative)
dd if=/dev/zero of=win98.img bs=1M count=1024
qemu -cdrom
However it gets that far, which is impressive. :) And while the performance isn't super in absolute terms, it runs much faster on an old Pentium II than I ever got Bochs to run on my 2 GHz Athlon. I'm expecting good things in the future...
Bochs vs. VMWare vs. Plex86 background (Score:5, Informative)
As many people pointed out, Bochs is an x86 emulator, rather than a virtualization system like VMWare. Emulation means that you have a representation of an x86 machine in memory, look at each instruction, and change the representation appropriately. Virtualization means the code runs on the actual CPU natively, and uses 386 ninja powers to intercept all I/O calls and reroute them to the base OS.
As a result, Bochs will run on any platform. VMWare will only run on x86. Bochs is slow enough to be useless for most common uses (a bit over a 100x hit in speed). VMWare has almost no hit in speed.
However, the free software community did have a project that attempted to reimplement VMWare. That project was called Plex86 (http://plex86.sourceforge.net/). For reasons that I do not know, Plex86 recently reinvented itself not to do full hardware virtualization -- rather, it does not implement the I/O layer, and instead provides special drivers for Linux to talk to its I/O layer. As a result, it can only run Linux (although it claims to run it reasonably well). They may implement drivers for other platforms, but I would be fairly sceptical of any real Windows support anytime soon. That seems a lot less useful now...
The Plex86 project, however, claims the possibility of using their virtualization technology in conjunction with Bochs to make a useable system: "There is the potential to use plex86 as an accelerator for bochs, as was demonstrated some time ago." (source: Plex86 FAQ). Likewise, it seems that if Bochs was more intelligently implemented, they could use just-in-time recompliation, a la Java or Transmeta, since they are effectively treating the x86 ISA as bytecode. That would be in the very, very distant future, but if either of these is implemented, the Bochs project is not as hopeless for end-user use as it may at first seem... Either or both of these technologies ought to give reasonable performance.
One problem is that VMWare is creating a patent minefield in front of Plex86 and Bochs. I am not familiar with all of the patents, but from what I've heard, they've got a pretty wide field of IP cut out. I'm not sure how hard they'll exploit it, since the people working there seem like nice guys, and understand the whole open/Linux/GNU/free/etc. thing. On the other hand, so did Caldera a few years back, and VMWare is definitely getting those patents for a reason....
One final point -- properly used, emulators like Bochs can provide amazingly powerful debugging tools. You can run a full x86 machine (admittedly at very slow speeds), but grab snapshots of the system memory at different points. You can then roll back, use a capture of all inputs to roll forward, etc.
Re:Bochs vs. VMWare vs. Plex86 background (Score:3, Informative)
1) Bochs & Plex86 are written by the same guy (well, the main developer of both is the same guy).
2) Plex86 used to be called FreeMWare.
Re:Bochs vs. VMWare vs. Plex86 background (Score:2, Interesting)
Re:Bochs vs. VMWare vs. Plex86 background (Score:2)
VMWare does not need to "emulate" the x86 (am I correct) the only thing it emulates is the hardware eg graphics cards etc. This is great for speed on x86 machines. But means that its not possible to port to ppc or other architectures without building an x86 emulation componont.
Is there an open-source PC emulator (not plex) that works in a similar way?
nick...
Virtualization... (Score:5, Informative)
Plex86 (and Xen, VMware, and Connectix, and Ensim, and others) are the things people should look at if they want fast virtualization of x86. The trouble all these technologies run into is that IO has to go through the "host" OS (the one actually running on the metal) - often popping into userspace to do it (read: context & ring switches --> slow!). This is necessary in order to allow multiple virtualized OS's to share the IO devices. This causes stuff that is IO intensive (games, compilers, databases, etc.) take a fairly serious performance hit. Interestingly enough, Intel is working on building this sort of capability in the chips directly - check out Vanderpool [linuxworld.com] for instance. I don't know if AMD is doing anything similar, anybody heard anything?
Re:Virtualization... (Score:2)
Vanderpool is vaporware for now; Intel hasn't described exactly what it is or how it works, so it's impossible to draw any intelligent conclusions about it.
what would be the limit ... (Score:3, Interesting)
Win98 on top of
VMWare on top of
Boch (or some other x86) on top of
OS/X, Linux, FreeBSD of top of
hehe, stupid, but might be fun to try if you got spare cpu power laying around... + plus you get to see what exactly VMware is doing to hardware (by looking a Bochs layer), or swap it around, and see what exactly Win98 is doing. Might be useful to find out all that hidden "functionality" in Windows for something like the Wine project. Just mouthing off here though...
XP on X-Box (Score:4, Funny)
(XP on Bochs on linux on xbox)
DOSEMU (Score:2, Informative)
I can confirm: Bochs is a major slowpocke (Score:2)
Aside from the fact that Win95 does a bazillion low level operations that all have to be emulated, Bochs itself really is _s_l_o_w_.
Other than checking for low level compliance with basic x86 stuff it's completely useless on a productive application usage level.
Then again, I have to say that Win95 actually *did* run. Err, make that crawl.
Boch CAN run Windows XP as a guest OS (Score:5, Informative)
Here are some screenshots and a howto [tripod.com]
Re:Boch CAN run Windows XP as a guest OS (Score:2)
Don't forget Dosbox (Score:3, Informative)
DosBox [sourceforge.net] is, of course, the other option.
Citrix (Score:2)
Meaning I could throw a window from a unix server running MS access to any unix box or windows box(with the added software).
Or am I missing something.
Re:Citrix (Score:2)
Re:WINE for OS X (Score:1, Informative)
Re:WINE for OS X (Score:1)
darWINE's planned x86 emulator (Score:3, Informative)
Of course either way it's speculation at this point.
Re:WINE for OS X (Score:1, Informative)
Re:Behind the times (Score:5, Funny)
Gotta love that blazing static instruction translation speed! Only a month or so to fire up a web browser and post a
Re:Behind the times (Score:5, Insightful)
Re:Behind the times (Score:3, Informative)
Re:we want 64-bit (Score:4, Interesting)
Regards,
Steve
sorry, forgot to include proof... (Score:4, Informative)
Regards,
Steve
Bochs DOES do 64-bit! (Score:5, Informative)
If you HAD bothered to go to the BOCHS site you would notice that it DOES do 64-bit emulation. More specifically, it emulates the AMD64 instruction set (aka x86-64). This is rather nifty in that it allows developers to test out code for AMD64 without having to purchase the hardware. Obviously not an ideal development platform, but it could be useful for some.