Windows 8中的酷功能-快速啟動詳解

來源:互聯網
上載者:User

  過去經常為了最佳化家裡的Windows 7系統啟動時間所苦惱,為此我還特地買了塊固態硬碟和可以做Smart Cache的主板進行最佳化,此後就經常用安全衛士360的啟動時間最佳化作為評測,看到經過最佳化的電腦可以用17秒時間啟動系統並且在安全衛士360中顯示擊敗了全國99%的電腦,不禁飄飄然起來。然而最近工作用的膝上型電腦因為工作原因升級了Windows 8 RTM版,卻驚訝的發現在我的大黑Thinkpad W520上,竟然啟動時間是7秒,沒看錯,真的是歎為觀止的7秒!!! 比較一下同樣用SSD啟動的家中的Mac Air竟然還要勝上一籌。那麼究竟Windows 8中暗藏了什麼玄機呢?讓我們一探究竟!

  想想大家是不是都曾經為了最佳化啟動時間苦惱過?聰明的你也許會採用過去我常用的方式-休眠方式,但是這種方式顯然由於要保持通電狀態維持記憶體狀態而或者不利於筆記本電池的壽命或者對台式機還是費電。Windows 8的出現就是為了滿足我們可以高效快速的冷啟動。其實在Windows 7中已經對啟動過程做了適當的最佳化和改進,例如並行載入裝置驅動和服務啟動,但是Windows 8顯然更進了一步,確切的說Windows 8創新性的結合了冷啟動和休眠方式來加速啟動過程。

  那麼Windows 7中的啟動和關機過程涉及了哪些環節呢?

  一個完整的關機過程包括了:

  選擇開始菜單中的關閉按鈕或按下電源開關或者應用程式通過調用 API ExitWindowsEx() 或 InitiateShutdown() 等啟動關機。

  Windows 系統將關機資訊廣播給所運行應用程式,讓他們有機會來儲存活躍資料和設定狀態;應用程式還可以請求一點額外的時間。

  Windows 系統將關閉每個登陸的使用者會話。

  Windows 系統將系統關閉資訊發送給所有服務並告知關機過程已經開始,隨後有序的將其關閉,關閉過程是並行的停止服務,對於具有依賴關係的服務串列關閉。如果服務沒有響應,系統將強制關閉。

  系統也會告知所有裝置,將其關閉。

  Windows關閉自身系統會話(會話0)

  Windows系統將所有掛起的資料重新整理到硬碟並確保完全儲存。

  Windows系統通過ACPI電源介面通知底層電源模組關機。

  對於系統的啟動過程呢?(我還將在未來的無盤SAN Boot引導Windows Server 2012的部落格裡面展開論述)

  按下電源開關後, PC 的韌體啟動開機自我測試 (POST)過程(大家熟知的POST),並載入韌體設定。這個預引導過程結束時會檢測到一個有效系統磁碟才繼續。(當然我們需要在BIOS中設定檢測到硬體後的引導順序)

  Firmware 的嵌入式啟動程式讀取主引導記錄 (MBR),隨後啟動 Bootmgr.exe。Bootmgr.exe 在 Windows 開機磁碟分割上尋找並啟動 Windows 載入程式 (Winload.exe) 。

  載入啟動 Windows 核心所需的基本驅動程式然後Windows的核心程式開始運行,在此過程載入系統註冊表登錄區和附加標記為 BOOT_START 的驅動程式到記憶體中。

  Windows核心將控制傳遞給會話管理器進程 (Smss.exe) 初始化系統會話,然後載入和啟動未標記為 BOOT_START的裝置和驅動程式。

  Winlogon.exe 啟動,顯示使用者登入螢幕,服務控制管理員啟動服務,相應的組策略指令碼運行。當使用者登入時,Windows 將建立該使用者的會話。

  Explorer.exe 啟動,系統將建立初始化案頭,並顯示它的桌面視窗管理員 (DWM)進程。

  從上面的關機過程中,可以發現系統需要關閉所有的使用者會話和核心會話,關閉服務和裝置然後才會徹底關機。

  而 Windows 8可以快速啟動的關鍵改變在於:

  在 Windows 8中會關閉使用者會話,但不再關閉核心會話而是以柔性的休眠方式處理。相比充分休眠方式,由於應用程式使用的記憶體頁很多,相對的如果只保留系統會話 0 的休眠狀態資料實際是會小很多的,這樣會大大減少休眠所用到的記憶體回寫到磁碟的時間。休眠狀態就是指寫到磁碟 (hiberfil.sys) 上的檔案有效儲存系統狀態和記憶體的內容資訊,然後恢複和還原的時候在將內容讀取回記憶體。Windows 8的冷啟動使用了這種技術,讀取休眠檔案和重新初始化驅動程式的時間會快很多,對於大多數主機上會有30-70%在的顯著提升。這一點也比較容易看出來,聰明的各位看官你懂得:

  從休眠方式恢複的速度顯然比重新初始化恢複快很多(這不就是投機的我們之前會可以選擇休眠的原因嗎)。另外,Windows 8還增加了多階段恢複的功能,類似單機系統的分布式作業拆解,例如如果你是i5或i7四核的主機將充分利用所有核心並發讀取和解壓縮休眠Hibernate檔案,要知道解壓縮還是比較消耗CPU的;這個功能對於我們從休眠狀態恢複系統同樣有了很大的提升!

  另外值得一提的如何對待休眠檔案,在Windows 8系統中用 dir /s /ah hiberfile.sys 也許你會發現這是相當大的一個。預設是以實體記憶體的 75%作為休眠檔案的大小。基本上是作為系統為了進入休眠狀態時寫出的狀態資料所保留大小。實際上作為快速啟動,它通常只是是實體記憶體的 10 ~15% (根據驅動程式、 服務和其他因素而異)。

  另一個重要 Windows 8 的快速啟動特點是,儘管這種方式不會完全枚舉所有"隨插即用"的裝置驅動程式,但快速驅動模式仍然會初始化驅動程式。因此在快速啟動方式下的冷啟動仍然可以和從前一樣從容應對硬體環境的改變。當然大家如果有條件用SSD快速啟動的效果會更加明顯,你也懂得即便是讀少量的休眠檔案固態盤也比機械硬碟給力。

  還有一個值得介紹的其實也多餘一說的是如果你的PC機不算老,那麼當然對比用老的BIOS啟動,新的UEFI(整合可延伸韌體介面)BIOS的啟動速度還是快很多的。UEFI在通電後會首先初始化CPU和記憶體,與BIOS不同,接下來其他裝置的載入和初始化則將有可能被平行處理,這將大大提高系統的啟動速度。當然現在絕大多數主機的主板都支援UEFI模式:)

  最後,檢查一下你的Windows 8是不是啟動了這個功能吧,當然預設應該是開啟的:

  在命令列運行powercfg /a , 可以看到我的系統已經啟用了快速啟動功能。

 

  通過控制台,也可以設定和查看:

  最後說明一下,大家可能知道可以通過運行 powercfg /hibernate off命令禁用休眠和回收磁碟空間,不過看了前面介紹的快速啟動部分也許你該明白這樣做,不僅僅將禁用休眠連快速啟動功能也損失了。如果你想直接回到Windows 7

  的啟動狀態,可以運行shutdown /s /full / t 0 關機或者選擇從圖形介面重新啟動都會觸發一箇舊的冷啟動過程,但是為什麼要退回去呢?

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.