Slashdot Mirror


Review of VMWare Competitor

nontrivial writes "Linux Medical News has a decent review of Win4Lin, a MS Windows emulator. The article and submissions also touch on other solutions for having to run Windows applications. I use Win4Lin daily, and I must say it is rather spooky how well it works. The review doesn't spell it out, but Win4Lin 2.0 does include sound and serial and parallel support, and so far I've had no problems with the beta. It runs Windows in a SDI type interface, comes with DOS emulation, and can be run in many odd resolutions if you don't like running it in it's own virtual console. The bad news is that it technically requires a licensed copy of Windows (95, 98, etc, not NT), it is intended for business applications (so no DirectX support for example), and only TCP/IP networking is supported within the emulation. But overall it's stable (no more crashes than MS causes, and it doesn't take the whole box down when you see blue), it's fast (native speed), and it's cheap ($35). IMHO it's the best transition software I've used."

2 of 159 comments (clear)

  1. Re:Comparison with VMWare by barracg8 · · Score: 5
    Okay, I'll step up and give this one a go. Here is a pretty complete summary of what VMs are all about, and a guess at how Win4Lin works differenly (based on their white paper):

    Most modern processors offer 2(+) modes of operation, which break down to Kernel mode and User mode. In kernel mode you have all the instructions that you have in user mode, plus a few more (sensative stuff, e.g. setting up virtual memory tables). An OS expects to start running in kernel mode, as it expects to run directly on the hardware.

    A VM runs the enite OS in user mode. This means that whenever the OS tries to do any real work, it will try to execute a kernel mode instruction, and as it is running in user mode it is not permitted to execute it, and an exeption occurs. The VM should trap this, produce the appropriate behaviour, (eg, if the OS tried to read a byte in from the keyboard buffer it sould be passed a character from the VM applications event queue), and return to the OS code as if the instruction had be executed in hardware as normal. Clear? :-)

    Also, in real machines there is often memory mapped IO, so if I write to a particular memory address I expect graphics/text to appear on the screen. The VM should produce appropriate behaviour for that.

    So what VMware does:

    • It provides software such that programs that are designed to run in x86 kernel mode (ie, an OS) can be run in x86 user mode, and whenever a kernel mode instruction turns up in the code it kindof 'virtually executes' it.
    • It provides low level emulation of memory mapped IO, such that standard Windows VGA graphics drivers will work, as it is actually emulating the graphics hardware.
    Right. Now how Win4Lin works.

    In windows, put simply you have three things:

    1. A system call interface
    2. A set of APIs that run on this
    3. The hardware drivers
    The VMware approach to running window is: to emulate the x86, and the standard hardware devices, e.g. VGA graphics card, then run the stanard windows kernel and device drivers on to of this VM, and to run the Win32 API on top of them as usual.

    With Win4Lin, they provide their own implementation of the Windows system call interface (equivalent in function to the Windows kernel) to run within Linux (I think this is done in the Linux kernel, as it it a replacement interupt handler), and they provide their own drivers for windows to use, eg graphics cards drivers to make calls to X, rather than to try to write directly to a VGA graphics card. They then run the Win32 API code directly onto of their 'kernel', not on the standard windows one. It cuts out a couple of layers, a lot of unnecassary exceptions, and some inefficient device emulation out of the picture, that VMware uses.

    Hope this helps.

    cheers,
    G

  2. I have both... by Spoing · · Score: 5
    ...and both are worth it.
    1. VMWare - Runs almost any x86 OS. VMs can be created on Linux or NT, some rumor of BSD folks using it -- though I'm not certian. Patches the kernel by using a set of loadable modules. Very compatable. Check the news groups: vmware.*.

      Win4Lin - Only Win9x at this time. Only runs on Linux. Fairly compatable. Sound support added to beta releases. Very low memory footprint. Patches kernel directly; no module support. Check the mailing lists: www.trelos.com.

    Neither support advanced video or specialized hardware. In the case of Win4Lin, the sound support is only available in the beta and is not entirely stable or complete. (I could not record with it, for example, but that might be my fault.)

    The kernel patches are available, but aren't the same. Because of that, your kernel may/may not be supported by either VMWare or Win4Lin. If it's not supported, these programs won't run! For bleeding edge kernel releases, use VMWare. It is more likely to have kernel modules available when you need them. There are security issues since these are propriatory extentions, though the kernel modifications are available as source.

    Having said that, I intend to buy two more copies of Win4Lin for my family as gifts. For business use, I would be more cautious and prefer VMWare unless Win4Lin worked with a specific Windows-only application and memory was tight.

    Both have full-featured, time limited, trial versions available for download, so the risk is minimal.

    As always, if there's a Linux software available...that gets the nod over VMware or Win4Lin.

    --
    A firewall can not protect you from yourself. Turn off what you do not need. Do not use the firewall to do your work.