PDA

View Full Version : VMware beta: Run Windows apps on a Mac


Fredl
12-25-2006, 03:29 AM
VMware "Fusion" beta software has been released. This allows you to run apps from just about any operating system on a Mac.

Example: On a Mac laptop, you can run Windows applications. VMware says it can run "any" Windows application on a Mac. It can also run Linux applications.

The Mac must be one of the new Intel based Macs, such as the MacBook laptop or Mac Pro desktop. Older PowerPC based Macs can't do it.

News article:
http://www.macworld.com/news/2006/12/22/vmware/index.php

Link to vendor:
http://www.vmware.com/products/beta/fusion/

I am very happy about this, as now we can run our Mac and Windows applications at the same time on one machine. If you have a 64-bit Mac with an Intel Core2duo processor, you can run 64-bit Windows applications. It is quite remarkable.

mech7
12-25-2006, 02:48 PM
yeah but as it is a virtual machine does it have any hardware video acceleration as with me vmware is kinda useless because it has so much lag with many apps.

Szos
12-25-2006, 03:09 PM
Running it, and running at a speed that is tolerable are 2 completely different things. I have no doubts that you can open up Word and Excel and other Windows programs, but a graphics-heavy, CPU-taxing application like MAX running at an acceptable speed is a different story altogether.

I am not a Mac user, but why wouldn't you just use that BootCamp thing that Apple came out with - in which you are not using a VirtualMachine, but running an actual copy Windows natively. (or maybe that BoothCamp thing never was fully native?)

kraal
12-25-2006, 04:22 PM
if you need an intel mac i see no point in using a Virtural memory way to launch windows apps .... heck with out an intel mac i can use VPC ... but bootcamp works just fine for me

oh but now i see the difference this runs them with out having to reboot so you can run them side by side... well that is worth looking into

TopherMartini
12-26-2006, 02:26 AM
Running it, and running at a speed that is tolerable are 2 completely different things. I have no doubts that you can open up Word and Excel and other Windows programs, but a graphics-heavy, CPU-taxing application like MAX running at an acceptable speed is a different story altogether.

I am not a Mac user, but why wouldn't you just use that BootCamp thing that Apple came out with - in which you are not using a VirtualMachine, but running an actual copy Windows natively. (or maybe that BoothCamp thing never was fully native?)
You make some very valid points, but I think the VMWare/Parallels type of solutions are great for convenience.

Boot Camp is a great solution for many Windows tasks on a Mac, but it means stopping what you're doing and rebooting to continue what you're working on under Windows.

This whole process is great for quick tasks and very convenient for many workflows (especially involving Windows-only apps :D). It's totally agreed that a multi-hour Maya session probably wouldn't be very fun under Virtualization, but at least you have the opportunity to choose.

ngrava
12-26-2006, 03:47 AM
I think there is a bit of confusion going on here about what this product is. Vertualization, as opposed to emulation, simulates the OS "Environment". Emulation has to simulate the entire computer CPU and all. Vertualization is many times faster because it's not translating one set of CPU instructions into another. It's simply supplying a layer underneath the OS that translates system calls into another system. This is also similar to how Cygwin or MinGW works. I run Max on Parallels Desktop for Mac (a competing product) on my MacBook and it's surprisingly fast. In fact, After Effects runs better under Vertualized windows then the Mac version does under Rosetta. I can even run (and use with ease) Z-Brush 2. One of the things that makes this possible is that Parallels provides a set of Windows pacific drivers for the Intel Mac hardware so it's actually not even translating hardware calls, Windows just speaks directly to the Mac hardware. I don't really know enough about VMware to know if that's the case but I suspect that it is. Basically, Vertualization is a form of emulation but way faster and smoother because it's Intel code running on an intel machine.

Szos
12-26-2006, 01:58 PM
I think there is a bit of confusion going on here about what this product is. Vertualization, as opposed to emulation, simulates the OS "Environment". Emulation has to simulate the entire computer CPU and all. Vertualization is many times faster because it's not translating one set of CPU instructions into another. It's simply supplying a layer underneath the OS that translates system calls into another system. This is also similar to how Cygwin or MinGW works. I run Max on Parallels Desktop for Mac (a competing product) on my MacBook and it's surprisingly fast. In fact, After Effects runs better under Vertualized windows then the Mac version does under Rosetta. I can even run (and use with ease) Z-Brush 2. One of the things that makes this possible is that Parallels provides a set of Windows pacific drivers for the Intel Mac hardware so it's actually not even translating hardware calls, Windows just speaks directly to the Mac hardware. I don't really know enough about VMware to know if that's the case but I suspect that it is. Basically, Vertualization is a form of emulation but way faster and smoother because it's Intel code running on an intel machine.

I *think* the difference between Virtualization and Emulation is linquistic... I really don't think there is a true difference between the two except for the wording.

You say that a VM:
"It's simply supplying a layer underneath the OS that translates system calls into another system"

But that is exactly what an emulator does. When I run a Genesis emulator on my PSP, it is doing exactly what you say - runs software between the Genesis OS/ROM and the PSP hardware.

