Welcome!

Microservices Expo Authors: Pat Romanski, Elizabeth White, Liz McMillan, Stackify Blog, Andreas Grabner

Related Topics: @CloudExpo, Containers Expo Blog

@CloudExpo: Article

Two Views of Virtualization: Does It Mean the End of the OS?

Within or outside the OS - what does the Virtualization future hold?

Scott Lowe's Blog

There appear to be basically two views on how virtualization will affect the future development of operating systems and computing environments in the personal computing space. One camp believes that virtualization functionality will be present within the operating system. The other camp believes it will be outside the operating system, perhaps in the form of a hypervisor or thin virtualization layer that resides “below” the OS and governs access to hardware.


There appear to be basically two views on how virtualization will affect the future development of operating systems and computing environments in the personal computing space. One camp believes that virtualization functionality will be present within the operating system. Whether that virtualization functionality comes bundled with the operating system or is a third-party add-on to the operating system is, quite frankly, irrelevant to this particular discussion. The other camp believes that virtualization will be outside the operating system, perhaps in the form of a hypervisor or thin virtualization layer that resides “below” the OS and governs access to hardware. Again, the discussion of whether this virtualization layer comes bundled with the hardware or comes from a third-party vendor is an interesting discussion (and one that I’d like to have), but is not relevant right at this moment.

My discussions of application agnosticism puts me in the camp that places virtualization functionality in the operating system. On the desktop side (not speaking of servers here), that kind of makes sense to me. It seems to me that the simplest approach - placing virtualization functionality within the operating system - is likely to be the approach that most people will accept. We have to keep in mind that millions of users out there are not nearly as technical as we are, and for them simple is good. It may not be the most technologically advanced approach but rather the simpler approach that wins out (especially on the consumer side).

Now, having said all that, I’d like to take a closer look at the alternate approach to having virtualization placed within the operating system. In this scenario, there is virtualization functionality that sits below the idea of today’s general purpose OS. For those of you familiar with ESX Server, think of it that way - some sort of bare metal virtualization layer that controls the hardware. From there, a collection of VMs will cooperatively provide the various services that are today provided by the general purpose OS. This idea is expressed in this article by Ron Oglesby (also linked to by this VMTN Blog entry as well).

In this approach, you might have a networking VM that is responsible for scanning inbound and outbound traffic, managing security policies, interacting with corporate networks and network access controls, etc. You can think of this as the “firewall” component of the general purpose OS (Windows Firewall on Windows, ipfw on Mac OS X, iptables on Linux), but more feature-rich and more isolated (the idea being that it is therefore more secure and harder to bypass or disable). Likewise, you might have a VM designed specifically for running sensitive corporate applications, a VM for surfing the Internet, and a VM that provides anti-virus services to the other VMs. Taken individually, none of these VMs could replace today’s general purpose OS; taken as a whole, the collection of VMs provides the services and functionality of a general purpose OS, but with greater isolation, encapsulation, and protection between these “service” VMs.

Is this a viable approach? Not today, in my opinion, but certainly in the future. (To be completely fair, Ron’s article was written in the context of the long-term impact of virtualization, so we can’t really look at today’s feasibility.) As Intel and AMD continue to add virtualization support in hardware and performance draws nearer to “native” performance, this definitely becomes a more viable approach. A couple questions persist in my mind, though:

  • What is the mechanism whereby a user adds new functionality to their computing environment, i.e., how does a user add a new service VM?
  • What kind of mechanism or tools are provided to the user to help manage, operate, or configure these service VMs?

Let’s say that the user’s “normal” working environment exists in a VM that runs Windows, Linux, or the like. We’ll call this VM-Home. From VM-Home, the user needs to be able to access the functionality of a networking/firewall VM (we’ll call this VM-FW) and a corporate applications VM (we’ll call this VM-Corp). How does the user go about switching between these VMs, like between VM-Home and VM-Corp? Does each VM provide its own windowing environment? How is switching between these windowing environments handled? Is there a common windowing environment provided by the virtualization layer? Is there some internal networking connectivity between VM-Home and VM-FW that allows the user to manage the VM-FW functionality? Where does the user go, or what program does the user run, to add a new VM (say, an anti-virus VM) to his/her environment?

“Scott, stop being so picky,” you say. “This is all being talked about in theory, anyway. It’s not like we need to have all the answers right now.”

You’re right, we don’t. But as we look at how these questions may be answered (someone’s got to answer them sometime), it seems that we’ll need to add some functionality to the virtualization layer in order to make it easier/more seamless to switch between the VM environments. Users will want a seamless UI to work with, so we may need to add a windowing environment to the virtualization layer. Either that or we’ll have to enable some sort of mechanism whereby other VMs can display windows inside another VM, and now we’re breaking down the isolation/protection boundaries that we originally found to be desirable. Users will want to be able to copy and paste between the VM environments, so we’ll need to add that functionality to the virtualization layer. Users will want to be able to double-click an icon and have it launch in the appropriate VM environment, so now we’ve got to add some links and communications channels between the various VM components in our computing solution. As each of these pieces of functionality is added, the virtualization layer starts to look more like a general purpose OS—just one that’s leaner, meaner, and free of years of legacy code.

As this virtualization layer starts to resemble a general purpose OS and as the general purpose OS starts to incorporate technologies such as virtualization, application-specific subsystems, and the like, these two start to look a lot like each other. That brings us back to a central question in this discussion, a question I asked when I first started discussing the future of the OS:

