Slashdot Mirror


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."

36 of 278 comments (clear)

  1. what a click can do by Slashdotess · · Score: 3, Informative

    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. "

  2. Would it have been so hard to say... by Anonymous Coward · · Score: 5, Informative

    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.

    1. Re:Would it have been so hard to say... by Tim+Browse · · Score: 4, Insightful

      Not really - it is entirely appropriate for this comment to be modded to +5, Informative.

      The reason? As usual, the article submission assumes basic telepathy on the part of the reader, and doesn't explain what Bochs is (although it gives a few hints - more than we usually get).

      So you go to the page, think "what is Bochs?", and if you have comments ordered by score, then bingo - the first message is telling you what Bochs is, because the submission didn't. Who cares if it's lifted - it's just information that people needed.

      This is a good application of moderation, imho - if you're carefully writing thoughtful posts just so you can score some karma, then I think you may have missed the point of moderation (and karma).

      It's kind of like buying a raffle ticket from a charity because you think you'll probably win. It's a nice side effect, but it's not the point of the exercise.

      Tim

  3. Anything would be faster... by Hadean · · Score: 3, Informative

    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)...

    1. Re:Anything would be faster... by Hadean · · Score: 3, Informative

      Er wait, it's still 1.4.1 on their site... 2.0pre4 only. Who said it was released?

    2. Re:Anything would be faster... by Hadean · · Score: 3, Informative

      Cause I don't use Linux?

    3. Re:Anything would be faster... by reynaert · · Score: 4, Interesting

      If you just want to play old DOS games, try DOSBox. It's specifically designed for this goal, and cheats in various ways to make it fast (for example, the BIOS and DOS are built-in instead of emulated). The main problem with it is the lack of 386 Protected Mode support.

    4. Re:Anything would be faster... by athakur999 · · Score: 3, Informative

      If you're running NT or 2000 you can try out VDMSound. I've had a fair amount of luck getting some old DOS games to work correctly in a command prompt box under 2000.

      --
      "People that quote themselves in their signatures bother me" - athakur999
    5. Re:Anything would be faster... by runderwo · · Score: 3, Interesting
      Yes, DOSEMU usually works better, but AFAIK it only works on i386 and Linux (and maybe some BSDs).
      BSD has their own "doscmd". Dosemu currently only works on Linux/i386, but they are adding a 386 emulated core that should eventually release the architecture restriction. It is, however, highly dependent on specific features that have been merged into the Linux kernel.
  4. Boch vs. VMWare by thopo · · Score: 4, Interesting

    Does anyone one know which one of them is faster, or let's just say better?

    --
    keep it simple.
    1. Re:Boch vs. VMWare by damiam · · Score: 4, Informative

      Bochs emulates the entire x86 instruction set, so it will run on any architecture. VMWare simply creates a virtual machine and passes instructions directly to the processor, so it only runs on x86 machines. VMWare is about a zillion times faster and easier to set up, but it also costs infinitly more than Bochs.

      --
      It's hard to be religious when certain people are never incinerated by bolts of lightning.
    2. Re:Boch vs. VMWare by Mitchell+Mebane · · Score: 5, Informative

      That's like comparing apples and oranges. VMWare is a virtual machine; it only emulates certain parts of a computer. It's "passes through" most of the work to the host machine. This means that is a lot faster, but it can only run programs designed for the host architecture. Bochs, OTOH, is a full-fledged emulator, which, eventually, will let you run any program on any machine. Since it emulates every, though, it is FAR slower that VMWare. I hope they add some sort of JIT engine sometime.

      --

      The roots of education are bitter, but the fruit is sweet.
      --Aristotle
    3. Re:Boch vs. VMWare by ipsuid · · Score: 4, Informative

      Precisely.

      I've used all three (Bochs, WINE, VMWare) and each are designed for different purposes.

      Bochs is quite slow for normal application usage, but it is absolutely ideal for low level OS development work. Compare crashing your real machine hundreds of times while debugging your bootloader and memory management code to having a "virtual" crash in Bochs. Also, Bochs provides stubs for implementing runtime instrumentation, so you can use powerful debugging techniques that remain 100% insulated from the debugee.

      If you are primarily concerned with running one or two Windows apps under Linux that you just can't live without, then Wine is for you. Sure, there are still some rough edges, but in many cases, your application will actually run faster under Linux then under Windows. However, parts of Wine are still incomplete, so YMMV. The biggest plus with the Wine approach is that interaction between apps is a tad simpler.

      VMWare creates a bit of a middle ground between Wine and Bochs. I've used it for the past two years to keep a copy of Win98 and Win2k on my Linux box. Because being an independent programmer/consultant sometimes requires me to use technologies I don't exactly embrace, the Windows in VMWare option allows me to maintain productivity while not opening myself to network *cough* problems. In addition, I can keep multiple OS's running concurrently so testing and debugging apps is fairly painless. Except for a few operations (installing software, for example) the virtual machine runs almost as fast as if I ran the OS natively. BTW, when Windows inevitably hoses itself, I have it running again in the time it takes to copy a 1G file ;-)


      So in summary, if you are doing some hardcore hacking, get yourself Bochs... it will save you many many reboots.

      If you want to run MS Office and can live with a few glitches, get yourself Wine.

      Looking to simplify cross-OS application debugging, need to have Windows close at hand, doing tech support? Then VMWare is your answer.

      Want to run the latest DirectX 9.0, wet your pants LOD game... yet run Linux as well? Get yourself a second machine.

      --
      It appears Ockham lost his razor and grew a beard.
  5. The webpage hasn't been updated but... by orbital3 · · Score: 3, Informative

    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. :)

  6. What we need now... by bakes · · Score: 5, Funny

    ...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!
    1. Re:What we need now... by Valar · · Score: 4, Funny

      No, he means eteel. Isn't everyone on slashdot seeking true eteelness?

    2. Re:What we need now... by eMilkshake · · Score: 3, Funny

      I once ran os360 on hercules (s/360 emulator) on linux in a vmware session in a windows terminal server session. Does that get me anything?

  7. Upgrade to 2.0 then tell us by emptybody · · Score: 3, Insightful

    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
  8. 2.0pre4 by Hadean · · Score: 3

    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...

    1. Re:2.0pre4 by kpansky · · Score: 3, Informative

      Sorry -- you are incorrect. The webpage for the site is not updated as fast as Slashdot can find out about their new releases. Look for a link on the left for "all releases" and download Bochs-2.0... it wasn't that hard.

      --

      --Kevin
  9. Re:What does it do? by TeknoHog · · Score: 4, Informative

    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.
  10. I need Windows on Linux.... by seanadams.com · · Score: 3, Interesting

    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.

    1. Re:I need Windows on Linux.... by garcia · · Score: 3, Interesting

      if $250 isn't going to break the bank, buy a Windows system and use it for Windows only. There is absolutely no valid reason for emulating under Linux if you have $250 to spend. You are going to get a lot more out of your money that way.

    2. Re:I need Windows on Linux.... by ostiguy · · Score: 3, Informative

      But 250 isn't just for one system. VMware allows you to run as many vms as your ram permits. If I were doing something where I needed to keep win 98 around, I'd probably use vmware to emulate it rather than keeping a crappy box around

      ostiguy

    3. Re:I need Windows on Linux.... by Elwood+P+Dowd · · Score: 3, Informative

      Boy, do I disagree.

      If, for example, you've got a laptop, and have needs for both Windows and Linux, a perfect virtual machine environment is absolutely desireable. You can take your laptop anywhere, and simultaneously run apps of different varieties.

      I've got an iBook. I'd never have considered switching to Linux without MacOnLinux. With proper virtual machine design, and a native processor, there's no crippling speed penalty either. Even if I had $1200 for another iBook. I've got both right here.

      Even with desktop machines, if you've spend $1500 on your primary system, WindowsXP on a virtual machine is going to be a hell of a lot faster than a new $250 machine.

      Oh. Wait. You said emulation. In that case, I couldn't agree more strongly. I just don't know of any $250 processor emulation packages. VMWare is just a virtual machine, right?

      --

      There are no trails. There are no trees out here.
  11. Possible for transparent x86 emulation on Linux? by Ryu2 · · Score: 3, Interesting

    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.
  12. It's been released?? by Chester+K · · Score: 3, Insightful

    It'd be nice if they'd have updated their webpage to say so.

    --

    NO CARRIER
  13. Re:Do they use JIT? by paladin_tom · · Score: 3, Informative

    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."
  14. Re:How well does it work? by mabinogi · · Score: 4, Informative

    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!
  15. If you do this enough... by raygundan · · Score: 5, Funny

    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.

  16. Re:It must be good! by zulux · · Score: 4, Informative


    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.

  17. Why so slow? by smagoun · · Score: 3, Informative

    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...

  18. So what happened to plex86? by phr2 · · Score: 4, Interesting

    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?

  19. Why to use Bochs... by pla · · Score: 3, Insightful

    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).

  20. Sounds cool, but useful? by rve · · Score: 3, Insightful

    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.

  21. You think windows is hard? by Erpo · · Score: 3, Funny

    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