MS, Intel "Goofed Up" Win 7 XP Virtualization
clang_jangle writes "Ars Technica has a short article up describing how Microsoft and Intel have 'goofed up' Windows 7's XP Mode by ensuring many PCs will not be able to use it. (And it won't be easy to figure out in advance if your PC is one of them.) Meanwhile, over at Infoworld, Redmond is criticized for having the 'right idea, wrong technology' with their latest compatibility scheme, and PC World says 'great idea, on paper.' With Windows 7 due to be released in 2010, and Redmond apparently eager to move on from XP, perhaps this is not really a 'goof' at all?"
I thought it was leaked that it would be released this year?
AMD has placed this support in almost all of their recent chips, but Intel has been more stingy with it.
It's necessary to use 64-bit guests in Virtualbox, but VMWare can make due without it.
Do what thou wilt shall be the whole of the Law
I suppose it depends on your definition of "difficult" -- it's not particularly hard to find out if your processor supports virtualization extensions.
The Ars Technica is terrible -- it implies that it's a complete mystery why a virtualization system would require processor virtualization extensions to function.
I'm also not entirely sure it's reasonable to call a logical design decision you disagree with a "goof". I would hazard a guess that requiring virtualization extensions is intentional, not a mistake.
The reason I am confused is because this would have been great for the Vista transition, and seems to be old technology. Over ten years ago Apple included this capability in OS X, allowing OS 9 application to run in the classic environment. Apple also included bundles to allow the transition from 68K to PPC, and later PPC to Intel. Why did MS not do the same, and why are the including a hack solution at the last minute.
"She's a scientist and a lesbian. She's not going to let it slide." Orphan Black
I don't understand why people are making such a big deal about XP Mode. It is meant for enterprise systems that have millions invested in software that is difficult to convert. 99.9% of people are not going to be using XP mode.
When running Linux, open up a terminal and run this: /proc/cpuinfo | grep -q svm || cat /proc/cpuinfo | grep -q vmx`; then echo Yes; else echo No; fi
echo -n "Does my cpu support virtualizaiton? "; if `cat
Another issue you may have is if your system has the virtualization functions disabled in BIOS. Some laptops do this, and have no way to turn them on. My Dell D820 works fine.
Why is it so hot? Where am I going? What am I doing in this handbasket?
This is a very critical problem for Microsoft. I have heard people who would never have even looked at a non-MS solution two years ago whispering about Macs and Ubuntu. If migrating is going to involve a vast amount of unscheduled pain, reinstallation, down time, and retraining, do you migrate to the next level of the company which is screwing you or look for an alternative?
Seven has to solve the problem of legacy apps that don't run. If it doesn't, the Mexican standoff will continue with Seven in Vista's place, and one or two Fortune 100 shops throwing their hands in the air and switching FOSS could start a stampede. The unlikeliness of that, while high, decreases just a bit for every day the current situation persists.
Brackets contain world's first nanosig, highly magnified:[.]
That suite of applications that you're testing doesn't accurately represent the target population for XP emulation.
XP Emulation is primarily geared towards businesses with legacy/custom business applications which have not been re-written for Windows Vista/7. Not to mention, some of those vendors for those business applications will charge large hefty upgrade fees to get their software compatible with the newest versions of Windows.
The troll with karma.
What I wonder is why there's still NEW processors coming out from Intel WITHOUT the VT-x extensions? These extensions have been around at least since the original Core Duo days; shouldn't they be standard on all Intel CPUs by now?
I boggled when I learned there were still new CPUs being sold without the extensions. It's not like it's something that's hard to implement; the work is already done.
They will have to either replace legacy software (which is difficult for some clients) or buy a high-end computer just to get a decent upgrade for Vista/XP.
Or just stick with XP.
Ummm, compared to where you're at, just about any dual core proc. Are you really concerned about price? Just get a C2D, ASUS, 4GB ram. That's bang for the buck. Going with 8GB of ram you must really be planning to go all out with the vm's. Most people will tell you that you only really need enough ram so you don't swap with the vm's, otherwise it's overkill.
But, if you're going 64bit linux and plan to keep this one as long as you've kept your last one, maybe 8GB is the way to go.... I am running 64bit linux with XP, Vista, and win7 in VMware right now, and it's just fiiiiiiiiine......
Flappinbooger isn't my real name
The parent isn't insightful, because he erroneously believes that a new machine guarantees that virtualization will be available. Not so.
Buy a $3000 Sony Vaio-Z, for example, and despite it having a chipset and a brand spanking new Core 2 Duo CPU that both supports VT-x, the manufacturer has chosen not to give the users the ability to turn it on in the BIOS, so it doesn't help one bit.
(For those of you who actually read all three linked articles... or is that, all two?)
Seriously, this Windows 7 stuff is getting silly. That Slashdot isn't a pro MS site is fine. How about more Linux news, less MS news then?
It gets tiresome to see all these bullshit "OMG Windoze sux!!!1111one" stories any time a new version is coming out. Just leave off it already. If you don't like Windows 7 that is totally fine, but that isn't any reason to try and spread FUD about it. Make no mistake, that's what all this is too. They are trying to find minor things to pick on and make them out to be major problems. They are trying to say "Oh this will be a horrible OS!" They are trying to seed fear, uncertainty, and doubt.
Also I kinda think it shows the opposite: If all you can find to report bad are extremely minor things, then I guess it really isn't that bad, is it? I mean let's see what criticisms they've tried to blow up lately"
1) Windows doesn't show extensions by default.
2) Windows 7 isn't all that much faster than Vista SP1, and the release version of Vista was slower than XP.
3) An optional Windows 7 addon, that most people will never download, requires a CPU addon that not all CPUs have.
Oh gee wow, what a problematic list. I mean really, if that's all you can come up with, if that's the worst of the worst, the stuff that's headline worthy, I think really that shows that 7 is a good OS, not a bad one, because it's all a bunch of BS. As a quick example for each point:
1) So what, every version of Windows since 95 has been like this, and in Linux, anything can be an executable. You can have any extension or no extension and run it.
2) This is a fake comparison. Vista at release was slower than Vista now, a better comparison is Windows 7 to XP directly, in which case 7 does pretty well. Also, new OSes are usually a bit slower, due to new features, what else is new? DOS is screaming fast, but rather worthless.
3) Very few people will ever get this, because it just isn't needed. Native compatibility is extremely high in Windows 7. This is for businesses who have some odd old apps. It is just a nice, free, addon is people want it.
So please, can we stop with the FUD? If there's real news worthy 7 stuff, post it. If not, then just ignore it, because right now it seems like they are grasping at straws to try and find things wrong with 7.
That suite of applications that you're testing doesn't accurately represent the target population for XP emulation.
XP Emulation is primarily geared towards businesses with legacy/custom business applications which have not been re-written for Windows Vista/7.
We run an ancient version of Televantage here.
The Televantage server itself is still running NT4. The client software refuses to run on anything newer than Windows XP SP1.
The solution has been to go ahead and update our machines to SP2/SP3/Vista/whatever and run Televantage inside a small virtual machine running Windows 2000 SP4 - it works great.
This is the kind of problem the XP-mode is intended to address.
"Work is the curse of the drinking classes." -Oscar Wilde
AC obviously didn't read the article, which states clearly that Intel uses VT availbility as a market segregation tool.
A recent example would be the new Core 2 Quad Q8400, now with less VT!
I am literally 3000 tokens away from the chaotic crossbow --Stephen
Meanwhile, over at Infoworld, Redmond is criticized...
Whenever people refer to Microsoft as "Redmond" it sounds so condescending and ignorant. They're called Microsoft. They're located in Redmond, WA. But Microsoft != Redmond.
/* No Comment */
And they would be wrong. Disk caching in memory has a significant impact on performance. If you are utilizing a significant percentage of your memory then there will be little caching.
I have experienced this myself on a system with 2GB of ram. While running a single VM utilizing 1.1 GB of memory the system was responsive and snappy. Running two VMs using 1.8 GB of memory the system would crawl to a stop waiting for disk operations to complete.
Apple did this, not once but twice. Why is Redmond so afraid of trading out the basic underpinnings? I guess they married the concept of permenant backwards compatibility when they used that very stick to beat OS/2 into the ground.
The fortune program describe this very well...
"I've finally learned what `upward compatible' means.
It means we get to keep all our old mistakes."
-- Dennie van Tassel
The ArsTechnica article makes an interesting point: could Microsoft have done an XP mode that works on all CPUs?
PC virtualization has been around for years, and predates the special instructions. There is a hack called Binary Translation (BT) where a VM system patches the memory image of the guest program to cause a trap where the guest program uses any difficult-to-virtualize instruction.
http://en.wikipedia.org/wiki/Full_virtualization
The new Windows Virtual PC feature is based on the old Microsoft Virtual PC. Microsoft Virtual PC does not require the virtualization instructions; it can run using BT. So, the point ArsTechnica asked is: why did Microsoft require the virtualization instructions?
I'll try to answer that question. But first, I'm going to rant.
Microsoft has made this much weirder and more confusing than necessary. The new feature is "Windows Virtual PC" and the old, rather different feature, is "Microsoft Virtual PC". In three years, will we have some new third thing that is completely different and is called "Microsoft Windows Virtual PC"? I'll use some abbreviations: I'll call the shiny new Windows 7 virtualization solution, Windows Virtual PC, "W7V" (Windows 7 Virtualization). I'll call the old Microsoft Virtual PC "VPC" (Virtual PC). My first draft of this article was full of "Microsoft Virtual PC" and "Windows Virtual PC" and it was hard to keep track of which was which. Also, Microsoft has broken their web site: links that used to go to VPC are now redirected to W7V. If you are trying to get information on VPC, ha ha! You lose. I was able to find the download page for VPC 2007, but all the links for information now redirect to the W7V page. <end_rant>
So, why did Microsoft require virtualization instructions for W7V? I'm just guessing here, but I think it's pretty obvious.
Take a look at the comparision page for Windows Virtual PC:
http://www.microsoft.com/windows/virtual-pc/features/compare.aspx
W7V adds some new features over the old VPC. Smart cards work, USB devices work, storage drives can be shared. This means that Microsoft did a nontrivial amount of work for W7V. I'll guarantee you that it was easier to just require the virtualization instructions than to try to use BT hacks across the whole Windows XP infrastructure; and this requirement slices away a whole bunch of old computers that now don't need to be tested for compatibility with the new W7V features.
So, the work to create W7V was easier, and testing and support costs reduced, by this decision. Since only the very cheapest new CPUs don't have the virtualization instructions, and this feature was chiefly aimed at corporate customers (who usually don't buy bargain-bin hardware), this decision was likely viewed as a no-brainer.
VPC is still available; customers who have old hardware and don't need the full features of W7V can just use VPC. And VPC remains a free download. (Of course, those customers could also switch to Ubuntu and run their old apps in VirtualBox. I'm just sayin'.)
steveha
lf(1): it's like ls(1) but sorts filenames by extension, tersely
And they would be wrong. Disk caching in memory has a significant impact on performance.
This is even more true in a virtualized environment. (My data is a little old (based on pre-VT Vmware) and I'm doing a lot of inferring of how things should work, but I don't have much reason to believe that what I describe changes much with a VT-based hypervisor.)
If your OS is on the bare metal, when a program makes an I/O request, there's a syscall trap that goes to the OS which issues an I/O instruction to the hardware; when it returns, the OS sees the interrupt, schedules a task to copy the data to userspace, and then upcalls to the userspace.
If your OS is virtualized, when a program makes an I/O request, there's a syscall trap which goes to the guest OS which issues an I/O instruction; but then that I/O instruction is trapped by the VMM, and the instruction is emulated. Similarly, when the interrupt comes back, I think it should be the hypervisor that receives it (though maybe not), which then simulates an interrupt in the guest OS, which then upcalls to the originating process.
So basically, the VMM adds an extra layer to each I/O operation. If you're doing a lot of I/O, this can become significant. (It's worse under old (non-VT) Vmware, because the syscall the user application issues is then caught by Vmware which simulates a syscall in the guest OS which issues an I/O instruction which goes back to Vmware, so there are TWO extra layers compared to the bare metal.)
Well Microsoft, that is what you get when you don't build your own hardware like Apple does.
Microsoft should get out of the software business and start designing their own computers together with their own software. Want Windows? Buy that WinBox from Microsoft!
That way you know what kind of hardware is needed and you can drop support for all kinds of crap.
Let Dell, HP, etc try selling computers without an usable OS.
What I cannot create, I do not understand
You'll need a 64-bit OS to see the extra RAM in your virtual hosts. (I think. As stated, you can run a 64-bit guest on a 32-bit host if you have hardware virtualization acceleration, but I assume you still need a 64-bit OS to have the guests see all the RAM.)
Not quite. You need a 64-bit kernel to use RAM above 4Gb (sometimes above 3.25Gb - it depends on your hardware and OS). Though in Windows this does mean you need a complete 64-bit system, with Linux you can run a 32-bit userspace on a 64-bit kernel. No individual process (so no individual virtual machine in most cases
will be able to use more then 3Gb but over-all you can use the lot (and any not used the host OS will use for cache/buffers as needed).
I run my home server this way, as when I built it the CPU was not 64-bit. A Motherboard+CPU+RAM upgrade later I had 64-bitness and 4Gb RAM of which 3.5Gb was seen - so I moved to a 64-bit kernel to use the other 0.5 (as easy as "aptitude install [name-of-64-bit-kernel-image-package]" under Debian/Etch) but didn't fancy messing around converting my userland setup.
When I next upgrade the OS (to Debian/Lenny, in the next few months) I'm going to do a fresh install full 64-bit, but until then the this arrangement seems to work just fine. The machine now has 6Gb RAM (a recent upgrade as things were getting crowded at times and RAM is cheap), shared between the host and a couple of permanent VMs (currently 32-bit) and occasionally some small other VMs (also 32-bit).
Though to be honest, if you are installing Linux as your base OS, there is no reason to hold yourself at 32-bit - I am only still there due to the history of the rig.
You're not running legacy code written by a contracting team who disbanded 4 years ago. You're not running the latest crufty hack on a codebase that was originally ported from CP/M by a group of five coders with 2 GEDs among them ll. You're not running billing software written in COBOL on a custom interpreter that was first launched on an 80286 with 512KB of RAM and a greenscreen. XP Mode is not for you. XP Mode is for companies that can't afford to rewrite all of their business software in six months. Rest assured, (almost) all of your games and shareware crap will still work natively in windows 7.
Just another "DOJ fascist authoritarian totalitarian bootlicker" -- Zeio