The reason that a VM can be so fast now is because they both run on essentially the same hardware... and with multi-cores and multithreading they can run dramatically faster than in the past.

amfantasy
12-26-2006, 02:22 PM
This sounds like wine......www.winehq.com

mummey
12-26-2006, 06:39 PM
I *think* the difference between Virtualization and Emulation is linquistic... I really don't think there is a true difference between the two except for the wording.

You say that a VM:
"It's simply supplying a layer underneath the OS that translates system calls into another system"

But that is exactly what an emulator does. When I run a Genesis emulator on my PSP, it is doing exactly what you say - runs software between the Genesis OS/ROM and the PSP hardware.

The reason that a VM can be so fast now is because they both run on essentially the same hardware... and with multi-cores and multithreading they can run dramatically faster than in the past.

Almost there. There _are_ differences between virtualization and emulation, at least in the ideal sense.

Emulation can mean fooling the software into thinking its running on a different architecture than it is. Virtual PC, an app that allows PPC owners to run Windows, would be an example of emulation.

Virtualization is different in that its not having translate instructions from one architecture to another. Parallels and VMWare are examples of software that enables virtualization. The software instructions themselves are never changed; they are instead applied to a "virtual computer" inside the computer.

Instruction translation now also exists without emulation. You see this in the Rosetta program offered by Apple. It takes instructions from PPC programs and translates them into the equivalent Intel instructions, effectively making the PPC program run as if it was made for Intel.

Szos
12-26-2006, 07:37 PM
The software instructions themselves are never changed; they are instead applied to a "virtual computer" inside the computer.


Yea, but the instructions for the "virtual computer" will have to be changed at some point so the core hardware can actually understand them.... be it the entire OS or just an application. You can't just say they are never changed, because those instructions have to eventually leave the virtual world and hit the physical CPU.

I think the only real difference is that when people say VM, they probably also mean not just the OS and some apps, but some/most of the hardware (like a virtual CDROM or virtual printer).

I go back to my PSP example - there are emulators that let you run the AmigaOS on it. The entire OS is emulated - including booting off floppies and flipping disks and loading Amiga apps. To any apps that you run on it, it is entirely transparent - if you try to save something, you are actually saving it to a virtual floppy disk. How is that any different than what people are calling VMs now?

I think the differences are totaly minutia, but the technology is quite facinating none the less.

ngrava
12-26-2006, 08:41 PM
Yes, but I'm not talking about Virtual Machines and emulation. What I was talking about was Vertualization which is actually used in the industry to indicate a difference between emulating a full hardware and emulating just the OS layer. There is a difference. Yes, it's all emulation but it would be incorrect to say that this is the same thing as Virtual PC which has to do full emulation of an Intel architecture on top of PowerPC hardware. I don't mean to have a war about semantics.
Yes, this is the exact same thing as Wine under OSX (called "Darwine"). In fact, there are several other open source projects that do exactly this same thing. Even one or two that are actually based on wine. Parallels and VMWare are just the most known because they are commercial and thus advertise a lot more.
And finally... yes, at some point the software has to "translate" the OS calls into Native OSX. But, this is actually going on all aver the place in many systems and in many different ways. OS's like Windows, Linux and OSX are filled with layers of translation. Common Video drivers are translation layers between the actual video hardware calls and the OS's video API like Direct-X, Open GL, ect. To many layers is obviously not such a great thing but with todays hardware, you barely notice it.
So, really this vertualization V.S. Emulation semantic war is really just nonsense. Vertualization is simply faster because it's not emulating the base hardware which is what makes Emulation so slow.

86point5
12-26-2006, 09:40 PM
You can't just say they are never changed, because those instructions have to eventually leave the virtual world and hit the physical CPU.
[snip]
How is that any different than what people are calling VMs now?


The difference is that with something like emulation, you are emulating a processor that takes a different instruction set. The assembly code for PPC is different from x86, is different from 6502, etc. When your applications run, everything breaks down into machine code at some point. With virtualization, the machine code for the VM and the host application are the same type - so you don't have to incur the overhead of emulating a foreign CPU architecture.

With virtualization, you are still emulating some stuff (usually video card, sound card, storage) but the processor architecture is the same (you are still running x86 code directly on the x86 processor.) This allows it to be faster than when you need to emulate the entire processor (plus peripherals).

Zarf
12-28-2006, 08:03 PM
The difference is that with something like emulation, you are emulating a processor that takes a different instruction set. The assembly code for PPC is different from x86, is different from 6502, etc. When your applications run, everything breaks down into machine code at some point. With virtualization, the machine code for the VM and the host application are the same type - so you don't have to incur the overhead of emulating a foreign CPU architecture.

With virtualization, you are still emulating some stuff (usually video card, sound card, storage) but the processor architecture is the same (you are still running x86 code directly on the x86 processor.) This allows it to be faster than when you need to emulate the entire processor (plus peripherals).


Not to mention that virtualization support is now part of both AMDs and Intels CPU hardware.

http://en.wikipedia.org/wiki/X86_virtualization#Hardware_support_in_x86_processors

Cheers,
Xarf

CGTalk Moderation
12-28-2006, 08:03 PM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.