With the expiration of Windows 2003 Server almost here I wanted to geek out a bit and discuss in detail how it is supported or not by Microsoft and from a technical code perspective just what the product is.
Some background I did work for Microsoft as an escalation engineer for Windows and had local copies of the source code I supported. I think it is helpful to people to understand this concept in the context of understanding patches from Microsoft. I could go into great detail on the complexities on maintaining the code but this I feel gives a good quick idea.
First let’s explore a few product versions before and after Windows Server 2003.
Windows NT 4 – this product is the same client and server
Windows 2000 – this product is the same client and server
Windows XP – this is a client only product
Windows 2003 – This is a server only product
Windows Vista – client only
Windows 2008 – does not exist at RTM code base level
Windows 2008 SP1 / Vista SP1 project – this product is the same client and server / re-combined server and client again
Windows Server 2008 R2 / Windows 7 – this product is the same client and server
Windows 2012 / Windows 8 – this product is the same client and server
From a development and source code perspective the release name of a project matter very little to the development team it is simple codename client or codename server. The source code is all the same and combines both the client (desktop edition) and server editions (SKU’s) all in the same code.
Windows XP departed standard of having a combined code for the various SKU’s in order to product a product to ship sooner for the consumer market.
After the release of Windows Vista and with the release of its server side companion Windows Server 2008 Microsoft then again combined the code trees with an SP1 release.
Windows 2003 is significantly different from Windows 2008 SP1. Windows Vista SP1 and Windows 2008 SP1 are in fact the same thing at the source code level.
To maintain in current day the source code for Windows 2003 in order to support security patches for the masses is a very high price tag for Microsoft. Microsoft moves a step closer to only maintaining the single code base system the products were originally designed to have.
Once the products are built out or “compiled” various binary editions are created using specific development tools for the target platform and preprocessor directives in the combined source code.