There have, historically, been two competing models of operating systems development. There’s the UNIX mentality, of small pieces loosely joined. That is, you have a whole bunch of little, stand-alone applications that all work together to accomplish more complex tasks running atop a svelte kernel that doesn’t know — or need to know — about the pieces its running. Then you have the “everything and the kitchen sink” mentality, used by Microsoft. All versions of Microsoft Windows have huge dependency chains, and what is rightly called “Windows” is a dizzying amalgamation of interdependent pieces of software, none of which can do much on their own. If you’ve ever wondered why your Windows-powered web server included Windows Media Player, or Solitaire, that’s the reason: the “stuff” that makes up Windows is highly interdependent.
There’s been work going on inside Microsoft for years to try to pare down the Windows system, to tame the beast so to speak. Dubbed “MinWin“, the effort aims to make a successive series of layers, with each layer depending only on the stuff immediately below it. So one layer might handle file system access and network protocols. The Internet Information Server would depend on that layer, but nothing in any of those sub-layers would depend on anything inside IIS. In a similar way, the Explorer shell and Internet Explorer can be more easily separated, so that you don’t need to have MSIE installed on every single server you run.
There are lots of changes associated with the MinWin project, and even though initial efforts are available for public viewing, the long-term payout is still quite a ways away. Some of the elements of that long-term payout include a more customizable installation footprint with an easier-to-update system, since you’d only be updating those components you’re actually using for your server; tighter system security; and enhanced system integrity, since faults in applications ought not be affecting lower level routines.
There’s an excellent write-up of MinWin at Ars Technica. It’s definitely worth a read. This quote, regarding system security, really caught my attention:
Fully two-thirds of the security patches released for Windows Server 2003 offered no actual increase in security for dedicated servers, but still required software to be installed and reboots to be performed on a near-monthly basis.
What’s ironically funny to me is that this entire initiative is, in many ways, a validation of the UNIX mentality that’s been driving Linux development since the very beginning. Microsoft has touted the superiority of it’s GUI, and the Microsoft Management Console (MMC) and its snap-ins, as the best and easiest way to manage complex services. I think we can all agree, now, that that’s more than a bit of hyperbole: GUIs and the MMC make some administrative tasks easier, while simultaneously making other tasks much harder. The resurgence of command-line administration in MinWin, and the Server Core installation option of Windows Server 2008 (original, and R2 flavors) is clear indication that a GUI is not the end-all-be-all of systems management.









