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've tried "XP mode" on Win 7 RC and it works fine. Looking through our corporate infrastructure (90,000 machines) by the middle of next year we won't have any machines around that can't run this. The Intel chip virtualization assist will be there on all of them. I really wouldn't plan personally to run Win 7 on a machine older than the ones that can support the virt. Generally, people don't upgrade machines that are quite a bit older anyway. I know that people are worrying about "NetBook" type machines - but seriously - who would try running Win 7 AND an XP VM in only 1 GB of RAM? It's just not that core a scenario.
The machine I am typing this on is a Lenovo X200s machine and right now I am on Win 7 7100 RC with an XP mode VM up running and it works brilliantly.
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.
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.
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.
cat foo | grep ...
seriously?
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 */
The problem is one of naive, us-vs-them mentalities. Weak minds hold to such things because it is cognitively easier to deal with black and white situations. Like-minded people congregate together, and chant these half-truths over and over until they become their perceived reality. This self-perpetuation blows up small problems to huge proportions. The enemy is perceived as having a flaw, and every chance this happens is yet another chance to collectively say, "ha ha, unwashed masses using the wrong operating system!" and pat themselves on the back. Worse, the moderation system rewards such behavior. Such posts are often rife with logical fallacies, hand-waving, or a lack of technical information.
Go ahead, claim that there are individual people on Slashdot. There are. (This is always the complaint when these things come up.) But this stupid collective opinion, often with little logical basis, still manifests itself too often. Vista apparently still has horrible, horrible file copy performance according to many people here. Apparently, MS was lying about the service pack fixes. Thankfully, we have the all-wise population of this site to set us straight and tell us how it really is. I'm sure the tech world makes it a bit hard for these people. After all, Apple will probably include Bluray support in OS X 10.6. What does that entail? Oh, right - DRM in the OS itself. How will all of these people maintain intellectual honesty with Vista's DRM being horrible and OS X incorporating it?
Anyway, when you have a readership that is proud of the fact they comment on stories in which they haven't read, what can you expect? Ignorance is a virtue here.
(I'm the worst kind of troll - I tell the truth.)
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.)
Microsoft would get creamed for anti-trust.
Actually I think that's a common artifact of a process of gradual refinement.
You start with:
To get an idea what the contents of the file are like.
Then you figure out something to search for, or to exclude. A quick way of doing that is to recall the previous history line (up arrow), and tack on grep on it:
Then you refine it further, with another history recall and tack another command at the end:
Then sometimes you copy/paste that into a shell script and earn another "useless use of cat" award.
Starting with grep is uncomfortable because you have to grep for something, and you often don't know what that should be before seeing the file's contents. Unless you realize you can grep for '.*'.