So I guess the future of the operating system depends on your perspective. If you’re an operating system guy, you’ll say that the OS has a bright future, and point to developments such as built-in paravirtualization and bundled hypervisors to prove your point. If you’re a virtualization guy, you’ll say that the OS is dead, and you’ll point to developments such as third-party paravirtualization and independent hypervisors to prove your point. Which of these two is correct?

Indeed! Which approach do you think desktop computing will take? Application agnosticism, in which virtualization and other technologies are placed within the operating system, or groups of virtual machines (“VM cooperatives”? “VM federations”? “OS agnosticism”? Need a fancy marketing term again…) coordinated by a hardware/firmware virtualization layer?

What do you think?

 

More Stories By Scott Lowe

Scott Lowe is a senior engineer with ePlus, a local reseller/VAR in Raleigh, NC, where he specializes in server virtualization, storage, and related enterprise technologies. He has been in the IT field for more than 15 years, starting out with desktop support. Along the way, he has worked as an instructor, a technical trainer and Microsoft Certified Trainer (MCT), systems administrator, IT manager, and as Chief Technology Officer for a small start-up.

Comments (2)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


Microservices Articles
In his session at 20th Cloud Expo, Scott Davis, CTO of Embotics, discussed how automation can provide the dynamic management required to cost-effectively deliver microservices and container solutions at scale. He also discussed how flexible automation is the key to effectively bridging and seamlessly coordinating both IT and developer needs for component orchestration across disparate clouds – an increasingly important requirement at today’s multi-cloud enterprise.
While some developers care passionately about how data centers and clouds are architected, for most, it is only the end result that matters. To the majority of companies, technology exists to solve a business problem, and only delivers value when it is solving that problem. 2017 brings the mainstream adoption of containers for production workloads. In his session at 21st Cloud Expo, Ben McCormack, VP of Operations at Evernote, discussed how data centers of the future will be managed, how the p...
In his session at 20th Cloud Expo, Mike Johnston, an infrastructure engineer at Supergiant.io, discussed how to use Kubernetes to set up a SaaS infrastructure for your business. Mike Johnston is an infrastructure engineer at Supergiant.io with over 12 years of experience designing, deploying, and maintaining server and workstation infrastructure at all scales. He has experience with brick and mortar data centers as well as cloud providers like Digital Ocean, Amazon Web Services, and Rackspace. H...
Most DevOps journeys involve several phases of maturity. Research shows that the inflection point where organizations begin to see maximum value is when they implement tight integration deploying their code to their infrastructure. Success at this level is the last barrier to at-will deployment. Storage, for instance, is more capable than where we read and write data. In his session at @DevOpsSummit at 20th Cloud Expo, Josh Atwell, a Developer Advocate for NetApp, will discuss the role and value...
DevOps is under attack because developers don’t want to mess with infrastructure. They will happily own their code into production, but want to use platforms instead of raw automation. That’s changing the landscape that we understand as DevOps with both architecture concepts (CloudNative) and process redefinition (SRE). Rob Hirschfeld’s recent work in Kubernetes operations has led to the conclusion that containers and related platforms have changed the way we should be thinking about DevOps and...
Modern software design has fundamentally changed how we manage applications, causing many to turn to containers as the new virtual machine for resource management. As container adoption grows beyond stateless applications to stateful workloads, the need for persistent storage is foundational - something customers routinely cite as a top pain point. In his session at @DevOpsSummit at 21st Cloud Expo, Bill Borsari, Head of Systems Engineering at Datera, explored how organizations can reap the bene...
Is advanced scheduling in Kubernetes achievable?Yes, however, how do you properly accommodate every real-life scenario that a Kubernetes user might encounter? How do you leverage advanced scheduling techniques to shape and describe each scenario in easy-to-use rules and configurations? In his session at @DevOpsSummit at 21st Cloud Expo, Oleg Chunikhin, CTO at Kublr, answered these questions and demonstrated techniques for implementing advanced scheduling. For example, using spot instances and co...
In his session at 20th Cloud Expo, Mike Johnston, an infrastructure engineer at Supergiant.io, will discuss how to use Kubernetes to setup a SaaS infrastructure for your business. Mike Johnston is an infrastructure engineer at Supergiant.io with over 12 years of experience designing, deploying, and maintaining server and workstation infrastructure at all scales. He has experience with brick and mortar data centers as well as cloud providers like Digital Ocean, Amazon Web Services, and Rackspace....
Skeuomorphism usually means retaining existing design cues in something new that doesn’t actually need them. However, the concept of skeuomorphism can be thought of as relating more broadly to applying existing patterns to new technologies that, in fact, cry out for new approaches. In his session at DevOps Summit, Gordon Haff, Senior Cloud Strategy Marketing and Evangelism Manager at Red Hat, discussed why containers should be paired with new architectural practices such as microservices rathe...
SYS-CON Events announced today the Kubernetes and Google Container Engine Workshop, being held November 3, 2016, in conjunction with @DevOpsSummit at 19th Cloud Expo at the Santa Clara Convention Center in Santa Clara, CA. This workshop led by Sebastian Scheele introduces participants to Kubernetes and Google Container Engine (GKE). Through a combination of instructor-led presentations, demonstrations, and hands-on labs, students learn the key concepts and practices for deploying and maintainin...