< Back to Blogs
How open source has influenced Windows Server 2008 by Sam Ramji on February 27, 2008 06:00AM

When I think about what works really well in open source development and technology, the following things stand out:

  • Modular architectures
    You can find these wherever you see participation at scale – and often a rearchitecture to a more modular system precedes expanded participation.  Great examples of this are Firefox, OpenOffice, and X11 – from both the historical rearchitecture and the increased participation that resulted.  The Apache HTTP server and APR are good examples that have been modular for as long as I can recall.

  • Programming language agnostic
    A given project uses a consistent language, but there are no rules on what languages are in scope or out of scope.  Being open to more languages means opportunity to attract more developers – the diversity of PHP/Perl/Python/Java has been a core driver in the success of a number of projects including Linux.

  • Feedback-driven development
    The “power user” as product manager is a powerful shift in how to build and tune software – and this class of users includes developers who are not committing code back, but instead submitting CRs and defects – resulting in a product that better fits its end users.

  • Built-for-purpose systems
    Most frequently seen in applications of Linux, the ability to build a system that has just what is needed to fulfill its role and nothing else (think of highly customizable distributions like Gentoo or BusyBox, as well as fully custom deployments).

  • Sysadmins who write code
    The ability of a skilled system administrator to write the “last mile” code means that they can make a technology work in their particular environment efficiently and often provide good feedback to developers.  This is so fundamental to Unix and Linux environments that most sysadmins are competent programmers.

  • Standards-based communication
    Whether the standard is something from the IETF or W3C, or simply the implementation code itself, where these are used projects are more successful (think of Asterisk and IAX2) and attract a larger ecosystem of software around them.

So where did we apply these ideas to the development of Windows Server 2008?

  • Modular architectures was applied in multiple areas, but the one that stands out most to me is Internet Information Server 7 (IIS7).   IIS7 has been rearchitected for flexibility as 40 individual modules, enable more to be written by community developers or delivered as out-of-band releases.  This has already enabled performance improvements and independent evolution, and I expect to see further enhancements.

  • Programming language agnostic is something we’ve delivered on with support for PHP on IIS7 and the enhancements to FastCGI (which can be used by any of the P* languages).  We set a goal of having PHP certified on Windows Server 2008, and we’ve achieved that.  We’ll continue to improve runtime, security, and manageability support for non-.NET languages and the applications that are built on them, as well as testing the full stacks of PHP-based applications running on Windows Server, IIS, and SQL Server. 

  • Feedback-driven development based on developer and customer trials (RDPs, TAPs, and Betas in our process) led to a range of “feature completion” developments that connected different components – like connecting Windows Firewall with Active Directory central policy, and the end-to-end improvements in SMB 2.0.  Features like the RODC (Read-Only Domain Controller) have become more and more solid through experience with early alpha and beta customer deployments, and requests to enforce things like BitLocker encryption of user disks from a central authority have achieved full support.

  • Built-for-purpose systems such as DNS, DHCP, file and web serving can be created through wizard-driven configuration thanks to Windows Server Core.  The goal of having a minimum attack surface and a small hardware footprint, inspired by the capabilities mentioned above, yet achievable by a broad base of admins has been achieved.  Additionally, this has created an opportunity for Windows admins to become much more knowledgeable about the low-level structure of the operating system.

  • Sysadmins who write code are first-class citizens in the PowerShell-driven infrastructure.  We’ve increased Windows administrators’ opportunity to master the full surface area of WMI and demonstrate that mastery in reusable, low-level scripts.  As we evolve this to support multiple language bindings and bash aliasing, this should become a comfortable home for highly skilled sysadmins.

  • Standards-based communication such as in CardSpace (with support for X.509, SAML, Kerberos tokens, and more) and the Web Services stack (not only are all 38 Web Services standard under the Open Specification promise, but our implementations have achieved a high level of interop with Apache’s Axis web services stack), and beta support for emerging standards like Xen virtualization represent a small subset of the standards built into Windows Server 2008.


