Several blogs talk about a new Boot mode in Windows 8, which is called Hybrid Boot. Today I want to tell you some things you can't read on those blogs.
If you followed my guide to trace Vista/7 boot issues you found out how Windows boots. After loading all boot drivers and initializing the devices (PreSMSS), Windows starts the session manager which initializes the registry and other devices and drivers for not boot relevant devices (SMSSInit). Next the service manager starts all services, the login screen occurs and the group policies run. In the next steps the Desktop is loaded all all startup applications run. But is this really needed all time? Till Windows 7 you can run Hibernation to avoid this. When you use Hibernation all applications stay running, they are suspended and written with all other data into the hibernation file. In Windows 8 Microsoft combines hibernation with normal boot.
So how is it done?
If you followed some technical blogs know that some internal papers of ideas leaked last year. And those docs show the orignal name of Hybrid Boot. It was called: "Logoff + Hibernate":
If you look at this Summary of the shutdown and compare it to Windows 7 you see that only the user session with all running applications are closed (logoff) which takes 2.9s for me. The Session 0 (service) is not closed.
In the next step the services and the kernel are suspended and written to to hibernation file. So here you can see the difference. With hibernation all programs stay open, with hybrid boot the applciations are closed and next the Windows is hibernated.
So the original developer name hits the nail. Hybrid boot is logging the user off and suspending the rest.
And how does the boot work?
To see this look at this picture:
If you compare it to Windows 7 you can see some difference and some parts you already know. 1 difference is the boot type which explicit shows hybrid boot and next the first step is no longer the PreSMSS Phase. With Hybrid boot, the system (kernel, devices, drivers and the services) are resumed from hibernation and this is called SystemResume. This acts the same way we know it from Windows 7. The following picture shows the suspend (happens at "shutdown" which I explained earlier) and resume times:
And you can see that it looks the same what we know as hibernation/sleep - resume from Windows 7. In my example resuming the System (SystemResume) only takes 7.5 seconds. And here you can see the real advantage. All drivers, devices are no longer needed to be initialized and started every boot. Also all the services don't need to be started at each boot. So the PreSMSS, SMSSInit and the starting services part of WinLogonInit are now merged into SystemResume which is much, much faster because the data can be sequentially read from the hibernation file and resuming a suspended driver or service is much, much faster compared to start the the "old" way.
The rest of the hybrid boot is the same like the traditional boot. WinLogonInit shows the LogonScreen where you enter your password, next the Desktop is loaded and all startup apps are loaded.
In my example the complete boot is done in 12.7 seconds. And this example was done with a really old and slow HDD (5400rpm IDE). So Windows is started very, very fast. Which a faster HDD you have a power on and ready experience in a short time.
So, lets summarize what Hybrid boot is. At shutdown Hybrid boot is logging the user off, closing all applications, suspending the rest of the system into the hibernation file. At boot Hybrid boot is resuming the devices, drivers and services, next the user logs on and all startup apps are loaded.
Q: Is Hybrid boot enabled by default and when can I use it?
A: To use Hybrid boot, your system must have a hibernation file and the drivers must support hibernation. Hybrid boot is not available if you run Windows 8 in a Virtual Machine. To see if hybrid boot is used, check it under the power plan options:
and verify that the option "Enable Hybrid boot" is checked.
Q: What can impact the performance/Why is my system still booting slowly?
A: This maybe BIOS related, that the BIOS takes too long to initialize. Next, resuming devices and drivers can cause delays. But the biggest delay can occur due to the applications that you run at startup. This is the same like in all Windows versions. Run msconfig.exe or AutoRuns to remove useless software.
Q: I got a leaked version and what to trace it myself. How do I do that?
A: When the public Beta/RC with the new Windows 8 SDK / WPT is out, I'll update the guide with the instruction to trace slow hybrid boot issue.