April 11, 2006
Virtualization Vs. Emulation
“Virtualization” just sounds like a buzzword. This was already possible for the most part with emulation; the only difference is that emulation is a little slower (and a little less accurate, although Virtual PC seemed pretty accurate — and RISCs are good at emulating more complicated processors). And since Apple had switched over to a lot of PC style hardware, Windows running on OS X already had pretty good access to much of the hardware.
Anyway, we will see virtualization going both ways. My guess is we will see an explosion of it on Windows. There will probably be more ways to run OS X on Windows than to run Windows on OS X in the not too distant future. The only catch of course will be that to run OS X on Windows you will probably need a dumped copy of a Mac ROM.
At the moment, I would rather stick to Windows rather than make my life more complicated than necessary by changing over, even with the ability to boot Windows. When the ability to run OS X fast from within Windows comes around, I’ll jump on that. I may try the PearPC emulator to emulate a PowerPC first — although it seems a bit silly at this point. I’m sure PearPC, as an open source project, will be one of the emulator-type projects to support Intel-based OS X (which will speed it up enormously). This is certainly one downside from Apple’s point of view — while before the Windows emulators were much stronger on Mac than vice versa (or at least the one mainstream one), now it will be pretty even. I still have a good Mac OS 8 (or 9?) emulator on here (somewhere), and it was free. I wonder if that guy will do this easy emulator/virtualization project. It’s still not easy — it requires some (low level) programming expertise for sure — but not having to emulate the CPU, and having so much hardware compatibility, should make it a cinch by emulator standards.
When I get the new computer, I will have to dig up some emulators. I wonder how MAME is coming along. Always good for a game of Donkey Kong Jr. Or Mortal Kombat, or whatever…I’m sure it’s pretty advanced by now. The Amiga emulator was neat, and of course the Apple IIGS one was a must. (One of the best Apple IIGS emulators is only on the Mac, not surprisingly. It’s called Bernie ][ the Rescue.) There are also quite of few emulators only on Windows, but that’s not really the end of the world.
The real question for me with right-clicking would be with dual-booting. With dual-booting, there’s no emulation or virtualization software layer that could trap keystrokes or clicks and convert them — if you know what I mean… So there would almost have to be a Windows mouse driver installed just to convert control-click into a right-mouse-click. I’m sure eventually those wrinkles will be ironed out, but in the meantime it’s probably more hassle than I need.
Speaking of virtualization, what about Linux in Windows, or Linux in OS X, etc.? I wonder if there is Windows within Linux? I sort of figured that was what the virtualization stuff was about, but I didn’t see that. I’m not sure the author of that article really gets “virtualization.” I would classify Wine as an emulator, not a virtualization thing, because what it does I believe is convert Windows calls to Linux calls. In other words, programs really are running under emulation. And they will look and act differently, even though the CPU is the same.
In the Wine FAQ, it says, “Wine Is Not a (CPU) Emulator.” So the acronym is one of those geeky recursive things. But the reason they put “CPU” in parentheses is because it does emulate the Windows API.
Here’s what it says. Wine “consists of a program loader, which loads and executes a Windows binary, and a set of libraries that implements Windows API calls using their UNIX or X11 equivalents.”
In other words, if OS X had something similar to Wine, it would make Windows applications run on OS X but look more similar to regular OS X applications because it would convert the Win API to the Mac API. It would also break quite a few things, as I believe Wine does in Linux.
But Wine is basically an API emulator. (And in that case, even including the word “virtualization” just confuses things I think — whether or not it belongs there.)
Anyway though, thanks for the interesting link.