Overall, we’ve learned and continue to learn from open source development principles.  These are making their way into the mindset, development practices, and ultimately into the products we bring to market.

I’ve focused here on “what Microsoft has learned from Open Source” – and ironically, I’ve agreed to do a panel at OSBC on 3/25 with Jim Zemlin of the Linux Foundation on “what Open Source can learn from Microsoft”.  As all of the different organizations in IT continue to evolve, we’ll learn from each others’ best practices and make increasingly better software.  As in science, this incremental improvement will move all of us forward.

Comments RSS
  1. Lenny said:

    Those who do not understand Unix are condemned to reinvent it, poorly.

    ~ Henry Spencer

    posted at 06:32PM 02/27/2008
  2. Sam Ramji said:

    Lenny:

    Since my team includes architects of AT&T System V R/4 and Sequent Computer Systems, you can see that I believe a thorough knowledge of Unix is important to delivering modern operating systems.  

    The Windows Server engineering team has many veterans of not just Unix but VMS and MVS.  These deep histories continually inform our design and development process as we advance our server operating system.

    posted at 07:22PM 02/27/2008
  3. An aspect of the open source software nirvana has been the end of Microsoft's dominance. Well, anyone who sees Linux, OpenOffice or another OSS project/product as the death nail in Microsoft's coffin is not living in reality. It pains me to say this;

    posted at 12:05AM 02/29/2008
  4. Lenny said:

    MS can keep their dominance all day and night. Most OSS guys dont want MS 'dead', its just the loud minority.

    I'd prefer if they stopped doing all the underhanded nonsense like OOXML, lectures about IP on schools, bribery to get their software installed on public / government computers (s. latest case in Nigeria).. just to name a few.

    posted at 12:43PM 02/29/2008
  5. This is encouraging. I'd be interested to see a similar list for other core products, such as Office or Visual Studio or SQL.

    posted at 01:22PM 02/29/2008
  6. Stefano Baron said:

    I´ve praise Microsoft products since when I bought a Z-80 CP/M Softcard for my beloved Apple][.

    I have very deep experiences migrating several Netware servers to NT4, then NT4 to 2000 and now 2000 to 2003.

    I really like the way Microsoft do the server OS developement.

    posted at 01:48PM 02/29/2008
  7. if MS are really committed to learning from OS they could just open source all their products and 'do it properly'. otherwise is just FOSS in a suit and it looks horribly uncomfortable and doesn't fit.

    posted at 01:50PM 02/29/2008
  8. RichB said:

    Open Source development seems to me to gain strength from the development procedures it invariably uses. For example, a distributed source control system/patchset based approach alleviates all the Forward Integration and Reverse Integration pains I hear about. The distributed system also helps to keep unfinished code out of the trunk until it's ready. There have been blogs explaining that VS2008 was developed more along these lines. Open Source systems always use a bug tracking system with powerful searching to allow quick and easy triaging. Then there's a package management, dependency management system which enables dogfooders to easily upgrade to the latest "bits" without downloading a multi-gig RAR set and wiping the system.

    These procedures would be equally useful in a closed-source system as in an open source system - I would guess that Apple use a lot of these techniques given the huge number of open source components they integrate into their OS along with patches from inside the company.

    I'd be interested to know how Windows Server 2008 has used these techniques.

    posted at 02:12PM 02/29/2008
  9. xeno said:

    No one uses PHP as a cgi. In fact no one uses CGI's anymore. Using PHP as a CGI kills the speed of PHP. Even with FastCGI, PHP as an Apache module runs faster. How about running PHP as a module as well rather than adding onto to the overhead and the system calls it will have to make. Otherwise people are just going to use Apache instead so they can get the speed gains.

    posted at 02:13PM 02/29/2008
  10. AC said:

    You haven't learned that the more widely available the source code is for public testing, scrutiny, and experimentation, the more rapidly bugs will be discovered ?

    Isn't "OPEN" what works really well in open source development ?

    Or did you mean: "What development principles can we apply without actually having to share?"

    posted at 02:21PM 02/29/2008