有人可以解释这个Windows操作系统版本编号的例子吗?

时间:2011-03-18 22:16:26

标签: c# windows operating-system

我今天偶然发现了这个奇怪的问题,同时根据运行的Windows操作系统,在应用程序中使用某些代码来查看不同的路径。以下代码:

OperatingSystem os = Environment.OSVersion;
Version v = os.Version;
string osv = v.ToString();
Console.WriteLine("Revision=" + v.Revision.ToString());
Console.WriteLine("MinorRevision=" + v.MinorRevision.ToString());
Console.WriteLine("Minor=" + v.Minor.ToString());
Console.WriteLine("Major=" + v.Major.ToString());
Console.WriteLine("MajorRevision=" + v.MajorRevision.ToString());
Console.WriteLine(osv);

在我的XP SP3工作站上,上面的代码显示:

Revision=196608
MinorRevision=0
Minor=1
Major=5
MajorRevision=3
5.1.2600.196608

在我们的一个Win2003 SP2服务器上显示:

Revision=131072
MinorRevision=0
Minor=2
Major=5
MajorRevision=2
5.2.3790.131072

我对此感到有点惊讶,因为主要版本号表明XP和Windows Server 2003基本上是Windows的相同版本,只有较小的版本差异。不完全确定术语“MajorRevision”的含义。

我假设完整版本号中的第三个术语是内部版本号,但在两种情况下v.Build实际上都返回空白。

6 个答案:

答案 0 :(得分:8)

这是Windows NT内核的版本号。

  • 5.0:Windows 2000
  • 5.1:Windows XP
  • 5.2:Windows Server 2003
  • 6.0:Windows Vista,Windows Server 2008
  • 6.1:Windows 7,Windows Server 2008 R2
事实上,Windows Server 2003在内核级别上与Windows XP非常相似,但显然内核层之间存在很多差异。 Windows Server 2008内核实际上与Windows Vista SP1内核相同,这就是为什么Server 2008的第一个Service Pack称为SP2。 Windows 7和Server 2008 R2不仅使用相同的内核,而且甚至可以使用相同的Service Pack将它们升级到SP1。

Source for Windows version Number.

答案 1 :(得分:2)

http://msdn.microsoft.com/en-us/library/ms724832(v=vs.85).aspx

XP和2003服务器基本上来自同一个世界,次要版本(在您的情况下,2或1)是两者之间的识别因素。

答案 2 :(得分:1)

这非常准确。使Windows内核打勾的核心代码在XP和Windows 2003之间是相同的。这也发生在后来,Vista和Windows 2008共享相同的核心。和Win7和Windows 2008 R2。

答案 3 :(得分:1)

它出了什么问题?大多数源(内核,shell等)在Windows操作系统的客户端和服务器版本之间共享,主要区别在于附加软件(例如AD服务器和协议)以及对系统组件的调整(例如,更长的调度程序量子)

Windows 2003服务器主要基于XP代码库,还有一年的开发时间(XP诞生于2002年);这是典型的Windows服务器发布计划(在客户端操作系统基础之后的一年)。

Trivia:您可能会注意到Windows XP的IA64版本也是5.2,因为它基于2003服务器代码库(因为它是他们开始使用IA64时的“最先进的”Windows)。

答案 4 :(得分:1)

来自MSDN

MajorRevision获取修订版号的高16位。 MinorRevision获取修订号的低16位。

第三个数字实际上是Version.Build。它不能是空白的,它是一个数字。

答案 5 :(得分:0)

我认为MajorRevision是指服务包价值。

有很多信息here,但命名似乎有点不同。