看似先進的差分更新技術,卻並不完全是為你好

2024-07-19     三易生活

就在最近這幾天,微軟方面發布了一個新的Windows 11測試版系統Dev Channel build 26120。除了一如既往的各種Bug修復和細節改善之外,這個版本的Windows還正式啟用了一款名為「檢查點累積更新」的新功能。

但值得注意的是,在Windows系統從誕生至今的幾十年時間裡,它僅僅只更調整過三次系統更新的機制。

幾十年沒變的Windows更新機制,近年來第二次大改

在最初很長很長的一段時間裡,Windows使用的都是被稱為「服務包」的更新機制。在當時,每一個更新安裝包之間都是相對獨立的。打個比方,假設某個Windows版本(比如Windows xp)自最初發布之日、到用戶安裝的那一天為止,已經發布了100個更新補丁,那麼在用戶安裝完系統之後,就可能需要下載100個更新包,並且一個一個地安裝完畢,才能讓自己的系統補丁真正達到最新的狀態。

事實上,但凡經歷過Windows 9x、包括Windows XP時期的用戶可能會記得,在當時給電腦「更新一次系統補丁」,很可能就意味著要消耗一整天的時間。

後來隨著Windows 10、Windows 11的到來,微軟方面推出了「積累更新」功能。在這個理念下,微軟會定期發布名為「積累更新」的補丁包,而且每一個新版的積累更新都會包括之前所有版本里的變化。

這樣一來,即便用戶安裝的是最初的RTM版本系統(比如Windows 11的21H1),那麼在理論上來說,也只需要安裝一到兩個積累更新包,就能升級到最新的24H2版本,並擁有迄今為止全部的安全和功能補丁。

很顯然,積累更新機制大大改善了Windows系統的更新效率、降低了更新安裝的難度。但它依然有一個缺點,那就是對於本就正常使用電腦、而且經常更新系統的用戶來說,「新版積累更新包含舊版全部內容」的設計就意味著他們實際上會浪費一部分網絡流量和時間,去下載實際上可能早就安裝過的補丁。

那麼有沒有一種更新設計,可以同時兼顧「很久才更新一次系統的用戶」與「經常主動更新的用戶」兩者的最佳利益呢?有的,這便是微軟此次發布「檢查點積累更新」的意義。

在這種新的更新機制里,用戶每安裝一個系統更新,都將形成一個被稱為「檢查點」的特徵碼。無論這個更新是積累更新、獨立更新,甚至是用戶手動下載補丁包、離線安裝的更新,都會被「檢查點」機制所記錄。

之後當微軟再推出新的積累更新包時,伺服器就會通過檢測每一台電腦里的「檢查點」,知道它實際上還需要安裝哪些補丁,並專門為其定製下載內容,只下載那些沒有安裝過的補丁(而不是完整的積累包)。如此一來,從理論上來說,新的更新機制將可以顯著減小補丁下載、安裝時的流量和時間消耗。

檢查點積累更新很好,但也不會造福所有的用戶

但這是否就意味著這種新的Windows更新包機制,就沒有任何缺點了呢?答案顯然是否定的。

一方面,但凡折騰過近幾代Windows系統、特別是參與過insider測試的用戶可能都知道,Windows更新的意義實際上並不只是修復Bug和增添新功能。對於本就不穩定的測試版系統來說,過去的那種更新機制其實還有別的意義,正因為它包含了「用戶已安裝過的全部補丁」,所以一旦系統本身出現損壞時、更新操作往往可以起到修復的重要作用。

手動下載、安裝更新包看起來麻煩,但有時候它能有很大的作用

相比之下,當新的「檢查點積累更新」方式不再下載用戶之前已經安裝過的補丁內容時,就可能會失去這種修復缺損系統的額外作用。當然,只能說有這種可能,因為目前尚不清楚微軟「檢查點」機制的具體工作原理。假設它包含了對已安裝更新的完整性檢查,那麼還是有可能保留這種「系統自我修復」的潛在功用的。但如果真的只是識別此前的更新記錄,就確實可能會出現我們所擔心的這個問題了。

另一方面,微軟最新版的這種更新機制,明顯是專注於優化「消費者用系統更新功能,從官方伺服器上下載更新」的體驗。但問題就在於,Windows系統並不是只有這一種更新方式,它本身也支持離線安裝更新包。不管是最早的功能服務包、還是後來的積累更新程序,微軟方面都允許用戶手動通過官網來下載,然後自行拷貝給那些不聯網的機器安裝更新。

但很顯然的是,最新的「檢查點積累更新」技術是不適用於這種手動安裝方式的,因為屆時不同的電腦真正需要下載的更新包內容可能都會不同。因此微軟對於那些依然還有手動安裝需求的用戶,最大的可能是繼續在官網提供「全量更新包」的下載。這當然可以保證離線更新功能繼續起作用,但它可就沒有省流量、省時間的諸多好處了。

差分更新技術,行業進步還是控制收緊?

值得注意的是,類似的現象並非個例,而是目前在作業系統和軟體行業正普遍發生的事情。不僅是Windows系統的更新機制,在許多朋友更熟悉的Android系統里,大量的機內應用商店以及App內部的熱更新,現在都採用的是這種「差分更新」機制,也就是它們只會從伺服器上下載最適合當前硬體、且只需要更新的那一部分代碼。

Android的APP Bundle應用格式也是類似技術的一種體現

但是如果用戶想要自己去下載或備份安裝包,那麼他們下載和安裝的「完整版」程序Apk里,就很可能會包含大量對當前設備無用的部分。其中包括針對其他SoC的優化代碼、針對低解析度機型的圖片素材,甚至是已經被廢棄的舊版運行庫等。換句話說,手動安裝和更新的應用,可能會比聯網自動更新的占據更多的存儲空間,甚至可能在穩定性和執行效率上還存在微妙的差異。

很顯然對於用戶來說,這樣的現象自然是不利的,但另一方面這就是廠商們相當於已經給出了選擇。只要用戶選擇更「省事」的內置應用商店、選擇應用自帶的熱更新,就能享受到新技術帶來的好處。至於說這裡是不是有廠商的有意引導、控制軟體下載和運營渠道的意圖,就只能說是「莫須有」了。

【本文圖片來自網絡】

文章來源: https://twgreatdaily.com/zh-cn/10e0d9865710a3ff6b1102ff7a95b815.html