Windows 8 has a problem – it really can boot up too quickly. So quickly, in fact, that there is no longer time for anything to interrupt boot. When you turn on a Windows 8 PC, there’s no longer long enough to detect keystrokes like F2 or F8, much less time to read a message such as “Press F2 for Setup.” For the first time in decades, you will no longer be able to interrupt boot and tell your PC to do anything different than what it was already expecting to do. Fast booting is something we definitely want to preserve. Certainly no one would imagine intentionally slowing down boot to allow these functions to work as they did in the past. In this blog I’ll walk through how we’re addressing this “problem” with new solutions that will keep your PC booting as quickly as possible, while still letting you do all the things you expect. Too fast to interrupt It’s worth taking a moment to watch (again, if you’ve already seen it) [url=http://channel9.msdn.com/posts/Fast-Boot" target="_blank">the fast boot video</a> posted by Gabe Aul in his previous post about [url=http://blogs.msdn.com/b/b8/archive/2011/09/08/delivering-fast-boot-times-in-windows-8.aspx" target="_blank">delivering fast boot times in Windows 8</a>. In this video you can see a laptop with a solid state drive (SSD) fully booting in less than 7 seconds. Booting this fast doesn't require special hardware, but it is a feature of new PCs. You'll still see much improved boot times in existing hardware, but in many PCs, the BIOS itself (the BIOS logo and set of messages you see as you boot up) does take significant time. An SSD contributes to the fast boot time as well, as you can imagine. If the entire length of boot passes in just seven seconds, the individual portions that comprise the boot sequence go by almost too quickly to notice (much less, interrupt). Most of the decisions about what will happen in boot are over in the first 2-3 seconds – after that, booting is just about getting to Windows as quickly as possible. These 2-3 seconds include the time allowed for firmware initialization and POST (< 2 seconds), and the time allowed for the Windows boot manager to detect an alternate boot path (< 200 milliseconds on some systems). These times will continue to shrink, and even now they no longer allow enough time to interrupt boot as you could in the past. On the Windows team, we felt the impact of this change first, and perhaps most painfully, with our own F8 behavior. In previous versions of Windows (as far back as Windows 95), you could press F8 at the beginning of boot to access an advanced boot options menu. This is where you’d find useful options such as Safe Mode and “Disable driver signing.” I personally remember using them when I upgraded my first PC from Windows 3.1 to Windows 95. F8 helped me quickly resolve an upgrade issue and get started using Windows 95. However, the hardware and software improvements in Windows 8 have collapsed the slice of time that remains for Windows to read and respond to the F8 keystroke. We have SSD-based UEFI systems where the “F8 window” is always less than 200 milliseconds. No matter how fast your fingers are, there is no way to reliably catch a 200 millisecond event. So you tap. I remember walking the halls and hearing people frantically trying to catch the F8 window – “tap-tap-tap-tap-tap-tap-tap” – only to watch them reboot several times until they managed to finally get a tap inside the F8 window. We did an informal study and determined that top performers could, at best, sustain repeated tapping at about a 250ms frequency. Even in this best case, catching a 200 millisecond window still depends somewhat on randomness. And even if you eventually manage to catch this short window of time, you still have to contend with sore fingers, wasted time, and just how ridiculous people look when they are frantically jamming on their keyboard. The problem we saw with our F8 key extends to any other key you may want to press during boot. For example, in the Windows 8 Developer Preview release, the F8 key led to a full set of repair, recovery, and advanced boot options. A different key allowed developer-focused options, such as enabling debugging or disabling driver signing. And on most PCs, there are additional keystrokes used by the firmware and advertised by messages during POST: “Press F2 for Setup” or “Press F12 for Network Boot.” Now, POST is almost over by the time these instructions could be displayed. And in many cases, the keyboard wouldn’t be functional until so late in POST that it’s almost not worth the time it would take the firmware to look for these keystrokes. Some devices won’t even try. Even so, every one of these keystrokes plays an important role, and we have historically counted on them to provide important interrupt functions in boot. However, now, there is no longer time to do any of them. [size=5]Defining the problem space[/size] We looked at these problems from many angles, and took a holistic approach to solving them. This effort spanned across developers, testers, and program managers, examining everything from the deepest parts of the kernel to the overall user experience. Approaching this first as an engineering problem, we identified the situations and scenarios that depended on keystrokes in boot and considered literally dozens of ways to restore functionality to each scenario in Windows 8. Here are some of the key scenarios pulled from this list:While we're hard at work making sure you never have to turn off your PC and can run in a connected standby state, we know that there will still be reboots for updating key system components. We've previously talked about [/i] and how we modernized and touch-enabled the core boot loader and choices. We've also made [url=http://blogs.msdn.com/b/b8/archive/2011/09/08/delivering-fast-boot-times-in-windows-8.aspx" target="_blank">boot go by very fast</a>[i][/i]. In fact, it is now so fast that we had to look at the design to enable the kinds of diagnostic boots required by those who do want to dig into their BIOS or load in alternative ways. In this post, Chris Clark, a program manager on our User Experience team, talks about the design of an incredibly fast boot experience.
--Steven <hr />
- Even when Windows is booting up correctly, you may want to do something different – for example, you may want to boot from an alternate device such as a USB drive, go to the firmware’s BIOS setup options, or run tools from within the protected Windows Recovery Environment image on a separate partition. In general, these scenarios were accomplished in the past mainly without the involvement of Windows, using firmware-specific keys such as F2 or F12 (or some other key that you couldn't quite remember!).
- You may need to troubleshoot a problem after something goes wrong, or want to undo something that just happened. Windows has many tools that assist with situations like these, such as allowing you to refresh or reset your PC, go back to a restore point using System Restore, or perform manual troubleshooting via the always-popular Command Prompt. In the past, these troubleshooting options were accessed primarily via the Windows boot manager, by pressing F8 at the beginning of boot.
- Some error cases in startup are difficult to automatically detect. For example, the Windows boot process may have succeeded, but errors in components that are loaded later actually make Windows unusable. These cases are rare, but an example of where this might happen is a corrupt driver installation causing the login screen to crash whenever it loads. On previous-era hardware, you could interrupt boot with a keystroke (F8, for example) and reach a suitable repair option before the crashing component was even loaded. Over time, it has gotten harder to interrupt boot in this way, and in Windows 8, it’s virtually impossible.
- We needed to enable certain startup options that are mainly used by developers – both inside and outside of Windows. Previously you could access these by pressing a key like F8 at the beginning of boot. These developer-targeted options are still important and include disabling driver signature enforcement, turning off “early launch anti-malware,” as well as other options.
- We pulled together all the options into a single menu – the boot options menu – that has all the troubleshooting tools, the developer-focused options for Windows startup, methods for accessing the firmware’s BIOS setup, and a straightforward method for booting to alternate devices such as USB drives.
- We created failover behaviors that automatically bring up the boot options menu (in a highly robust and validated environment) whenever there is a problem that would keep the PC from booting successfully into Windows.
- Finally, we created several straightforward methods to easily reach the boot options menu, even when nothing is wrong with Windows or boot. Instead of these menus and options being “interrupt-driven,” they are triggered in an intentional way that is much easier to accomplish successfully.
Download this video to view it in your favorite media player:
[url=http://media.ch9.ms/ch9/5955/f42cccac-fa67-4697-bba2-6231c4935955/DesigningPCsthatbootfasterthaneverbefore_high.mp4">High quality MP4</a> | [url=http://media.ch9.ms/ch9/5955/f42cccac-fa67-4697-bba2-6231c4935955/DesigningPCsthatbootfasterthaneverbefore.mp4">Lower quality MP4</a>[img]http://freepchelp.forum/data/MetaMirrorCache/dfccdcdc3c88cba7b00af7aa75046fdf._.gif[/img]
Source: [url=http://blogs.msdn.com/b/b8/archive/2012/05/22/designing-for-pcs-that-boot-faster-than-ever-before.aspx]Windows 8 Blog
Last edited: