I recently posted a question about Azure... is it really an OS? I understand the technical details, and I got a lot of fuzzy answers... I really want to know... what do you think is the difference between an OS and a Framework?

Just for reference, Azure will be built on top of Hyper-V servers and the virtual machines will be running vanilla Windows Server 2008. It will run services that creates a cloud on top of the many virtual machines which is called Azure. Windows is calling Azure an OS.

I am trying to understand how to define the difference between an OS and a framework.

+1  A: 

An OS is the thing that directly interfaces with the machine, be it virtual or real. It has to expose syscalls that handle input devices, output devices, sound, networking, and all the other things that we take for granted these days. It also often provides some kind of UI which uses these services to make it easy to use/useful for an end-user. It needs to have device drivers to work with video cards, sound cards, etc. (Once again, these can be virtualized).

A framework is... something built on top of the OS. It, too, exposes an API, but they are often not so low-level as the one the OS exposes.

This is how I feel too... so, why do you think Microsoft is calling Azure an OS?
Brian Genisio
i'm not sure... i'll have to look into it later
So is the win32 API a framework, or part of the OS?
Orion Edwards
A framework is simply a reusable software design. The operating system is itself, software. Who said the two are mutually exclusive?
Jim Burger
+2  A: 

Operating System: The infrastructure software component of a computer system

Framework: A re-usable design for a software system (or subsystem).

By these definitions it seems to me, that an operating system can be built using a framework, and a framework can be built to interact with an operating system.

Singularity is an example of an experimental OS that is built using managed code.

Framework is a very broad term, it can be used to describe many types of subsystems. It could even describe an operating system.

Operating System is more specific, it implies facilitation of interaction with a computers or group of computers hardware layer, through the use of human user interfaces. I think Azure fits this description.

Jim Burger

frameworks provide api contracts that oses usually don't - meaning they sit atop the os, hide and manage the differences, and consequently give you that platform independence goodness that can broaden our target audience

Scott Evernden
What about operating systems built using a framework?
Jim Burger
+1  A: 

It's upto marketing - I don't think the terms have a definate meaning anymore.
Is a JVM a framework? What if it's running on a raw uC or even an FPGA - is it an OS?

Martin Beckett