這些年一直對 Windows 10 與 Windows Server 的
版本編號
困擾著,經常會聽到什麼
Windows 10 周年更新
、
Windows 10 創作者更新
之類的名稱,完全摸不著頭緒,你也至少給個年份或數字之類的吧。從 Windows Server 2016 開始,又開始區分 LTSC 與 SAC 通道,又是一場眼花撩亂了版號大戰。今天我就用這篇文章來好好釐清背後的邏輯吧!
認識 Windows 10 版本
第一版的 Windows 10 從 2015 年七月推出,可以說是末日的 Windows 版本,今後所有的 Windows 通通都叫做
Windows 10
版。這樣的決定是好是壞很難說,對一般使用者來說可能不礙事,但對開發人員就會很困擾。因為不同版本之間造成的差異,就會有一定程度的相容性問題,就以
Windows Containers
來說,不同的 Windows 10 版本,其可以使用的 Base Image 就是不一樣的,所以我們必須非常清楚的區分不同 Windows 10 版本的細部差異!
正常人都會認為
Windows 10
的版本就是
10
不是嗎?錯!
就以我現在用的這台筆電為例,目前安裝的 Windows 10 版本為
10.0.17763.379
,你可以從
命令提示字元
輸入
ver
命令查詢得知,預設進入
命令提示字元
也會直接在第一行看到版本號:
Microsoft Windows [版本 10.0.17763.379]
(c) 2018 Microsoft Corporation. 著作權所有,並保留一切權利。
C:\>ver
Microsoft Windows [版本 10.0.17763.379]
如果你執行 winver
命令的話,還會看到視窗版本的版本資訊,此時你又會多看到另一個版本資訊:
這裡所顯示的版本,將區分為:
版本: 1809
OS 組建: 17763.379
寫到這裡,各位已經可以看到以下 4 種版本資訊:
10.0.17763.379
17763.379
但這還不是最困擾的,因為 Microsoft 還對不同的 Windows 10 版本設定不同的「行銷名稱」,你可能多多少少會聽到以下版本名稱:
Windows 10 十一月更新
Windows 10 周年更新
Windows 10 創作者更新
Windows 10 秋季創作者更新
Windows 10 四月更新
Windows 10 十月更新
其相對應的英文名稱為:
Windows 10 November Update (version 1511)
Windows 10 Anniversary Update (version 1607)
Windows 10 Creators Update (version 1703)
Windows 10 Fall Creators Update (version 1709)
Windows 10 April 2018 Update (version 1803)
Windows 10 October 2018 Update (version 1809)
Windows 10 May 2019 Update (version 1903)
國外的網站,大多數網站都會在這些行銷名稱後面加上 version 版本號。但是在國內,許多媒體並沒有特別標示版本或年份,真的會讓人無從判斷這些版本的新舊。
重新認識 Windows 10 版本編號
身為一位開發人員,需要能夠區分的版本,主要就是 10.0.17763.379
這項。不過這個編號比較難記,記得另一個 1809
版號可能會簡單需多。
所謂的 1809
其實是 2018 年 09 月釋出的意思,但是又不一定是這樣,因為最近一版的 Windows 10 雖然版本為 1809
,但行銷名稱卻是 October 2018 Update
(十月更新),是不是非常 OOXX 啊!
接著,我們來拆解 10.0.17763.379
版本的細節,這 4 個數字分別代表的意義是:
作業系統的主要版本 (Major Version Number)
作業系統的次要版本 (Minor Version Number)
作業系統的核心組建版本 (OS Build Version)
作業系統的更新組建版本 (Update Build Revision) (UBR)
你也可以透過以下 PowerShell 取得相關版本資訊:
Get-ItemProperty -Path "HKLM:\Software\Microsoft\Windows NT\CurrentVersion" | Select ProductName,ReleaseId,InstallationType,CurrentMajorVersionNumber,CurrentMinorVersionNumber,CurrentBuild,UBR
ProductName : Windows 10 Pro
ReleaseId : 1809
InstallationType : Client
CurrentMajorVersionNumber : 10
CurrentMinorVersionNumber : 0
CurrentBuild : 17763
UBR : 379
從上述命令的輸出可以看見,原來 1809
不能稱為 版本
,叫做 ReleaseId
(發行代號) 應該比較合理些,走我們軟體這行真的很可憐,我們的工作需要清晰明瞭的邏輯,但卻經常被這些似是而非的名詞荼毒。
主要版本與次要版本就不用說了,因為這幾年的 Windows 10 這兩版都沒有動過,但核心組建版本與更新組建版本就相對重要許多。
核心組建版本
基本上不同的核心組建版本對我們帶來最大的影響,就是 Windows Containers 基底映像 (Base Image) 的相容性。不同的作業系統核心組建版本,只能執行特定核心組建版本的基底映像,所以選錯版本就無法正確執行容器。
更新組建版本
更新組建版本不同,不影響 Windows Containers 執行,只差在安全性與功能修正而已,不牽涉核心調整。
以下我列出目前已知的所有 Windows 10 版本資訊:
Windows 10 (initial version released July 2015) (Build 10240
) (version 1507
)
Windows 10 version 1511
(Build 10586
)
Windows 10 November Update (version 1511)
Windows 10 十一月更新
Windows 10 version 1607
and Windows Server 2016 (LTSC) (Build 14393
)
Windows 10 Anniversary Update (version 1607)
Windows 10 周年更新
Windows 10 version 1703
(Build 15063
)
Windows 10 Creators Update (version 1703)
Windows 10 創作者更新
Windows 10 version 1709
(Build 16299
)
Windows 10 Fall Creators Update (version 1709)
Windows 10 秋季創作者更新
Windows 10 version 1803
(Build 17134
)
Windows 10 April 2018 Update (version 1803)
Windows 10 四月更新
Windows 10 version 1809
and Windows Server 2019 (LTSC) (Build 17763
)
Windows 10 October 2018 Update (version 1809)
Windows 10 十月更新
Windows 10 version 1903
(Build 18362
) (Code name: 19H1)
(Announcing Windows 10 Insider Preview Build 18362)
認識 Windows Server 版本
從 Windows Server 2016 開始,伺服器作業系統將再區分兩種發行通道 (Channel),分別是 長期維護通道 (Long-Term Servicing Channel) (LTSC
),與 半年通道 (Semi-Annual Channel) (SAC
)。
簡單來說,所謂 發行通道 講的就是不同的 產品線,有著不同的技術支援週期與功能差異。如果要類比之前所有的 Windows Server 版本,我們可以說:「以前的 Windows Server 只有 LTSC
版本,從 Windows Server 2016 開始才額外推出 SAC
版本」。
長期維護通道 (LTSC)
每 2 ~ 3 年推出一個 LTSC 版本
享有 5 年主流技術支援與另外 5 年延伸技術支援
系統更新只會包含安全性更新,不會包含新功能更新
LTSC 版本可以透過既有的微軟銷售通路取得授權
半年通道 (SAC)
每半年推出一個 SAC 版本
僅享有 18 個月的技術支援
系統更新會包含安全性更新與新功能更新
通常下一代的 LTSC 版本會包含曾經在 SAC 推出的新功能
SAC 版本只有搭配軟體保證的大量授權客戶與透過 Azure Marketplace 才能取得
請注意:SAC
不是 LTSC
的加強版,也不是 LTSC
的升級版,所以不能直接從 LTSC
升級到 SAC
版本,他們兩個就是完全獨立且不同的伺服器作業系統產品。
我們到目前為止已經聽到過幾種「版本」了?不知道各位亂了沒?我之前是被困擾很久啦!XD
Windows 10
17763
目前為止,從 Windows Server 2016 開始的 LTSC
通道推出了以下兩個版本:
Windows Server 2016 (LTSC) (Build 14393
.0
)
Windows Server 2019 (LTSC) (Build 17763
.379
)
我以 Windows Server 2019 (LTSC
) 為例,在主機上執行以下 PowerShell 命令:
Get-ItemProperty -Path "HKLM:\Software\Microsoft\Windows NT\CurrentVersion" | Select ProductName,ReleaseId,InstallationType,CurrentMajorVersionNumber,CurrentMinorVersionNumber,CurrentBuild,UBR
你會得到以下資訊:
ProductName : Windows Server 2019 Datacenter
ReleaseId : 1809
InstallationType : Server
CurrentMajorVersionNumber : 10
CurrentMinorVersionNumber : 0
CurrentBuild : 17763
UBR : 379
此時你會發現到,Windows Server 2019 (LTSC
) 的版本資訊幾乎跟 Windows 10 (version 1809
) 一模一樣,只有 ProductName
與 InstallationType
不同而已。沒錯,這兩個作業系統共用完全相同的核心組建版本!這同時也意味著 Windows Containers 也可以共用完全相同的基底映像(Base Image)。
上述資訊中的 InstallationType
則代表安裝的類型,因為 LTSC
版本支援 桌面體驗版本 (Desktop Experience) 與 伺服器核心 (Server Core) 版本。但 SAC
版本就僅支援 伺服器核心 (Server Core) 版本而已,完全沒有 GUI 介面,只能用命令提示字元與 PowerShell 管理伺服器。
目前為止,Windows Server 的 SAC
通道推出了以下 3 個版本:
Windows Server, version 1709 (SAC) (Build 16299
.15
)
Windows Server, version 1803 (SAC) (Build 17134
.648
)
Windows Server, version 1809 (SAC) (Build 17763
.379
)
從上述版本編號來看,你會發現 Microsoft 從 SAC
通道的版本中,完全從產品名稱中移除了 2016
或 2019
字樣,取而代之的就是 1709
或 1809
之類的 ReleaseId
!
我以 Windows Server, version 1809 (SAC
) 為例,在主機上執行以下 PowerShell 命令:
Get-ItemProperty -Path "HKLM:\Software\Microsoft\Windows NT\CurrentVersion" | Select ProductName,ReleaseId,InstallationType,CurrentMajorVersionNumber,CurrentMinorVersionNumber,CurrentBuild,UBR
你會得到以下資訊:
ProductName : Windows Server Datacenter
ReleaseId : 1809
InstallationType : Server Core
CurrentMajorVersionNumber : 10
CurrentMinorVersionNumber : 0
CurrentBuild : 17763
UBR : 379
你可以比較一下跟本文稍早列出的 Windows Server 2019 (LTSC
) 版本資訊相比,你會發現從 Productname
中已經看不見 2019
字樣,而是只寫 Windows Server Datacenter 而已,但是其他版本資訊卻又完全一樣,這件事就困擾我一段時間,我曾經一度認為 Windows Server 2019
是不是就完全等於 Windows Server, version 1809
呢?後來我的理解是,沒錯,只要核心建置版本完全一樣,就可以視為完全相同的作業系統,只是「產品名稱」不同而已!
所以 Windows 10, version 1809
完全等於 Windows Server 2019
,也完全等於 Windows Server, version 1809
,只是產品名稱與內建的功能不同而已,這三套共用完全相同的作業系統核心 (10.0.17763.379
)!
最後,我們可以從 Windows Server 執行以下命令,取得更細部的版本資訊:
Get-ComputerInfo | Select WindowsProductName, WindowsVersion, WindowsInstallationType, OsServerLevel, OsVersion, OsHardwareAbstractionLayer
從 Windows Server 2019 (LTSC)
得到的結果是:
WindowsProductName : Windows Server 2019 Datacenter
WindowsVersion : 1809
WindowsInstallationType : Server
OsServerLevel : FullServer
OsVersion : 10.0.17763
OsHardwareAbstractionLayer : 10.0.17763.194
從 Windows Server, version 1809 (SAC)
得到的結果是:
WindowsProductName : Windows Server Datacenter
WindowsVersion : 1809
WindowsInstallationType : Server Core
OsServerLevel : ServerCore
OsVersion : 10.0.17763
OsHardwareAbstractionLayer : 10.0.17763.194
這裡我們多看到一個新的 OsHardwareAbstractionLayer
版本編號 (10.0.17763.194
),跟同一台的 Update Build Revision (UBR) (10.0.17763.379
) 所列的不太一樣,但因為我這裡的 Windows Server 是跑在 Azure 的 VM 中,這台 VM 的 Host 主機也是一台 Windows Server,感覺這個版本應該是 Host 主機的作業系統版本才是,但我找不到佐證資訊證明這個推測。
Windows 10 and Windows Server 2019 update history
Windows 10 and Windows Server 2016 update history
Windows 10 企業版 LTSC | Microsoft Docs
What's New in Windows Server version 1809
What's new in Windows Server 2019
Windows Server servicing channels: LTSC and SAC
Windows Server release information | Microsoft Docs
Windows 10 - Wikipedia
Docker Images
Windows Server Core - Docker Hub
Windows Server Core Insider - Docker Hub
Nano Server - Docker Hub
Nano Server Insider - Docker Hub
Windows - Docker Hub
徹底釐清 Windows 10 與 Windows Server 的版本編號
這些年一直對 Windows 10 與 Windows Server 的版本編號困擾著,經常會聽到什麼 Windows 10 周年更新、Windows 10 創作者更新 之類的名稱,完全摸不著頭緒,你
Windows Container 版本相容性與多重架構容器映像介紹
自從 Windows 核心版本 v14393 開始,也就是 Windows Server 2016 LTSC 與 Windows 10 年度更新版,正式開始支援 Windows 容器,這意謂著企業可以
Windows Phone 7.5 (Mango) 開發學習資源整理
芒果終於要來了,昨天已經正式釋出 Windows Phone SDK 7.1 RTM 繁體中文版,而估計在幾週內應該所有 Windows Phone 7 的使用者就能夠自動更新到支援多國語系、完整的中...
Microsoft Certified: Azure Solutions Architect Expert
Microsoft Certified: DevOps Engineer Expert
CKAD: Certified Kubernetes Application Developer