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

Cyb*_*ist 2 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);
Run Code Online (Sandbox Code Playgroud)

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

Revision=196608
MinorRevision=0
Minor=1
Major=5
MajorRevision=3
5.1.2600.196608
Run Code Online (Sandbox Code Playgroud)

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

Revision=131072
MinorRevision=0
Minor=2
Major=5
MajorRevision=2
5.2.3790.131072
Run Code Online (Sandbox Code Playgroud)

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

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

phe*_*nry 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.

Windows版本号的源代码.