Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
×
News

VMware vs Virtual PC vs Bochs 210

Sean writes "Possibly of great interest to developers as well as alternative OS users, this article compares three x86 emulators, VMWare, VirtualPC and Bochs. It looks like VMWare is better than the lot, but Bochs is shaping up nicely too."
This discussion has been archived. No new comments can be posted.

VMware vs Virtual PC vs Bochs

Comments Filter:
  • Okay, I think this would be obvious, but maybe it isn't to most people. Why would you compare the OS emulators to other emulators? Wouldn't it make more sense to compare the emulator to the actual OS in which it is attempting to emulate?
    • by tkrotchko ( 124118 ) on Thursday May 09, 2002 @09:34PM (#3494315) Homepage
      It doesn't emulate an OS, it emulates an x86 PC.

      It acts like a...well, a virtual PC.
      • Agreed.

        I use VMWare at work every day for development (beats reGhosting) and VMware emulates the hardware of an X86 PC. You still supply a copy of whatever OS you want to use (the real thing), and VMWare pretends to be a motherboard, video card, memory, CPU, etc.

        We use it to guarantee a clean install of various OS and application combinations. Test the in-house pre-alpha software on a VM window, "shut down" and power off the VM and allow VM to delete the optional delta file it's been keeping of the changes. Presto - clean hard-drive again.

    • I think they're both valid comparisons, it just depends what you're looking for. After reading the article, it seems they were looking to see which emulator/VM has the best performance, i.e. which is the better one. They could have compared them to the native OS, and then compared those results, but that seems like an extra level of indirection. They should really have included native benchmarks as a control though to show what the penalty really is.
  • by C0DE ( 578705 )
    Bochs has come a long way since I first used it in '98. From what I see now, it has a lot of potential. It just needs a better interface, and some quirks to be worked out.
    • Scratching my itch (Score:3, Informative)

      by driehuis ( 138692 )
      Unfortunately, the quirks can be real show stoppers. VMware has the edge in that it actually is a useful environment if you have to occasionally use Windows, and need a bit of performance. As long as VMware sort of works under FreeBSD (yeah, I know, it's official and BSD is dying; nothing to see here, please move on), I'm happy with it.

      Bochs is pretty impressive in that it actually works and actually does useful things, but I wouldn't dream of using it for serious work as it stands now. It's just too slow, and plex86 is just too far out.

      I did work on Wine way back when and I still like its idea, but portability really is a huge issue.

      None of these emulators are at the point where I can start contributing anything useful. The gorgeous thing about Wine is that, once you get it to run at all, you can start addressing things that don't work for you, and work in that area can benefit all the emulators. As things stand now, you're pioneering to get any of them to run Solitaire under FreeBSD, and that just hurts too much to consider scratching.
  • Apples and oranges (Score:3, Informative)

    by AirLace ( 86148 ) on Thursday May 09, 2002 @09:31PM (#3494308)
    Bochs and VMWare are completely different animals. Comparing their relative performances is simply nonsensical. From the bochs site:

    Bochs is a highly portable free 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.

    On the other hand, VMWare is a virtual machine implementation. Whilst Bochs can mimic an Intel processor on any platform to which it's ported, VMWare depends on being able to pass machine code directly to the native CPU without interpreting it, and therefore its performace is pretty snappy.

    At least you can say appples and oranges are both round, but this 'review' takes the biscuit. Bochs will never "shape up nicely" in the way that the article expects it to because it's a fundamentally different piece of software to VMWare. Plex86 [plex86.org] (formerly FreeMWare), founded by the lead developer of Bochs, would have been the Open Source analogy for VMWare, had its development not died off several months ago due to a terminal lack of developer interest.
    • by dbarclay10 ( 70443 ) on Thursday May 09, 2002 @10:00PM (#3494387)
      At least you can say appples and oranges are both round, but this 'review' takes the biscuit. Bochs will never "shape up nicely" in the way that the article expects it to because it's a fundamentally different piece of software to VMWare. Plex86 [plex86.org] (formerly FreeMWare), founded by the lead developer of Bochs, would have been the Open Source analogy for VMWare, had its development not died off several months ago due to a terminal lack of developer interest.

      Excuse me? The review states *exactly* what you've stated. It's very clear about it. All over the place. Every third paragraph mentions that Bochs is meant for different uses, and is portable.

      Man, read the article before you go bashing authors. There are enough really *horrible* reviews out there that you should be expounding on the virtues of a half-decent one, not nit-picking non-existent flaws.
    • If you had, you would have read this:
      First off, we need to clear out an issue that many people are confused about or just do not fully understand. VMware Workstation & VirtualPC are not emulators as Bochs is. They deliver the same output, but the way they work is different.


      [...]

      VMware Workstation buys speed with its runtime engine, while Bochs and VirtualPC buys portability. It is a trade-off game.
    • You're absolutely correct. I can't believe he compared these products, they are completely unrelated. I mean really, VMWare lets you play with guest operating systems in a separate environment. And Bochs lets you play with guest operating systems in a separate environment.

      Two clearly different "beasts" that should never even be mentioned in the same sentence. And don't forget that Virtual PC (for x86) lets you play with guest operating systems in a separate environment, which is again another thing entirely.

      I can't understand why anyone would write a comparison detailing what each is best used for.
  • Platform (Score:3, Interesting)

    by SlamMan ( 221834 ) on Thursday May 09, 2002 @09:31PM (#3494309)
    You'll note that he's using it on a dual celeron 533, which isn't exactally the speediest thing out there. Also, jsut to state the obvious, this means he's running this on x86, which isn't where most of VirtualPC's user base is.
    • The funniest thing is that he complained about the performance on dual proc systems, but he was running the emulators under Win9x in most cases.
      Win9x doesn't support dual PROCS!
    • dual celeron 533

      A high-end low-end system???
  • by Anonymous Coward
    Of my Amiga 3000 in 1990, with a 386 BridgeBoard and an Emplant card, with these two cards I was able to run PC software in a window on my Amiga Workbench, AND have a Macintosh running in its own screen behind the Workbench.

    Of course, we had to pirate the Mac roms to get the Emplant going. But it was a nice system.

    It's fun to be 12 years ahead of your time.
    • Ahhhh.... Brings back memories.... Of my Amiga 3000 in 1990, with a 386 BridgeBoard and an Emplant card, with these two cards I was able to run PC software in a window on my Amiga Workbench, AND have a Macintosh running in its own screen behind the Workbench.

      I've got you beat: back in 1983, my parents bought me an IBM PC as I was entering high school. The high school had Apple ][s, which I wanted so as to be compatible. We looked for a solution, and found one: the QuadLink, by QuadRAM. It's an octopus board (it had cables going everywhere inside the box) which allows you to hit Ctrl+Alt+A to go into "Apple mode" and Ctrl+Alt+I to get back to "IBM mode".

      Everything worked fine, even the games we cracked. ;-)

      It's fun to be 12 years ahead of your time.
      So I was 19 years ahead. ;-) (The entire solution was ungodly in price, something like $7,000 -- it's difficult to pay that much for a gaming machine these days, let alone a net/email/word processing machine.)
  • bochs vs plex86 (Score:2, Insightful)

    moderate me down if I'm wrong, but hasn't bochs development slowed down in favor of plex86 [plex86.org], which does virtualization instead of emulation? [although being fired from Madrake probably didn't encourage Kevin Lawton [?]].
    • How Correct (Score:3, Funny)

      by cscx ( 541332 )
      Yes, and this [plex86.org] and this [plex86.org] screenshot both exemplify the rocket-powered progress that plex86 has undergone, placing it well ahead of Bochs.
    • Re:bochs vs plex86 (Score:5, Informative)

      by Daniel ( 1678 ) <dburrows@[ ]ian.org ['deb' in gap]> on Thursday May 09, 2002 @09:47PM (#3494350)
      I've heard this repeated several places, and I don't understand where people are getting it. In fact, plex86 is a dead (or rather dormant) project, while bochs is chugging along healthily.

      If you don't believe me, read the development mail archives for the month of May:

      bochs [theaimsgroup.com]

      plex86 [fsf.org]

      Daniel
    • Re:bochs vs plex86 (Score:2, Informative)

      by Daengbo ( 523424 )
      To clarify the plex vs. bochs posts: about two weeks ago I tried for a whole night to find ANYTHING about plex newer than November, and couldn't. It appears that Mandrake bought up Bochs, turned it into Plex using the original developer, Kevin Lawton, and then fired him. It looks like he has since returned to Bochs and they have released 1.3 and 1.4 since then, while plex is still looking for someone to lead the project. In the words of one reviewer of Bochs and Plex, this kind of programming is so difficult it makes kernel hacking look like high level code and there are very few people out there that can do it.

      Kudos to Kevin for all his great work, and I'm sorry that Plex86 is dead in the water, 'cause that's probably what I would have used.
    • Re:bochs vs plex86 (Score:2, Informative)

      by MrDelSarto ( 95771 )
      I've been subscribed to the plex86 mailing list for around 6 months and there really isn't anything of interest going on. What happened was the lead developer, Kevin Lawton, was sacked from Mandrake and disappeared. As far as I can tell he didn't leave anyone with check-in access to the CVS tree, and the whole thing just stopped.

      Not that it was ever that great, it really is a pain to install and try and use compared to Vmware. It's now moved to here [gnu.org] (for one of those very Stallman-esqe reasons sourceforge wasn't "free" enough or something) and apparently Drew is working on getting the latest CVS with patches up and running, but don't hold your breath.

      it could be a good project, just needs some more effort from people. i personally thought there would have been more developer interest.
  • He's comparing three completely different products as if they were similar.

    I took a class last fall that required us to do some fairly intrusive kernel hacking in Linux using VMWare. It served that purpose fairly well; it was nice to be able to accidently fsck up your entire filesystem (no pun intended) without having to worry about losing your work. The only problem we had was that it absolutely refused to maintain the correct time.

    I also used it when I was messing with Linux From Scratch, so I could see how it worked before trying to install it on actual hardware. That's what I still use VMWare for; doing test runs of risky software.

    VirtualPC is a Macintosh program for people who need to run the occasional Windoze program. I don't know why they even bothered with a PC version. I also don't know why they compare it to VMWare.

    I'm not familiar with Bochs, but it sounds to me like several layers of abstraction on the VMWare model. So of course it's slow. That's what layers of abstraction do!

    So I'm not quite sure what the point of this article was. Someone want to fill me in?
    • I think comparing the 3 products to each other was a fair thing to do.

      He wanted an emulated PC on his computer (x86 based), so he compared the 3 options...makes sense to me

      obviously there are 3 different philosophies behind the products (probably helps each maintain a market share). But at the end of the day they all do what he wants/needs and with varying degrees of success...
    • VPC also have an x86 version (which she mentions in the article).

      So I'm not quite sure what the point of this article was. Someone want to fill me in?

      To compare three products that all let you do the same thing, run an x86 os on an x86 system.

    • Of course VMWare, thanks to its rollback on disks, is excellent to test 'risky' software, but apart from that it is also excellent to run windows software under linux (or linux software under windows), just like the intent of virtualPC.

      In that sense, vmware beats virtualPC in all aspects: what both can do it does better and faster, and it can do more, such as not committing changes to your disks, building networks of virtual machines etc.

      For that, it is very expensive though. Version 1 and 2 were still affordable for home users, version 3 is no more. I was able to buy version 3 only because once I bought the cheap $75 student/hobbyist licence of version 1, now I could upgrade to version 3 for $100.

      My only remaining wish is support for true directX including 3D support. Maybe they could modify their virtual graphics card into one that supports directX fully (and passes the 3D instructions through to the real directX hardware under windows or to openGL under linux).
  • Am I the only one confused as to why this review is comparing an OS emulator to these other emulators?
    • Because VMware is *not* an OS emulator, it is very much like VPC. Bochs is the one that's really different from the others.

      The point of reviewing them all is because they all should be considered when the task is to run multiple virtual operating systems inside a host one.
  • by tkrotchko ( 124118 ) on Thursday May 09, 2002 @09:42PM (#3494335) Homepage
    I don't believe these emulators take advantage of multiple CPU's, so he is using effectively a 533mhz Celeron. That's a little slow for these emulators.

    He states that neither supports sound cards. This is not correct. VPC has the edge for this function in my opinion, although VMWare isn't bad.

    Here's what I've learned. Virtual PC is your best bet for running virual Windows based machines. It runs them very well. On the other hand, I can't get any distro of Linux to fully load under VPC. That's not saying you can't, but each one crashes or freezes at some point. The real strength of VPC is that it emulates known, common hardware, so it provides an easier environment to set up in the emulated machine.

    By contrast, VMWare is mediocre at providing an environment for Windows. It will do it, but the non-standard video card it emulates is a huge pain in the rear. However, VMWare runs Linux distro's pretty well. It emulates different types of hardware, and the options are impressive.

    I wouldn't rate one better than the other, they're both very good and some things, and very average to poor at others.

    However, you should buy one of these tools for testing out new software. You can load software inside the virtual machine, test it (for trojans, spyware, whatever), and then when you're done, you either blow the changes away or keep them in you virtual machine. The virutal disks themselves are disk files, so they provide an excellent testing environment because they are effectively immune from user changes to the environment (burn the hard drive image to a CD, and pass it out to the testers with VPC on their drive). It allows you to test on dozens of machines without owning dozens of machines.

    Its cool stuff.
    • I use VMWare everyday and while I agree it doesn't use multiple CPUs, you can launch multiple instances of VMs at the same time and they will use sep. CPUs from each other. In essence, you're then running two Celeron533s at the same time. The video driver it supplies is good enough for testing anything except games.

      Love this package - instead of keeping a dual-boot machine floating around, you can keep multiple VMs on the same machine, and even run them at the same time. Bonus trick - get four VMWare sessions running at once and have them network amongst each other. Very cool.

      BTW, your trick of blowing away the delta file (VM calls it an "undo" disk) is exactly what we use it for - beats Ghost.

      • Ill Also agree. A speedier cpu, a 2ghz and you can do everything your use too. It has overlays for watching dvd/divx. Play mp3s with winamp, even a few games in software mode works in the 30fps+ mode.

        But in Windows apps, it truely shines, I can using Mozilla with those nice cleartype fonts in winxp. On my laptop a P3-550, Vmware lets me use office at an (kinda) acceptable level, it does pause for a sec when I first read drives, or touch a network drive. But after than, it sparks up and is peppy enough for outlook and excel.

        If Vmware came out with a Gamming edition, released a video driver that has full opengx and dx support, it would be almost perfect.

        And a 100mbit or Gigabit ethernet card (emulated) is needed, if you running 4 servers all working together, 10mbit is a bottleneck.
    • Another really sweetfeature of VPC is that you can have multiple image instances running at the same. Even better than that, is that you can network them together. I at one point had win200 running, and win 98, me, and 95 all up to check connectivity with it. Its a cool toy.
    • Here's what I've learned. Virtual PC is your best bet for running virual Windows based machines.

      I think millions of Windows users on a regular PC would argue that point. After all, surely a dedicated windows machine can send out more viruses/sec than a virtual one. :)
    • For my use, multiple CPUs on a machine destined for Virtual PC-ing is almost a requirement. Although the VPC will basically be maxing out the once CPU, it has a few background threads running as well. Giving these threads a separate CPU to run on really improves responsiveness and reduces "hang" time (every few seconds, the VPC seems to hang for a few seconds, then comes back to life). In addition, if you plan to do stuff on the host OS while the virtual OS is going, the second CPU will give the host OS enough cycles to perform well even while the first CPU is somewhat busy maintaining the hardware state of the VPC.
    • I've had better luck than you in installing non-Windows OS's in VPC. I successfully run OpenBSD (2.9) and RedHat (7.2) tho' neither is using X (didn't try in OpenBSD and screwed up video settings when setting up RedHat but I don't need it).

      I don't use the OpenBSD guest OS much but I've been using the RedHat at lot as a practice run for setting up a server for a project. The Windows support is definitely better, for some reason the RedHat in console mode can still be really slow, like waiting for the characters I've typed to show up sometimes (on an 90MHz Athlon). Initially the Virtual Switch (Host OS must be Win2k or XP) network just didn't work but now it works with few problems. I wouldn't use VPC to run virtual production servers but for testing purposes it's invaluable.

      VPC wins over VMWare in ease of use. It's interface much easier to work with and they sell disk images with operating systems pre-installed (tho' I haven't purchased one). I tried VMWare back when RedHat 6.2 was new and had a much harder time trying to set it up. Maybe it's improved since then.
    • I can't get any distro of Linux to fully load under VPC.

      In Spring of 2000 I did my compilers class project on RedHat 5.x under an older (out of date even then) VirtualPC. I was learning CVS at the time and used it to merge in all the changes my partner sent me so we could work simultaneously.

      I ran into some frequent race conditions. I had to add a sleep 1 to one of the startup files before the fsck or it would fail. Also, makes frequently failed with inexplicable errors, but you could just keep retyping make until it finished.

      More recently, RedHat 7.1 seemed to work just fine, but I haven't used it for much.

  • VMWare tips (Score:5, Informative)

    by young-earth ( 560521 ) <slash-young-eart ... m ['oos' in gap]> on Thursday May 09, 2002 @09:49PM (#3494356)
    If you're going to use VMWare (I do, have since 1.0, and it's great), here are some tips to keep in mind:

    - when asked about the graphics card during a Linux install, say SVGA generic, later on you'll upgrade it to the VMWare video card when you install the VMWare tools.

    - specify "Undoable" for your disk(s) if you ever want to run a bunch of odd tests, installing weird things for example, or trying a virus to see what it does, then just say "forget it" when you're done. If you're doing a virus test please do remember to turn off the network connection though...

    - If you've used VMWare 1.x or 2.x but not tried 3.x, it's a whole new world. The mouse responds like it's a real system - even on my slower machine (dual PII-400's). 3.0 is a major leap forward.

    - Have lots of memory in the host system, remember running two OS's means you'll be using a lot more RAM.

    - Sound is a weak point currently, you can get it pretty good but not great. Using the preempt kernel patch on 2.4.17 helps but isn't quite enough. Playing around with priorities helps too.
    • I've been trying to goof around with Redhat. Could never get KDE loaded. Thanks for the tip!
    • Re:VMWare tips (Score:3, Interesting)

      by BrookHarty ( 9119 )
      If you have a fast enough cpu, a 2gh+ machine, sound works alot better. On my dual 800, sound was ok, but did skip. On my amd 1800, i can watch dvds, mp3s, and play mpegs with no sound or video skipping. I also used the newest emu10k1 drivers. Of course pre-empt and a gig of ram didnt hurt either. (-;

      Screenshot. http://www.ironwolve.com/desktop.jpg [ironwolve.com]

      Only thing left is to get AA fonts working with IceWM, and the side buttons working on my explorer mouse.

      -
      cd /mnt/games/jediknight2; winex JEDIOUTCAST.EXE
      • Judging from your sig, I'd guess you're a gamer. How well do games run under a VMware session? Can you play windows games that don't work with wine yet?
        • Games that use software mode work ok, but if its opengl or directx use winex.

          Winex...
          CS 1.4 works, but some servers think linux is a cheat, so you cant join. Hopefully they fix this, but I doubt valve will.
          Tribes loads prefectly, but you cant play due to a keyboard/mouse problem. If they could fix this, that would be awesome.
          Quake3 engine games work very well, I find the mouse to be faster than windows, FPS is about 10FPS less, so if you get 70FPS in windows is about 60FPS in linux. Very playable.

          VMWARE...
          CS 1.4 works about 25-30fps in software mode. Its ok, but not great.

          I also use nvidia 2880 drivers, gcc3, preempt(patched) 2.4.19-pre7 kernel, emu10k1 audigy drivers. Trying to get every bit of performance I can get from my AMD machine.
  • by Leghk ( 30302 ) on Thursday May 09, 2002 @09:53PM (#3494366)
    What happened to http://www.netraverse.com win4lin? I havn't used VMWare in about a year, but about a year ago I compared the usability of vmware and win4lin.

    Win4lin is quite impressive, and quite stable. Win4lin apparently took a number of "shortcuts" and broke some rules, which VMWare did not. Making VMWare's product more universal, and flexible. Win4lin *only* supports win98, and cannot boot any other operating system. Win4lin needs serious kernel patches aswell. VMWare can run under linux, and boot linux, win4lin cannot. VMWare is also available under windows.

    Although I generally tend to side with designs which are more flexible and portable, the performance and responsiveness of win4lin are quite impressive. As a user, win4lin has been what's been running on my desktop for over a year Weather win4lin will be able to "adapt" their product to run winXP or 2000, remains to be seen; I don't know how much they're tied directly to win98. I have recently heard that they have a version of of win4lin which can run WinME, which is very simular to win98.
    • by Anonymous Coward
      Well, NeTraCurse went dot-com-tits-up a year or so ago, and moved to Austin with about 10 managers and 2 engineers, so I don't know how well the product has advanced recently.

      I checked their support page a while back, and they have like 70 kernel builds available for download, since they couldn't get their kernel mods accepted into the mainstream kernel, and didn't figure out how to have a self-building installer like VMWare has.
    • I use Windows 98 with Win4Lin 4.0 on Red Hat 7.2. The product works as advertised. It consists of a kernel patch (RPMs available for Red Hat, SuSE, Mandrake, et al.) and utilities (also available as an RPM). It comes with a graphical installer, but I didn't use it.

      It's definitely a niche product, but it's just the ticket for a Windows refugee for whom WINE doesn't quite cut it. The VNET virtual NIC handles Internet Explorer and Eudora just fine.

      One reservation in recommending Win4Lin is that the target market may find installation too difficult. For example, I had to jump through some hoops to make a floppy boot image (I have the non-bootable W98 upgrade CD) for a system without a floppy drive.

      Also, you're dependent on NeTraverse keeping the kernel patch up to date. Unless they can make an NT/2K/XP version, Win4Lin will probably die in a year or two. I don't know what kind of R&D NeTraverse has, as this product is basically a port of Merge from SCO to Linux.

      Finally, some potential Win4Lin or VMware customers may find that connecting to a second machine with VNC is just as good a solution.

      • First of all, the claim that you have to depend upon Netraverse is just FUD. Netraverse has done a very good job of supplying kernel patches; they've got all of the patches up to the 2.4.18 kernel available. Also, I wouldn't consider downloading a boot image for windows 98 from a common site exactly jumping through hoops - thats all I had to do.
        Also, the claim that they'll die is also FUD. They've on version 4.0 now, which only just came out, and it works with ME as well. And they really do have a good claim to fame: in my experience, their product works at the same speed as native windows (unlike VMWare, which I'm told runs at about half speed or less).
        However, there product has some serious drawbacks which have angered me.

        1) v3.0 will only let you use 64MB of RAM. Also, video sucks.

        2) Upgrades to remove the limitations COST MONEY. That's right, design flaws that are the fault of the software designers (because they used an old BIOS to do their initial design) are almost as expensive as the actual products ($20 less).

        3) Documentation is very bad, and there are some serious memory requirements which are barely mentioned (each user gets their own "windows partition" with their own copies of ALL system files - about 200MB/user on top of the 400MB that is required for the initial install). With the help of tech support, I got it to work on my system after A MONTH of e-mails - two from me each weekday, and one from them.

        Still, it runs, and only crashes occasionally due to some thrashing problems. As "nice" as their product works, Its quite frustrating that they expect their customers who have already contributed a substantial sum to also pay for the upgrade in which they fix their bugs. Its almost like paying for the latest version of Windows, except that instead of getting features I don't use to go along with the bug fixes, I'm getting only the bug fixes. I believe Windows at least uses service packs.

        I'm done paying until they start playing nice. I bought the product initially with the understanding that this was a promising product that they where going to improve upon, and give to their current users and sell to other users (like they did from v2.0 to v3.0).
        • the claim that you have to depend upon Netraverse is just FUD. Netraverse has done a very good job of supplying kernel patches; they've got all of the patches up to the 2.4.18 kernel available.

          How is it FUD to say that Win4Lin customers depend on NeTraverse maintaining patches? If I have a kernel to which their patch doesn't apply cleanly, I sure as hell don't want to try to clean it up.

          I wouldn't consider downloading a boot image for windows 98 from a common site exactly jumping through hoops

          Was this "common site" a warez site?

          the claim that they'll die is also FUD

          The viability of Win4Lin is totally dependent on the viability of W9x. DirectX 8.1 (not that you'd run it in Win4Lin) is not supported on Windows 95. Visual Studio .NET is supported on NT only.

          We clearly understand Win4Lin's role, and agree that it fills it nicely. By the way, you said there's only a $20 upgrade discount. You should have gotten an offer to upgrade for $50, which is $40 less than retail.

          • First, its FUD because they have always supported kernel patches in the past. You have to depend upon the developers of Linux for the kernel source to be improved just as you have to depend upon netraverse to maintain their patches.

            You don't complain about that because the kernel developers are (arguably) dependable. Netraverse has been very regular and dependable in updating their kernel archive. Therefore, to claim that you can't get kernel patches for their products is merely to spread unfounded fear, uncertainty and doubt about the reliability of NeTraverse.

            Common site - http://www.bootdisk.com
            Its sort of well known for its bootdisks. Its been up for a very long time, and is quite legal.
            Recommended by win4lin tech support, actually.

            And you CAN buy win4lin for $80 if you look hard enough, just not directly from the company. (And yes, its also legal).

            The main point of that is that $50 isn't really a good price for bug fixes.

            You think Windows 98 is going away because Microsoft stops supporting it? Do you think most developers are actively supporting .NET? I doubt it. But at any rate, I got the idea from the previous post that the reason win4lin might go under is because they aren't improving. But they are improving. The reasons that their product doesn't work on NT are fast evaporating.

            However, if TransGaming ever beats down the problem, I really don't think anything else has a shot unless they make the product MUCH more affordable.
            • Netraverse has been very regular and dependable in updating their kernel archive. Therefore, to claim that you can't get kernel patches for their products is merely to spread unfounded fear, uncertainty and doubt

              I just wanted to follow up on this, as I've been waiting almost three weeks for Red Hat 7.3 patches. The patches still aren't available, but the prepatched 2.4.18-3 kernel (already out of date) is available through the GUI installer, as of this week.

              I never said you can't get kernel patches; I said: "you're dependent on NeTraverse" releasing patches. I tried to apply the generic 2.4.18 to Red Hat's 2.4.18-3 and -4. It didn't work, because of a 20 MB Alan Cox patch. Again, not faulting Win4Lin, but pointing out the dependency.

              No FUD here. In fact, your counter FUD sounds like PROP: press-release optimism.

    • <Rant>

      win4Lin bites.

      We have to use it at our university. It humbles our 1Ghz machines, they feel like the old p100 that we threw out years ago.

      It mucks with windows's networking too. Win98 doesnt think TCP/IP exists, which is a little sucky. It means that IE can't do SSL. Use netscape, perhaps... Ahh!! but since win4Lin only lets you have 64Mb RAM in your windows session, it's waaaaaaay to sloooooow to reaaaaaally be used. It also means any network drives are implemented in Linux NFS rather than with windows, all very well, except windows doesnt know they are network drives. So it looks at all the childrens' children in windows explorer to determine whether to display a + beside the folder. Very slow indeedio.

      And if it were at all possible, windows is very unstable on it. Apps crash left right and centre, and the operating system itself doesnt fare much better.

      </Rant>

      • It mucks with windows's networking too. Win98 doesnt think TCP/IP exists, which is a little sucky. It means that IE can't do SSL

        Must be set up incorrectly. Since MSIE under Win4Lin will most definitly work correctly with https URLs. It's important that the Netraverse version of winsock.dll is installed.

        It also means any network drives are implemented in Linux NFS rather than with windows, all very well, except windows doesnt know they are network drives.

        Which actually has some advantages like network drives having a recycle bin and not having to cope with the Windows profile mess.
      • [Win4Lin] mucks with windows's networking ... win4Lin only lets you have 64Mb RAM in your windows session

        I use Win4Lin 4.0 with VNET networking. This is much preferable to the WinSock option, although it requires setting up a separate IP address. This may be a probem in an anal-retentive IT environment (like a university). I can browse SourceForge pages in SSL mode with IE 6. The Network control panel shows a "Merge NIC," along with TCP/IP. The Windows session can see Microsoft Networking shares. I can access shares in the Windows session via Samba from the host system.

        Win4Lin 4.0 lets you allocate 128 MB to the session, but I've been happy so far with 32 MB (out of 256 MB) on a Celeron 850. That said, I haven't been running very demanding applications.

        I'd say you haven't seen Win4Lin at its best (and I clearly haven't seen it at its worst).

  • VPC on x86 seems kind of pointless... why dink around with software emulation to run multiple OSes when you can just get one of those removable HD bays and swap actual hard drives in and out with different OSes on them?

    If you're a Mac user, though, VPC is pretty sweet. Newer OSes aren't blazing fast on it, but they're acceptable-- it's probably the best way to test out 'risky' software, because you can make a backup copy of the HD image in no time.

    The best use I've found for it currently, though, is as a lightweight Terminal Services client on my iBook... using Windows for Workgroups, a TCP/IP stack for Win 3.11 and the 16-bit version of Microsoft's Terminal Services client software. All of this fits in a 100MB HD image with a ridiculous amount of room to spare-- I just haven't had the time to transfer it all to a smaller one. It's also blazing fast. The Virtual PC boots up from the virtual POST to a Windows desktop in under a minute, and recovers from a saved state in less than half that time.

    ~Philly
    • VPC on x86 seems kind of pointless... why dink around with software emulation to run multiple OSes when you can just get one of those removable HD bays and swap actual hard drives in and out with different OSes on them?

      Because you can run multiple OSes at the same time. Not that I'm against removable HDs, I thought they were pretty nifty when I had access to some of them.

    • If "terminal server" (hah! that meant something completely different before MS usurped the term) is your only goal, you may want to try rdesktop [rdesktop.org] under the X emulator under MacOS X. I think it'd be lighter weight.

      I use rdesktop to access some corporate goop that only runs on Windoze, and it's gorgeous. Unlike the MS terminal server client, you can even use weird screen resolutions like 700x500 to make apps fit in your host window without scroll bars.
    • VPC on x86 seems kind of pointless... why dink around with software emulation to run multiple OSes when you can just get one of those removable HD bays and swap actual hard drives in and out with different OSes on them?
      Yes, as I can test a Linux set up while writing the word document with that.
      Ohh wait, no I can't, I have to reboot every few mins, to flip between Windows & Linux!
    • Having to reboot to switch (and terminate all running programs) is a pain.

      A better alternative is to buy a second cheap PC (second hand, almost anything available will do to outperform virtualPC :) and switch using a KVM.
  • by SIGFPE ( 97527 ) on Thursday May 09, 2002 @09:59PM (#3494381) Homepage
    ...on my MacOS X 550MHz G4 Powerbook.
    1. I've been playing DOS games (under PC-DOS). Settlers II and Ultima Underworld I/II play perfectly. Populous is unplayably fast. Tomb Raider was reasonably fast though it did keep stopping for a while every 10 seconds.
    2. Playing games under Windows 98 is tricky. Age of Empires II and Red Alert play. They're a little slow but not so slow you can't play.
    3. I installed Debian with no problem. In some tests the emulated X server is faster than the Native XDarwin. (I'm serious! XDarwin sucks and I guess the there's no reason for the emulated S3 card to be that slow.) Couldn't get networking to work. Did some numeric speed tests (eg. echo "2^100000"|time bc) and found the emulated machine to be half the speed of running natively. Really! That dynamic compilation stuff works well sometimes. XGalaga worked fine!
    4. Also tried FreeBSD (did an FTP install, flawless), Plan 9 (3 or 4 hours to install but it seemed to work) and MenuetOS [menuetos.org] (pretty nippy).
    with success.


    Goes to show you can emulate the hardware completely and still get good results. Bochs has a long way to go.

  • Considering these virtual/emulated hardware programs are never as fast as the real thing does that mean they would be suitable to play classic PC games that run too fast on modern PCs? Has anyone tried running the classics such as Scorched Earth, Comander Keen, Crystal Caves, Duke Nukem etc under any of these programs, particuarly Bochs which is free. I notice that Bochs even has Soundblaster emulation which would be great for old games. I would be interested to see the results.
    • If you want to play Scorched Earth on a Linux platform, just get xscorch (it's on freshmeat). They've added lots of interesting features (such as Black Rain, which is a Death's Head full of Hot Napalm, and Solar Panels, which recharge your shield a bit each turn).

      I know that there are "slowdown" programs available for Win98, because I've seen someone using one to play an old game, but I don't have a name or place for them.

      (This reminds me of the time when I was playing Zelda on a DOS Game Boy emulator on a DX-80, and I cheated on a difficult part by turning off Turbo for slow motion :)

    • We've benchmarked VMWare at work and it uses the real CPU speed of the host machine. There's a slight RAM hit, and video benchmarks are completely out, but the raw CPU is running at regular speed. Hence, no speed hit to speak of for many CPU intensive tasks.

      Don't get me started on the network performance though - I think it emulates a 10Mbit connection, and even that's being generous.

    • I've seen this come up a few times in this thread, without, apparently, someone posting the obvious:

      if you want to run an old DOS game on new PCs and it runs too fast, get moslo [hpaa.com].
  • VirtualPC / Linux (Score:2, Interesting)

    by Bert64 ( 520050 )
    Wasn`t there a version of VirtualPC for running RedHat a while ago?
    Why doesn`t someone create a clone of em86 for ppc/linux, and possibly run ppc/linux under a virtual machine in OSX (ppc cpu`s are designed to be able to virtualize themselves.. unlike x86)
    The whole system would be far more performant if 90% of it were ppc native, and only a small subset of applications which are only available as binaries, were running under emulation, and it would show up a major disadvantage of closed source software.
    • I've got VirtualPC 5 on OS X with two virtual machines, one installed with WinXP and the other installed with Mandrake 8.2. Obviously, it takes a year to boot all the way to KDE and get it up and running, and its noticeably slow, but it is not so slow as to be unuseable. For the few times when I actually need access to a Linux desktop, it has been the perfect solution.
  • Incomplete emulation (Score:4, Informative)

    by Bryan Ischo ( 893 ) on Thursday May 09, 2002 @10:23PM (#3494433) Homepage
    One facet of these emulators that is of particular interest to developers, but not mentioned in the article, is the completeness of the emulation. Back when I was working on an OS, I found that there were some instructions that were incompletely/improperly emulated by bochs and plex86. This made it difficult to write some kinds of code.

    I am not sure how VMWare compares with regards to this. When I tried it it seemed to be alot more complete than bochs/plex86, but unfortunately it was missing the "console only" mode that plex86/bochs has.

    Also I corresponded with VMWare who was unwilling to guarantee that their cheaper "Linux guest only" version would be able to run a simple handcrafted OS. I decided that their much more expensive general version was not worth the price, and stuck with plex86/bochs, working around the improperly emulated, or non-emulated, instructions.

    I think it would be interesting to see a comparison of these emulators from a completeness standpoint, not just a performance standpoint. For an OS developer, the former is probably more important than the latter.

    In any case, an emulator is a godsend when you are writing OS code, because otherwise you have to reboot your machine and wait for it to POST each time you change you code rather than just simply firing off a much quicker and easier run of the emulator. Also, the emulators often print out useful messages when there is an unusual processor condition or a processor exception, which can be very helpful in tracking down the cause of lockups. Plex86 was particularly good in this regard at the time that I was using it.

    • I think it would be interesting to see a comparison of these emulators from a completeness standpoint, not just a performance standpoint. For an OS developer, the former is probably more important than the latter.

      I wrote an OS kernel using VMWare. It's actually fairly nice (VMWare, not my kernel :).

      The way I worked it is that I wrote my own stupid little program to snarf the significant ELF sections from a Linux-Elf binary and stick them into a simplistic file format. I wanted to do this all by myself (that was the whole point of the thing), so I wrote my own bootloader in assembly (using nasm, a great tool) which would subsequently load up the image from floppy and jump into the C code. Pretty common stuff as far as I can tell. I got somewhat far along (started trying to figure out how to get the network card working - that would have been really interesting) before other projects caught my attention.

      It's a very nice environment. I don't know anything else about Bochs or Plex86, but VMWare has this thing where you can specify that the floppy device is actually a file. Greatly cuts down the time on the compile/assemble/boot cycle. One funny thing is that it would ask you to file a bug report whenever you managed to triple-fault (which happens a lot when you're just figuring out the nasty GDTs et al.).

      Another nice use for VMWare is setting up four FreeBSD virtual machines, each with 16M of memory and playing networking games (eg, try to write your own distributed filesystem) when you don't have access to private network (eg, on vacation with the laptop - no Internet connection, you get more work done).

      I'm very happy with VMWare. You should definitely try it out, especially if you can manage to get the educational discount.

  • They forgot uml... (Score:2, Interesting)

    by Anonymous Coward
    What about user-mode-linux?
    "User-Mode Linux is a safe, secure way of running Linux versions and Linux processes. Run buggy software, experiment with new Linux kernels or distributions, and poke around in the internals of Linux, all without risking your main Linux setup.

    User-Mode Linux gives you a virtual machine that may have more hardware and software virtual resources than your actual, physical computer. Disk storage for the virtual machine is entirely contained inside a single file on your physical machine. You can assign your virtual machine only the hardware access you want it to have. With properly limited access, nothing you do on the virtual machine can change or damage your real computer, or its software. "

    get it at http://user-mode-linux.sourceforge.net
    or apt-get install user-mode-linux
  • by Schmendrick ( 555091 ) on Thursday May 09, 2002 @10:28PM (#3494448)
    The author says "My PC is a lowly dual Celeron...", but a dual 533 MHz Celeron system is actually faster than a Pentium 4 1.7 GHz system for running VMWare !

    Because, on a dual CPU system, the native OS runs on one CPU and the virtualized OS (running inside VMWare) runs on the other CPU.

    I say this by experience because I tried the two configurations and was very surprised (even if the Pentium 4 had PC266 memory !).

  • by Spencerian ( 465343 ) on Thursday May 09, 2002 @10:29PM (#3494453) Homepage Journal
    ...unless you talk only about emulators for x86 (the topic wasn't too clear about this.)

    For most of the x86 UNIX world, VMWare and Bochs are surely helpful. As a Virtual PC for Mac user, I was dubious about the introduction of VPC for Windows until I realized that trying to install multiple versions of OSes on x86 hardware is a pain in the ass at best. VPC should run very nicely on these systems since the emulation may be less. Unlike VPC/Mac, VPC/Windows shouldn't have to translate the processor instructions from Intel Pentium II to PowerPC G3 instructions, but just shove them at the actual processor.

    VPC/Mac has one thing going over its x86 cousins: it truly emulates a PC, not just an environment rich enough for an OS to operate. I'm starting to speak out of the side of my mouth, not having to use VMWare or Bochs, but there's something to be said of emulation of a whole machine on hardware that was not intended to process these kind of instructions.
    • VPC on Windows *should* perform better than VPC/Mac (assuming roughly comparable processors) but it doesn't seem to. I haven't done a side by side comparison but I have more often found myself waiting for VPC/Win than VPC/Mac. I've only used VPC/Mac on OS 9 and lower so perhaps the fact that the host OS allows it to almost monopolize the processor makes the difference. Also, VPC/Mac has been around for a long time and VPC/Win is still pretty new so VPC/Win code probably has a lot of kinks that still need to be ironed out.
      • VPC/Win cannot simply "shove [instructions] at the actual processor" as the original post suggested. A VPC/Win OS runs in user mode, while a "bare metal" OS runs in privileged mode. In x86, some instructions work (do not cause a fault) in both modes, but *do different things.* In order to properly run a guest OS, a host (like VPC/Win or VMWare) needs to scan the instruction stream and emulate those problematic instructions. The guys at VMWare figured out how to do this(*) with almost zero overhead. But it is not easy, especially with variable length instructions such as pervade the x86.

        (*) Well, I figured it out also, but only after VMWare had shown that it could be done. Before that I would not have tried; I would have written it off as "impossible."
        • Good comments. Again, I was stretching my presumptions of VPC/Windows, so thanks for clarifying.

          It took Connectix three versions to get the Mac version to speed up significantly. VPC/Windows is still new in comparison to its counterparts, so it's a good chance that it's performance will, soon, improve. It HAS to, with all the speed changes on newer hardware.
  • Bochs comes close to the mark but only implements the features of the x86 architecture needed to run specific operating systems. No-one contributes to it, which is a shame, because I can imagine that Bochs could be turned into a cycle accurate simulator with some modern hardware emulations and all the x86 feature set (for example, Superpages were only recently added and are still fundimentally broken). An emulator is the perfect OS debugging tool, it's a shame kernel developers (in particular alternative OS developers) dont embrace it more.
    • As an OS developer I have actually embraced Bochs as a wonderful solution, and it was the most important tool that recently allowed me to write a simple multitasking kernel in under two weeks worth of spare time.

      However, I just wish they'd be more responsive to bug reports. A problem I reported back while I was working on that kernel has just been ignored; in the end I worked around it (a different implementation prevented the problem that caused it from occurring), but I still wish they'd just read the report, which I'm sure included more than enough information for someone who's even only remotely familiar with the code to fix the problem in a couple of minutes.
  • people should try to make Cygwin [cygwin.com] better. If it was just a bit faster & just a bit better polished, why would you need a PC emulator?

    I'm using Cygwin all the time (too lazy to reboot)...
  • VPC for development (Score:1, Informative)

    by Anonymous Coward
    I do network app development that requires multiple machines. Using VPC I can run a Netware server, RedHat 7.2, and Win2K on my Win2k laptop at the same time. It is simply the best way when you can't have a lab full of equipment. I also run VPC on my OS X powerbook on occaision. The Mac version can use multiple processors...not sure about the windows version.
  • by antdude ( 79039 ) on Thursday May 09, 2002 @11:07PM (#3494562) Homepage Journal
    I work for Symantec in testing Norton Internet Security products, and we, testers, use it all the time. It's a great product. I used to do Web testing, and it was great for that too. :)

  • The sad part (Score:4, Informative)

    by clem.dickey ( 102292 ) on Thursday May 09, 2002 @11:16PM (#3494585)
    The sad part is that x86 self-virtualization is so difficult in the first place. It would be much easier if user-mode accesses to control registers were disallowed. How hard could that be for Intel? Or for AMD?

    Several other (less popular architectures) are much easier to virtualize: S/370, M680x0 and PowerPC e.g. Motorola just missed the target with the original 68000 - eight privileged status bits were user-readable. They fixed that in the M68010.

    The x86 situation benefits only VMWare, which figured out how to virtualize x86 despite Intel. And VMWare still has trouble; it can handle only specific OSes in guest machines. By contrast VM/370 (or whatever IBM is calling it these days) can handle virtually any guest OS.
    • Re:The sad part (Score:2, Informative)

      by kma ( 2898 )
      The sad part is that x86 self-virtualization is so difficult in the first place. It would be much easier if user-mode accesses to control registers were disallowed. How hard could that be for Intel? Or for AMD?

      Alas, you would have to change enough stuff that it wouldn't feel like the x86 anymore. The canonical example of the x86's unvirtualizability is the eflags register. This register is a jumble of supervisor state and user state; for example, condition flags set by arithmetic operations appear there, as does the flag that enables/disables external interrupts.

      There's an instruction, POPF, that replaces the contents of the eflags register with the top of the stack. If user-level code mucks with supervisor flags, the hardware silently ignores these attempts, with no fault to give a would-be virtual machine monitor a hint that something fishy is happening. That's a problem for VMware; every time the linux kernel executes one of its restore_flags macros, it performs a POPF that attempts to alter the state of the interrupt flag. VMware needs to notice this somehow; currently, the hardware provides no help.

      This POPF problem could be solved by creating some sort of processor mode, analogous to the virtual 8086 mode used by windows DOS boxes, that makes POPFs that attempt to modify the interrupt flag from user mode trap. However, there are other "unvirtualizable" attributes of the x86 that go a bit deeper.

      And VMWare still has trouble; it can handle only specific OSes in guest machines. By contrast VM/370 (or whatever IBM is calling it these days) can handle virtually any guest OS.

      There is some truth to this. Malicious x86 guest OS'es will probably always be able to tell that they are running inside a VM.

      Still, it gets me down when people imply that VMware is some goofy hack that happens to work with Windows and Linux. By design, nothing prevents us from running more exotic OSes. The list of random OS'es that work in VMs is, in my biased opinon, pretty impressive: Plan9, BeOS, AtheOS, Solaris, OpenStep, QNX. Check out vmware.guest.misc [vmware.com] for more.

      Keith Adams (partisan VMware mts)
  • I was doing some testing of Bochs recently to see how well I can expect win95 to perform on my PS2. All I can say is that it's not worth it until the SVGA emulation improves a great deal. I got win95 running ( slowly ) under Bochs and tried playing simtower. Needless to say the SVGA support wasn't there to do that.

    I used a x86 P6-2 ( PII ) @ 266Mhz since it has a simalar clock speed for my tests. However remember that PS2 arch is very unfriendly to code written for general purpose arch -- especially when emulated. The short of it: You'll be able to run DOS on PS2, but prob not able to play tie fighter.

    I'll post somewhere how the actual PS2 test goes when my US linux kit gets here. I'm very interested in running MSDOS games on PS2. =)
  • Great!! (Score:5, Funny)

    by TitaniumFox ( 467977 ) on Friday May 10, 2002 @12:27AM (#3494835) Journal
    Hmm...VMware...

    (click) [VMware open]
    (click) [VMware open]
    (click) [VMware open]
    (click) [VMware open]

    "Huh, what? Wait a sec. Just a few more clicks, and I'll have a beowulf cluster of these..."

    (click)
    (click)
    (click)
    (click)...

  • I personnally would go for VMware, I just love it. It's flexible, I can create an image file, copy it to another folder, rename the new image and modify it at will, change settings, ram, network bridging type, backup the image files, restore them or copy them to another system easily. I don't know much about virtualPC because I stopped when I found out it wasn't as flexible as VMware for moving image files from machines to machines and duplicating existing images, if it wasn't in the drop down I had to go thru hell to modify the settings to make the other machines pop up. It might have been me misusing it, in that case I'd say it wouldn't be as user friendly as VMware.

    The idea of copying many machines or duplicating is for example, you don't want to buy their GSX server application (if I recall the name correctly) and you need many low-speed machines running different OS. In my case I did a test, installed win2kpro on a machine with vmware, and then ran 2 similar freeBSD virtual machines and 1 linux, for the freeBSD each had a different static IP address, doing completely different functions, but all with the same basic installation and users account. I could have installed one freebsd machine and put all the services on it, but for experimenting and uptime purposes, I could just duplicate an image, test my things and see if it works or crash, and if I do something really evil (since I am a newbie with freebsd) I can revert back to my previous snapshot. All this without rebooting the main machine, or using ghost and requiring a fat32 partition or another drive, and this and that. I just LOVE vmware, it's cheap, it's good, it's efficient for most work (exept don't think you can play quake 3 on a virtual windows machine:) ) and it runs just great on my Thunder K7. Now if I want to test stuff I don't always have to use my standard testbenches, I can do 80% of the experimenting job on my main PC.

  • Recursion (Score:2, Funny)

    by CFN ( 114345 )

    I install VMWare on my OS
    I install an OS in that VMWare
    I install VMWare on that OS
    I install an OS in that VMWare
    I install VMWare on that OS
    I install an OS in that VMWare

    Its like looking into a mirror...

Neutrinos have bad breadth.

Working...