VMWare also has a hardware VM container that will start shipping in servers... This means no more need for a host OS at all -- the real machine boots into the VM container (stfw for "hardware hypervisor"). If that becomes ubiquitous, expect more light OS's to come for application developers to offer an entire working VM instead of just the app.
VMWare ESX Server also does not need a host OS. It's used in production situations, and obviously improves performance as it means one less layer to deal with before getting to the machine. It does the job of memory management, etc that the real OS does. I've been told it's actually making use of a modified version of Linux.
Another is server consolidation. Companies have servers that only run 1 application, mostly with server resources underutilised. Put each of those apps in their own VM, put the VMs into a few grunty servers, then you generate less heat in the server room, use less electricity, less hardware to maintain.
Another is when you want to run multiple operating systems at the same time. Want to run Linux AND Windows XP AND Windows 2000 on your Mac? You can run those in their own VMs, with OSX as the underlying OS. Majority of computer users will tend to only use one OS, but it allows flexibility for those who are switching back and forth or transitioning to a different OS.
There are many scenarios for using VMs. One is isolation of applications. Remember back when you could only have 1 version of Internet Explorer on Windows? If you wanted to test a website from diff. ver. of Windows, you ended up requiring multiple PCs, each with a diff. version of Windows. OR you could use one PC, with enough CPU and memory, running multiple VMs at the same time.
Excellent presentation. I do think Getzfield misses the point when bagging Java, though; I think it has succeeded, not failed, at virtualisating the application layer. It's a misnomer to compare the Java Virtual Machine with an Intel Virtual Machine, just because they have similar names.
It's likely that the development team that created the Java-based software you used went to great pains to make it work across multiple versions of the JRE. Because the IA-32 and IA-64 ISAs make backwards-compatibility a priority, software developers don't have to think about whether their product will run on the latest Intel Core Duo or AMD processor. This has made x86 succeed as an application layer, both virtual and physical.
It's a virtual MACHINE. Just like a real machine, it needs an OS. I wouldn't exactly say that it "depends" on the OS. You can run it without an OS, but it will be as useful as firing up a normal computer that has no OS on it. Have fun in the BIOS config!
Now why *do* some servers only have 1 application running on them? Comes down to isolation and ease of troubleshooting. When you run many programs on 1 OS, they can affect each other in ways you don't want or dont even know. If you only have 1 app to deal with, there are less factors to consider when things go wrong.
@bgetzfield: your complications don't rate a mention when it comes to the impact of Java in the data center. Example: I've just managed a project implementing a Java-based OSS for a multinational service provider. Listed as working with "any compliant J2EE container" and of the four trialled, they were right, with 1.4, 1.5, 1.6 and even JRockit. The platform choice is now one of JVM+AppServer; before it was of server+OS. That's the commercial reality today, whatever your portability issues.
As a platform for distributing applications to an idealized virtual environment, Java is indeed a failure. Yes, it's widely used on the server side, but not because of the virtual machine it provides. VMware provides virtualization not just for resource utilization, but also to make a consistent virtual hardware platform to allow you to run applications anywhere, no matter what the underlying physical hardware is capable of.
I totally disagree that Java's succeeded at virtualizing the application layer. Sun has shown repeatedly that they have no interest in maintaining backwards-compatibility between Java versions, and this is crucial to making any virtualization engine succeed. I simply can't take a Java program I wrote for Java 1.3 and have it work reliably under a later JRE. Sun makes too many changes under the hood, and does too little regression testing, for this to work correctly.
Incorrect. Java is a fantastic language and the JVM a great platform allow developers to develop and run independent of OS specifics. What you are essenitally comparing is chalk and cheese as Java never set out to solve the solutions VM ware is approaching. It set out to provide a platform independent language with the JVM being runtime. VMware is dealing with a completely different set of concerns. You don't really seem to understand what Java was designed for ...
HIs comments on Java are just bollocks and completely out of context. A) its not a failure, it is on billions of devices world wide B) the 2 concept of virtualization are not alike. Java gives a common application platform, VMWare is virtualization of an OS to achieve resource utilitlzation. He seems not to know what hes bloody talking about. and C) Java has been pretty bloody good in backward compatability for a language.
VMWare also has a hardware VM container that will start shipping in servers... This means no more need for a host OS at all -- the real machine boots into the VM container (stfw for "hardware hypervisor"). If that becomes ubiquitous, expect more light OS's to come for application developers to offer an entire working VM instead of just the app.
VMWare ESX Server also does not need a host OS. It's used in production situations, and obviously improves performance as it means one less layer to deal with before getting to the machine. It does the job of memory management, etc that the real OS does. I've been told it's actually making use of a modified version of Linux.
Another is server consolidation. Companies have servers that only run 1 application, mostly with server resources underutilised. Put each of those apps in their own VM, put the VMs into a few grunty servers, then you generate less heat in the server room, use less electricity, less hardware to maintain.
Another is when you want to run multiple operating systems at the same time. Want to run Linux AND Windows XP AND Windows 2000 on your Mac? You can run those in their own VMs, with OSX as the underlying OS. Majority of computer users will tend to only use one OS, but it allows flexibility for those who are switching back and forth or transitioning to a different OS.
There are many scenarios for using VMs. One is isolation of applications. Remember back when you could only have 1 version of Internet Explorer on Windows? If you wanted to test a website from diff. ver. of Windows, you ended up requiring multiple PCs, each with a diff. version of Windows. OR you could use one PC, with enough CPU and memory, running multiple VMs at the same time.
Yeah, ESX Server sounds great -- I'm a huge fan!
REALLY GOOD
Excellent presentation. I do think Getzfield misses the point when bagging Java, though; I think it has succeeded, not failed, at virtualisating the application layer. It's a misnomer to compare the Java Virtual Machine with an Intel Virtual Machine, just because they have similar names.
It's likely that the development team that created the Java-based software you used went to great pains to make it work across multiple versions of the JRE.
Because the IA-32 and IA-64 ISAs make backwards-compatibility a priority, software developers don't have to think about whether their product will run on the latest Intel Core Duo or AMD processor. This has made x86 succeed as an application layer, both virtual and physical.
It's a virtual MACHINE. Just like a real machine, it needs an OS. I wouldn't exactly say that it "depends" on the OS. You can run it without an OS, but it will be as useful as firing up a normal computer that has no OS on it. Have fun in the BIOS config!
Now why *do* some servers only have 1 application running on them? Comes down to isolation and ease of troubleshooting. When you run many programs on 1 OS, they can affect each other in ways you don't want or dont even know. If you only have 1 app to deal with, there are less factors to consider when things go wrong.
@bgetzfield: your complications don't rate a mention when it comes to the impact of Java in the data center. Example: I've just managed a project implementing a Java-based OSS for a multinational service provider. Listed as working with "any compliant J2EE container" and of the four trialled, they were right, with 1.4, 1.5, 1.6 and even JRockit. The platform choice is now one of JVM+AppServer; before it was of server+OS. That's the commercial reality today, whatever your portability issues.
All sorts of geeky technical information about how VMWare's Fusion works with OS X.
Thanks.
As a platform for distributing applications to an idealized virtual environment, Java is indeed a failure. Yes, it's widely used on the server side, but not because of the virtual machine it provides.
VMware provides virtualization not just for resource utilization, but also to make a consistent virtual hardware platform to allow you to run applications anywhere, no matter what the underlying physical hardware is capable of.
VMWare techtalk drinking game:
Drink everytime he says 'y'know'
Doesn't that make the MAC slower than usual ????????
I totally disagree that Java's succeeded at virtualizing the application layer. Sun has shown repeatedly that they have no interest in maintaining backwards-compatibility between Java versions, and this is crucial to making any virtualization engine succeed.
I simply can't take a Java program I wrote for Java 1.3 and have it work reliably under a later JRE. Sun makes too many changes under the hood, and does too little regression testing, for this to work correctly.
no!!!!!!!!!!!!! that was virtual pc in the power pc era of macs.
hahaaaaaaa! y'know!
Incorrect. Java is a fantastic language and the JVM a great platform allow developers to develop and run independent of OS specifics. What you are essenitally comparing is chalk and cheese as Java never set out to solve the solutions VM ware is approaching. It set out to provide a platform independent language with the JVM being runtime. VMware is dealing with a completely different set of concerns. You don't really seem to understand what Java was designed for ...
HIs comments on Java are just bollocks and completely out of context. A) its not a failure, it is on billions of devices world wide B) the 2 concept of virtualization are not alike. Java gives a common application platform, VMWare is virtualization of an OS to achieve resource utilitlzation. He seems not to know what hes bloody talking about. and C) Java has been pretty bloody good in backward compatability for a language.