Modular windows sounds good. End of bloatware? Check.
Bosser Chod.
what was that for??
That was a profanity in the Hindi language that means that you’re a sister-f**ker.
Sorry, but you don’t know what you are talking about.
* Linux and most Unix flavors (whether open source or not) are examples of monolithic kernel OSs. (Read here:http://en.wikipedia.org/wiki/Monolithic_kernel)
* Windows NT started out as a micro kernel architecture, and over time eveolved into a hybrid kernel model (read about it here:http://en.wikipedia.org/wiki/Hybrid_kernel)
* IIS does not have a dependency on WMPlayer
As a journalist you should fact-check. As a geek you should get the tech & the science right. This article does neither.
The article is talking about full operating systems and not just the kernels.
Agreed. This article is about OSes, not kernels. I see no problem.
But BlueK is correct, the analysis in this post is moronic. Window and Unix are more similar than different. Both have managed process spaces, support vitual memory, and allow memory mapping to disk. The details of their differing implementations are trivial, they have the same strengths and weaknesses. His main point, that techcrunch gets technology wrong because they are uninformed, is the most accurate thing ever written on techcrunch.
Thanks god somebody said this…
and solitaire!?!
Who cares?
Users have been using IIS for years without any issues. While I can see how this would make updates go faster etc, it’s pointless to build an entirely new OS just for it.
If (I’m a linux server guy) I were to ever use IIS for a server, I’d set it up once and then maybe login once a week for maitenance. I’d really not care what crap is installed on it by default.
This is an interesting article, always wondered why crap like solitare was on a windows server os.
I would like to comment on your, “I’d really not care what crap is installed on it by default,” statement particularly in reference to the, “maybe login once a week for maitenance,” statement.
The people who care are those that realize the, “crap,” installed for illogical reasons adds to system complexity and are also magnets for potential security breaches. Therefore, if you remove unnecessary potential failures, then maybe you won’t need to log in even once a week.
I know I have run UNIX/Linux servers that have run for months without needing even maintenance checks.
I can remember reading about MinWin almost as far back as I can remember reading about Crunch Pad.
Both are vapor ware
Pull your head out of your ass. If you read the ArsTechnica write up, you’d understand that MinWin was never meant to be a product, it’s a project. And advances made by work on this project have been seen in Windows Server 2008 and 2008 R2. What do you think Windows Server Core installations are?
First off, you’re an idiot
It’s obvious that this is the first MinWin article you’ve ever read. Articles going back *at least* 3 years touted MinWIn as the next big PRODUCT for MS.
So, in conclusion, you’re an idiot.
This comes off as a *nix butt kissing post.
“The resurgence of command-line administration in MinWin, and the Server Core installation option of Windows Server 2008 (original, and R2 flavors) is clear indication that a GUI is not the end-all-be-all of systems management.”
MinWin doesn’t even really exist, it’s an idea of making a more svelte kernel. Server Core installation is an *option* on Windows server for the few people that like to do things through command line.
The fact is that most servers are running a GUI interface or have that option in use. Most of us network admins like being able to use a GUI especially when training a new hire that has little server experience. It’s fun to go into command line, and when you have some knowledge you can do quick changes from there. But from here on out GUI will be the dominant form of systems management. Computer Interfaces will not revert to all command line interfaces like most *nix users would like it to. Its simple really; if two systems have the same capabilities but one has a smaller learning curve, the easy to use one will become the dominant system.
Wnidows will stay GUI, it’s backend may become more modular, the kernel may be smaller and simpler. But if tiny kernels and GUI interfaces were preferred on servers then *nix based servers would have killed Microsoft back at Windows 2000.
I would like to agree on all your comments including GUI’s most likely being the dominant form. However, I think what the article is implying when it states, “GUI is not the end-all-be-all of systems management,” is that Windows is backpedaling from what used to be a seemingly all-GUI approach to management. Windows command lines were always significantly downplayed and in some cases, castrated pieces of software when it came to systems administration.
What is nice is that though Windows has shown a preference for GUI administration (a preference which is also seeping into the Linux userbase), they are at least providing options for those who would like to use CLI. In the end, one will be dominant, true. What is nice however is when the dominant gives concession to the minority preference. It’s a good way to win market share as well.
Also, I believe Steve Ballmer said a year ago, “Forty percent of servers run Windows, 60 percent run Linux,” he said. “How are we doing? Forty is less than 60, so I don’t like it. … We have some work to do.” (source: http://www.pcworld.com/businesscenter/article/151568/ballmer_still_searching_for_an_answer_to_google.html)
Technically it does not say which types of servers, and I doubt it holds true taking into account all production-level servers of any type (web, NAS, etc), but there is still at least a general feeling that *nix based servers hold a startling portion of Microsoft’s desired market.
This article is off base, but I do believe MinWin is alive and well inside of Windows 7.
Paul Thurrott has an excellent article on the MinWin Microkernel and there are some excellent chanel 9 interviews with Microsoft technical fellow and kernel genius Mark Russinovich.
Sorry its not vaporware..
I’ve never had to recompile the windows kernel to add any sort of functionality. I can but I don’t. I can strip a Windows server bare in a couple clicks or a single command.
Powershell has been around forever and holds it’s own against anything else out there.
Mac OSX is a great example of the bloated layer cake approach you did not mention.
Windows servers do not reboot because of automatic updates, they reboot because of incompetent admins.
If your gonna bash an easy target at least know what your talking about and at least try to hide your obvious bias a little better.
This is all true. CS graduates strongly defend unix, and attack windows, mainly because they waste 4 years devoting their life to the study of unix. They never open their minds beyond unix because they had such a difficult time getting a minimal grasp of that topic. If they were smarter, they would have persued a degree in engineering.
It is entirely possible that I am misunderstanding something here, but it seems to me that the article is mixing up API design and application interdependencies with kernel design.
Few things discussed in this or the Ars Technica article have anything to do with kernel itself. So let’s set that aside.
What is really going down is that, historically, the user functions that interact with operations that occur in kernel mode (as well as other user mode parts of the system) have been haphazardly lumped together, so it’s hard to cherry pick the functionality you would like in a Windows install. In other words, if an application makes a dependency on one function, it has gone ahead and really forced Windows to make a dependency on all of them because they’re all sitting in a few big ass DLLs.
Thanks to MinWin, bunches of functions are no longer sitting in one big ass DLL, although that big ass DLL still exists in a kind of backwards compatibility mode. The big ass DLL has been split into tiny DLLs grouped by purpose, and the old DLL forwards calls to the newly split-into-a-thousand-pieces DLL, blowing up as necessary if that particular component is not installed.
So: there are application-to-application dependencies (a Word-to-PDF converter requires Word to be installed), application-to-library dependencies (iTunes requires QuickTime to be installed), and library-to-library dependencies (HTTP.SYS needs a networking stack). MinWin, to my knowledge, is about addressing the library-to-library dependencies for those libraries provided by Windows.
If IIS still needs a GUI to administer, well, that’s IIS’s problem, not MinWin’s problem. That Server Core has a GUI is because the application’s dependency on the GUI has not been resolved, despite Server Core’s resolution of the fact that having the networking stack support doesn’t require that the GUI also be loaded.
I’d rather see Microsoft focus on driving a stake through the heart of Windows once and for all, and replace it with a commercialized version of the “Singularity” operating-system prototype developed by Microsoft Research:
http://research.microsoft.com/en-us/projects/singularity/
To quote the project overview:
“Singularity is a research project focused on the construction of dependable systems through innovation in the areas of systems, languages, and tools. We are building a research operating system prototype (called Singularity), extending programming languages, and developing new techniques and tools for specifying and verifying program behavior.
Advances in languages, compilers, and tools open the possibility of significantly improving software. For example, Singularity uses type-safe languages and an abstract instruction set to enable what we call Software Isolated Processes (SIPs). SIPs provide the strong isolation guarantees of OS processes (isolated object space, separate GCs, separate runtimes) without the overhead of hardware-enforced protection domains. In the current Singularity prototype SIPs are extremely cheap; they run in ring 0 in the kernel’s address space.
Singularity uses these advances to build more reliable systems and applications. For example, because SIPs are so cheap to create and enforce, Singularity runs each program, device driver, or system extension in its own SIP. SIPs are not allowed to share memory or modify their own code. As a result, we can make strong reliability guarantees about the code running in a SIP. We can verify much broader properties about a SIP at compile or install time than can be done for code running in traditional OS processes. Broader application of static verification is critical to predicting system behavior and providing users with strong guarantees about reliability.”
There have been some rumors of a development project, code-named “Midori”, aiming to do exactly that, but at this point, that’s all they are: rumors.
“Windows 7 is different , Trust Me®….” ;)
It just goes to show it was always about the money and not the users! Microsoft dont give a toss about its users, its a facade!
They would shake your hand with one hand and reach into your pocket with the other!
Thats it!
Microsoft have always been behind the 8 ball … Silly juggernauht eats way to many candy bars and moves like a walrus!
You are a moron.
A real analysis of the server space shows that unix gained a large portion of server markets because of windows. At one point netware had 90% of the market. MS took on Novell and took over the market. Unix snuck in and picked up the scraps of the MS spoils. Unix gained larger market share based on the deception that Linux is free and safe. Linux is not free, you are just spend in other ways to support those systems. Sadly, netware was an OS that kicked both of their asses, everything ran in ring0, something windows and unix will never accomplish, trumping all the ring3 to ring0 arguments made in the previous comments.
“If you’ve ever wondered why your Windows-powered web server included Windows Media Player, or Solitaire, that’s the reason: the “stuff” that makes up Windows is highly interdependent.”
Are you really implying that any part of Windows Server is dependent on Solitare? Really? I mean, the “Microsoft is huge and bloated and everything they do is huge and bloated” line is popular and often an easy target, but that’s a real stretch and so obviously untrue that it kills credibility.
The Server Core install option in Windows Server 2008 and the development of Powershell are examples that are in use now (as oppossed to MinWin) that demonstrate exactly how non-graphical, Unix-like server administration on the Windows platform can be. It’s certainly not the same as the Linux model, but it’s hardly the massive chain of interdependencies that you claim it to be and the hyperbole only detracts from the actual content of your article.
No, I’m not claiming that Solitaire is a dependency. I’m using that to illustrate that there are lots of things installed on Windows server systems that don’t need to be there. The entire design focus of Windows is user-centric, even when the applications for which a server may be deployed mean that no human will regularly be using the console. Why have all that stuff — whether a stand-alone application like Solitaire, or a deeply interdependent set of APIs — installed if they’re never going to be used? It’s more stuff to keep up to date for no specific benefit.
You defend the solitaire reference, but not his point that you don’t know what you are talking about. Your comments about APIs and chains of dependence show that you don’t understand the truth about either windows or unix. You should stick to what you know, BSing your way through a tech blog written by non tech über dorks.
When MinWin was first demo’ed, it was clearly indicated that it was a research project only. Various blogs and articles made up the story that it would replace the Windows-kernel and all that.
However, MinWin is already in Windows, in some form. Vista and 7 are highly componentized OS’es, just like their server counterparts. Windows Server Core was born as an experiment of the componentization, when somebody thought “Hey, this is usable, let’s market it!”.
You can build your own componentized installations using the WAIK… you can leave out almost anything you’d possibly want.