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."
Comparison to original OS? (Score:1, Interesting)
Re:Comparison to original OS? (Score:4, Insightful)
It acts like a...well, a virtual PC.
Re:Comparison to original OS? (Score:1)
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.
Re:Comparison to original OS? (Score:1)
Bochs (Score:1)
Scratching my itch (Score:3, Informative)
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)
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.
Re:Apples and oranges (Score:5, Informative)
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.
"Didn't read the article" alert! (Score:3, Informative)
Re:Apples and oranges (Score:3, Funny)
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)
Re:Platform (Score:1)
Win9x doesn't support dual PROCS!
Re:Platform (Score:2)
Re:Platform (Score:2)
A high-end low-end system???
Ahhhh.... Brings back memories.... (Score:1, Insightful)
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.
Re:Ahhhh.... Brings back memories.... (Score:2)
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. ;-)
So I was 19 years ahead.Re:Ahhhh.... Brings back memories.... (Score:1)
A blast from the past!
bochs vs plex86 (Score:2, Insightful)
How Correct (Score:3, Funny)
More advanced than that (Score:2)
Re:bochs vs plex86 (Score:5, Informative)
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)
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)
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.
What is he trying to say?? (Score:2, Interesting)
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?
Re:What is he trying to say?? (Score:1)
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...
Re:What is he trying to say?? (Score:1)
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.
Re:What is he trying to say?? (Score:2)
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).
VMware is a different kind of product (Score:1)
Re:VMware is a different kind of product (Score:2)
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.
A few things to note... (Score:5, Informative)
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.
Re:A few things to note... (Score:2, Informative)
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.
Re:A few things to note... (Score:2)
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.
Re:A few things to note... (Score:3, Informative)
Re:A few things to note... (Score:2)
Re:A few things to note... (Score:2)
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.
Re:A few things to note... (Score:2, Informative)
Re:A few things to note... (Score:2)
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.
Re:A few things to note... (Score:2)
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.
Re:A few things to note... (Score:2)
VMWare tips (Score:5, Informative)
- 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.
Re:VMWare tips (Score:2)
Re:VMWare tips (Score:3, Interesting)
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
Re:VMWare tips (Score:2)
Re:VMWare tips (Score:2)
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.
What happened to win4lin? (Score:3, Interesting)
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.
Re:What happened to win4lin? (Score:1, Informative)
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.
Two thumbs up for Win4Lin (Score:3, Informative)
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.
From a current win4lin (pissed) customer (Score:2)
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).
Re:From a current win4lin (pissed) customer (Score:2)
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.
Re:From a current win4lin (pissed) customer (Score:2)
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
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.
FUD v. PROP (Score:2)
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.
Re:From a current win4lin (pissed) customer (Score:2)
Instead of letting you to test a 30 days trial version of win4lin - you got an option to buy and return the product within 30 days. Its also clearly mentioned on their win4lin 4.0 press release...
Another thing - Win4Lin (as the parent poster wrote) is very good for a niche of users - only win9x/ME, only single-byte versions (latin-1) with some "hackish" support for Thai Windows 9x, and the speed is really not something to brag about it - sure, it looks like it's a bit faster then VMWare, but at least with VMWare I can install whatever OS I want..
Re:What happened to win4lin? (Score:2)
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>
Re:What happened to win4lin? (Score:2)
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.
Re:What happened to win4lin? (Score:2)
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).
Re:What happened to win4lin? (Score:2)
Virtual PC (Score:2)
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
Re:Virtual PC (Score:2)
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.
Look at rdesktop (Score:2)
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.
Re:Look at rdesktop (Score:2)
Re:Virtual PC (Score:2)
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!
Re:Virtual PC (Score:2)
A better alternative is to buy a second cheap PC (second hand, almost anything available will do to outperform virtualPC
I've been using Virtual PC for a little while... (Score:4, Informative)
Goes to show you can emulate the hardware completely and still get good results. Bochs has a long way to go.
Re:I've been using Virtual PC for a little while.. (Score:2)
Also, it's kinda fun to run (a real) XDarwin as a server for a virtual FreeBSD box. Works fine.
OT: Slowing down MSDOS games for faster machines (Score:3, Informative)
You should be able to d/l the programs from:
http://www.elderscrolls.net/
I've found that bochs could actually help playing old MSDOS games because of this... if it's SVGA BIOS emualtion was working for these games.
Re:OT: Slowing down MSDOS games for faster machine (Score:2)
Re:I've been using Virtual PC for a little while.. (Score:2)
Really? I did the opposite and got my emulated RedHat to use XDarwin as it's window server via the network. Suddenly, it feel like native speed! I guess that might just be because the emulated x86 has less to do but it's a good trick to speed up emulated X-Window based unixes.
Re:But with *sound*? (Score:2)
Playing classic pc games under Bochs? (Score:2)
OT: Scorched Earth, slowdown (Score:2)
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
Not as slow as you think... (Score:1)
Don't get me started on the network performance though - I think it emulates a 10Mbit connection, and even that's being generous.
Re:Playing classic pc games under Bochs? (Score:2)
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)
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 run Mandrake 8.2 under VPC 5 (Score:2)
Re:I run Mandrake 8.2 under VPC 5 (Score:2)
Incomplete emulation (Score:4, Informative)
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.
Re:Incomplete emulation (Score:3, Informative)
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)
"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
Dual 533 MHz Celeron vs. Pentium 4 1.7 GHz (Score:3, Insightful)
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 !).
Re:Dual 533 MHz Celeron vs. Pentium 4 1.7 GHz (Score:2)
Re:Dual 533 MHz Celeron vs. Pentium 4 1.7 GHz (Score:2)
If the application only uses a single thread, then only one processor is going to be running that code at any given time.
Perhaps in a research OS with research compilers it would be possible to work around some of this (calculate parallelizable tasks).
Actually, all the parent post said was that Win2k has stupid multiprocessor support. If your system load is less than 2, it's just stupid to swap an application from CPU to CPU, getting 50% load on each. Then you pay the expensive price of wiping out the page cache all over for every switch.
It'd be better to keep scheduling a given program on a given processor if at all possible. Programs should have intelligent affinities in a good SMP OS.
This IS an odd comparison... (Score:3, Informative)
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.
Re:This IS an odd comparison... (Score:2)
Re:This IS an odd comparison... (Score:2)
(*) 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."
Re:This IS an odd comparison... (Score:2)
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.
None are any good for modern OS dev (Score:2)
Re:None are any good for modern OS dev (Score:2, Interesting)
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.
Re:None are any good for modern OS dev (Score:2)
Maybe instead... (Score:1)
I'm using Cygwin all the time (too lazy to reboot)...
VPC for development (Score:1, Informative)
VMware is excellent for Software Quality Assurance (Score:3, Informative)
The sad part (Score:4, Informative)
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)
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)
Re:The sad part (Score:2)
VMWare only claims to support Windows, DOS 6.0, some Linuxes and FreeBSD as guests. Caldera Linux is noticeably absent from the list of supported guests. (It is supported as a host.) No mention of OS/2 or VxWorks that I can see. Maybe they work, but VMWare won't say so. Newsgroup messages say that VMWare had OS/2 "mostly working" as a guest. But if they were able to fully emulate a PC, it swould have simply worked.
The spec sheet for ESX server does say that other OSes "may be supported; please contact VMWare with any specific requirements." I don't fault VMWare for such a tentative position. A self-virtualizing x86 is like a singing pig. The wonder is that it exists at all.
I am a scary man... (Score:2)
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)
(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)...
hahahaha, mod him up! (Score:2)
VMWare Vs VirtualPC (Score:2)
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)
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...
Re:question for VMWARE users (Score:2)
You can use "bridged networking", where the virtual PC O/S either has its own IP address (what I do) or NATs through the host machine's address.
You can also set up "host only" networking where the virual PC O/S can only talk to the host O/S, and is not visible on the local network.