Bochs 2.0 Released
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."
from the link inside the article Welcome to the Bochs IA-32 Emulator Project Bochs is a highly portable open source IA-32 (x86) PC emulator written in C++, that runs on most popular platforms. It includes emulation of the Intel x86 CPU, common I/O devices, and a custom BIOS. Currently, bochs can be compiled to emulate a 386, 486 or Pentium CPU. Bochs is capable of running most Operating Systems inside the emulation including Linux, Windows® 95, DOS, and recently Windows® NT 4. Bochs was written by Kevin Lawton and is currently maintained by this project. Bochs can be compiled and used in a variety of modes, some which are still in development. The 'typical' use of bochs is to provide complete x86 PC emulation, including the x86 processor, hardware devices, and memory. This allows you to run OS's and software within the emulator on your workstation, much like you have a machine inside of a machine. For instance, let's say your workstation is a Unix/X11 workstation, but you want to run Win'95 applications. Bochs will allow you to run Win 95 and associated software on your Unix/X11 workstation, displaying a window on your workstation, simulating a monitor on a PC. "
Bochs is a highly portable open source IA-32 (x86) PC emulator written in C++, that runs on most popular platforms. It includes emulation of the Intel x86 CPU, common I/O devices, and a custom BIOS. Currently, bochs can be compiled to emulate a 386, 486 or Pentium CPU. Bochs is capable of running most Operating Systems inside the emulation including Linux, Windows® 95, DOS, and recently Windows® NT 4. Bochs was written by Kevin Lawton and is currently maintained by this project.
I tried using Bochs 1.4.1 to play some old DOS games (since VMware doesn't support SoundBlaster Live! for whatever reason), and it was so slow that my type "md games" took several seconds! With a bit of tweaking, I was able to get it decently working, but games would be horrendously slow... "Jones in the Fast Lane" was so slow, I almost screamed! (Of course, then it froze, but oh well...) My point: anything would be faster than what it was... Anyone have any experience with it yet?
(My system isn't a super one, but 800mhz/512megs of RAM should be enough to play DOS games)...
Does anyone one know which one of them is faster, or let's just say better?
keep it simple.
If you go to the sourceforge download page, located here, it has links to all of the 2.0 final downloads. Have fun killing the servers... I already got my copy. :)
...is some idiot to try to run Windows apps inside WINE running in Bochs under VMWare.
And don't tell me you didn't all think the same thing as soon as you found out what Bochs was.
Ho! Haha! Guard! Turn! Parry! Dodge! Spin! Ha! Thrust!
Dude(ette?),
Maybe you should upgrade to 2.0 and test it out again. I think your case would be a valuable pice of information.
comment directly in my journal
I know I already posted something similar, but only 2.0pre4 is available on their site. I used it, and it was only a smidgen faster than 1.4.1 - other nice goodies, of course, not still not powerful (speed wise) enough to do anything useful (games, larger software, etc.) I can't wait until it speeds up, though, since it seems to work better than VMware for me... (no pretty GUI though)
(rant)
To Slashdot Editors: CLICK THE FREAKING LINKS. I'm getting really, really sick of all these false stories. I swear, although it's only a joke right now, the fact that people can't trust Slashdot is becoming a real issue...
It emulates x86 PC hardware. So you can run e.g. Windows 9x inside any OS+hardware where Bocks runs.
Escher was the first MC and Giger invented the HR department.
But I have to admit I'm not all that well read on the state-of-the art in emulation. I know that Wine is like a clone of Windows running natively on Unix, so it's fast. Bochs is a full-blown, platform independent emulator, so it's compatible but slow. Vmware is X86 only, so it's faster, right?
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.
One thing Linux on non-x86 platforms lacks is transparent X86 emulation, like on the Macintosh with its transparent 68K emulation, you click on a 68K app and it just works. I should be able to run a X86 ELF image on a non-X86 Linux box and have it just WORK! The Bochs approach is not the best way, since it's a virtual machine and emulates everything. A better way would be for X86 emulation only when needed, such as the application program code itself (syscalls continue to use the native library)
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.
There's 10 types of people in this world, those who understand binary and those who don't.
It'd be nice if they'd have updated their webpage to say so.
NO CARRIER
Is BOCHS smart enough to let the host machine run the non-privledged instructions if the host happens to be an x86 chip?
No, Bochs is a pure interpreter. A less mature project that attempts to do this is Plex86, and a commercial alternative is VMWare.
#define sig "Every social system runs on the people's belief in it."
No, it IMPLEMENTS the Win32 API.
How the hell do you emulate an API?
Either you provide the functions or you dont
The difference is, an emulator emulates actual hardware in software, Wine runs directly on the hardware, and just implements win32 so that Windows programs can run.
Wine -> Implements Win32 API on Linux, all code run directly on hardware - requires x86 machine to run it on. Due to the Win32 API being badly documented, tends to have compatibility problems.
VMWare -> virualizes the hardware, ie. creates a whole new virtual x86 machine in which code runs directly on the hardware. Some things emulated due to being impossible or difficult to share between the host and guest operating system. Requires x86 machine to run it on, but is generally very compatible, and allows you to install (in theory) any x86 operating system.
Bochs -> Complete emulation of every aspect of an x86 machine, all code running within a Bochs machine is interpreted by software. Will be very slow, but can run on many different platforms and processors, and should be pretty much as compatible as VMWare. Will allow installing any x86 operating system.
Flex86 -> An open source VMWare clone, shares some code with Bochs, will have all the advantages of VMWare, and has source too. Still in development though....
Advanced users are users too!
Just build layer after layer of virtualization like that (Bochs running Windows VMWare in WINE on VirtualPC in a Mac emulator on Linux on VMWare on Bochs etc...) and eventually you'll have enough virtualization that you can pull the original hardware out from under it all, and your "virtual PC" will just run on it's own without hardware. The trick is just getting enough layers of software in their so that they all support eachother's hardware needs.
Yeah, booting off that CD is pretty tough.
Last time, I had to like... select a computer name and everything! I was exhausted!
Err.. The myth of 'Windows is Easy to Install' must be crushed.
Let me illuminate the joys of installing Windows 2000 server.
Boot of of CD-Rom
Wait for drivers to load ~ 5 min
Partition Drive
Reboot
Wait for drivers to load ~ 5 min
Format Drive
Reboot
Wait for drivers to load ~ 5 min
Choose crap
Wait for Windows to install ~ 10 min
Reboot
Copy cryptic crap off of security sticker
Choose password
Reboot
turn off 'helpfull' how to use windoes help thingy
move home-page off of MSN
install SP3 ~ 15 min
reboot
install ie6 ~ 10 min
reboot
move home-page off MSN again.
install 'critical updates' ~ 10 min
reboot
install office ~ 5 min
install office updates ~ 10 min
install office critical updates ~5 min
install antivirus ~ 5 min
Ugh
Moneyed corporations, non-working 'poor' and criminal prisoners are turning productive citizens into tax-slaves.
1.5MIPS seems awfully slow to me....like orders of magnitude slower than it should be. VirtualPC - a commerical product that emulates a PC - runs somewhere around the speed of a 233Mhz PII on my crufty old Powermac, which rockets along at 450Mhz. VPC provides full emulation of a PC the way Bochs does, but it's ~200x faster. That's an awfully big difference. What accounts for that difference? Is there any chance that Bochs will close the gap sometime soon? I'd much rather use a free product than VPC, but with a performance gap like that it's tough to justify...
www.plex86.org sends a 404. And plex86's Savannah project page doesn't show much sign of activity. Is it moribund? Dead? How did it compare with vmware at its last sign of life?
I love all these questions about "speed". If you want speed, use VMWare. Bochs EMULATES an 80x86, pure software, no hardware involved.
So why would you want to use it?
Personally, I use it mostly to run old DOS games. Games that won't run at all under Windows (you could insert "Linux" there just as well, or "OS X", or "HP-UX", or whatever you run on reasonably modern equipment). Games that run waaaaay too fast. Games that "don'y play well with others" and you wish you could have stuck in on its own machine even when you really *did* run DOS just to keep it from breaking other programs.
It makes a GREAT debugging tool, for those who know how to write low-level code. As long as your problem doesn't involve instruction timing or asynchronous events, Bochs works almost as well as a VERY expensive ICE.
Another nice use, I already mentioned partially, you can put a program in it's own "clean room". Ever wanted to see how some of the classic virii worked but didn't have the balls to risk your own machine? Put it in a Bochs and let it do its thing.
Additionally, IMO, the speed (as of 1.4, and they claim twice the performance for 2.0) suffices for any CPU or graphics non-intensive task under Windows 95 OSR2, with FAR better compatibility than Wine (Not to disparage Wine, a great and worthy poject, but you just can't beat the real thing for accuracy of emulation )
The one "bad" thing about Bochs, and I hope a developer for it reads this, you need to manually calibrate the IPS, and then everything else *relative* to that value. Although I understand why getting an *exact* value counts as an almost impossible feat, I don't see why a simple few-second internal benchmark at startup couldn't come to within 10% of the "right" value. Admittedly, though, I haven't played with 2.0 (away from home for a few days), so if you've added that for this release, my apologies (and thanks).
What would a 386, 486 or pentium with windows and a NIC cost nowadays? Up to $50? It would still execute those old x86 apps and games fastre and probably more reliably... This sounds like a university research project. Useless but cool.
Let me illuminate the joys of installing Redhat Linux 7.3 (the last distro I installed):
Boot of of CD-Rom
Read several F(number) pages of information and decide which boot option is right for me ~ 5 min
Curse at a system that does not let my set my keyboard mapping to dvorak before forcing me to enter textual data ~ frustration +1
Wait for anaconda et all to load ~ 2 min
Select my keyboard mapping and mouse type (*)
Get to the partition screen and find out that the installer doesn't dynamically resize windows partitions to make room for itself. ~ frustration +2
Reboot
Warez partition magic
Use partition magic ~ 30 min
Reboot
Repeat above steps until the partition screen comes up.
Set up mount points and a swap partition because the system won't configure available space in a sane way automatically ~ frustration +3
Fsck & mkfs ~ 2 min
Choose 'custom' from the workstation/server/custom menu, and select package groups that I think I'll need.
Select "choose individual packages".
Realize that package management systems under linux don't descriminate between packages that users may or may not want to include (konqueror) and packages that are mandatory and must always be installed without bothering the user and making him/her read up on them (glibc) and should only be exposed as options when the user selects "ultra-expert" install mode ~ frustration +4, 5 min (to find the things I need [luckily I know what they are] )
Realize that standard desktop OS functionality requires a default install greater than 1 GB ~ 2 seconds, frustration +5
Wait for packages to install ~ 55 min
Install grub
Reboot
Enter install program because I didn't remove the CD and the CD boot loader isn't smart enough to present me with a "Press any key to boot from CD...." timeout option which boots from the hard disk if the OS is already installed ~ frustration +5
Remove CD
Reboot
Realize that even though linux has reached version 2.4 and redhat's distro has been around for so many years, no one has ever considered that long, fast-scrolling startup text barfed out by the kernel scares away users who "can't read the error messages fast enough to keep up" and instead replaced them with a progress bar by default, while still making advanced startup an option ~ frustration +6
Realize something similar while watching the init scripts ~ frustration +7
Appreciate that X just works and that I can log in graphically and that I don't have to configure anything in order to get to that point ~ frustration +6
Remember that windows has been this way for a very long time ~ frustration +7
Log in
Click the little red exclamation point, and read an error message that says I have to be registered in order to get automatic security updates ~ frustration +8
Remember that not even windows is that persnickety about giving out security patches ~ frustration +9
Remember that windows requires you to accept an agreement giving MS total access to your computer in order to patch critical security flaws ~ frustration +8
Register for rhn ~ 10 min
Change home page from redhat to my usual home page.
Be thankful that multiple reboots aren't necessary while downloading software updates ~ frustration +7, 2 hours
Download openoffice because it's been neglected in favor of inferior, splintered, buggy, incompatible individual office programs which were installed even thought I didn't want them.
Be forced to open a console, untar, find the setup file, and run it in order to install an office program because there is still no single, unified package management system for linux which results in confused users and puts extra strain on developers who package their own software by forcing them to either neglect certain distros, learn and use all of the major packaging systems, or write their own setup programs ~ frustration +8
Make an educated guess that even if package management system developers could put aside their egos, develop a decent universal package system, and get every distro to use it that it would still force me to use the console ~ frustration +9
Try to launch openoffice and find out that it crashes ~frustration +10
Read man pages, docs, visit IRC help chat, etc... ~ 2 hours, frustration +11
Give up for now, get a snack ~ 10 min, frustration +10
Realize the reason why the interface feels so uncomfortable: my wheel mouse doesn't work ~ frustration +11
Read up on XF86Config, hit IRC again, man pages, man pages, man pages galore ~ 30 min, frustration +12
Figure out how to turn on mouse wheel suuport ~ frustration +11
Be forced to edit a text config file in order to get a very basic feature to work that would be easy to autodetect and autoconfigure in the install program ~ frustration +12
Go through an incredibly long series of steps that I won't list here with lots of downloading, compiling (!), manual reading, IRCing, etc... to get 3D acceleration to work ~ 7 hours, frustration +15
Reinstall windows 2000 professional (it's a dual boot system), (it needed to be done anyway) ~ a whole lot less time, very little trouble.
Click "I Agree" for the first time after turning 18 ~ 1 second, freedom -<rotate clockwise="90 degrees">8</rotate>
Realize that gnu/linux will never take off as a mainstream desktop OS as long as it is hard to install, presents scary "informative" messages, forces the user to learn the console, has a default install that's more bloated than windows (yeah, really), and so on..., and that as long as windows remains the desktop OS of choice everyone loses, including gnu/linux users ~ frustration +<rotate clockwise="90 degrees">8</rotate>
Post on slashdot about my experience ~ -3 karma (I post at +2, slashbots who don't like to hear jaded but honest criticism of OSS can get it down to -1)
Sigh in despair ~ no net change