Phew!  We're all back from BUILD and focused on our next milestone.  It is fair to say we had an awesome time showing everyone Windows 8 in depth and all of our speakers and Microsoft attendees are unbelievably appreciative for the warm reception you gave the product.  We know it is early still--a developer preview--and there are lots of questions.  We're going to be answering them in new posts as we focus on using the Windows Developer Preview (WDP) as a baseline--so if you haven't been running it, consider it sort of like a prerequisite for many of the blog posts.

Boot is the sort of effort that gets no respect. It is either too long or all the work to make it nice and pleasant hopefully goes unnoticed since you never want to boot your machine. I remember a meeting many years ago where Bill Gates said (paraphrasing) "Boot is a one-line function call that computes a constant yet takes forever: fBoot = SystemBoot()" At the same time it seems like everything boots these days—phones, TVs, cable TV boxes, even my TV remote boots. In building Windows 8, we set out of take advantage of some new technology and revisited some old assumptions to totally rethink the boot experience. We also wanted to make it more accessible and better suited to devices without keyboards. Of course, we also did a lot of work to continue to minimize reboots altogether, but this post is about what happens when you do boot. Billie Sue Chafins authored this post. She is a long time program manager who spent many years on user interface design, and in this release she helped us to focus on the boot experience (in addition to the Metro style app sharing contract which you can learn about from BUILD here).
--Steven

With continued innovation in the hardware ecosystem, the biggest shift in firmware in 30 years, and software changes leading to boot times of ~7 seconds on machines with solid-state drives (SSDs), we decided it was time to bring the PC boot user experience into the 21st century. In a previous post by Gabe Aul, we discussed how fast startup mode will make faster boot times a reality in Windows 8. You may have noticed from his fast boot video that boot felt different – not only was it super fast, it was seamless, from the time the power was switched on all the way to the Start screen. In this post, we will explore how the team has reimagined the complete Windows boot user experience to make that possible.

If you think about the experience of powering up a PC today, first, you most likely see several circa-1980 text console screens flash by as the computer enters the Power-on Self-test (POST) phase of boot. A few seconds later, rendering is handed from the basic input/output system (BIOS) over to Windows, and you see a graphical animation before landing at the logon UI. In Windows 7 today, all of this happens over a span of about a minute on average. Now, imagine all of that flying by on your screen in approximately 7 seconds – that’s a lot of transitions in a short period of time!

Three screens shown left to right: the POST phase of boot, with white text on a black screen; the Windows logo shown during startup; the Windows 8 background image, with the words “Please wait…”

Once we realized just how fast boot was going to be in Windows 8, it was obvious that it was the perfect time to tackle the user experience to deliver something seamless, beautiful, and of consumer electronics quality.

Windows 8 will enter the market in a time when touch-first devices, such as the slate form factor, are becoming more and more prevalent. As such, we need to deliver a boot experience that is designed for touch, but works just as well for mouse and keyboard. From the beginning, we knew that it would be unacceptable to tell anyone that they’d need to go buy a physical keyboard to set up their machine or to perform recovery in the Windows Recovery Environment (Windows RE) if the PC cannot start.

Windows 8 will also enter the market in a time when the industry is shifting to the Unified Extensible Firmware Interface (UEFI) for BIOS on all new client systems. We will continue to support the legacy BIOS interface, but machines using the UEFI interface will have significantly richer capabilities. For instance, UEFI systems can render rich graphical experiences in native resolution via the Graphic Output Protocol (GOP) driver. With UEFI, the OS can finally communicate with boot firmware in a standard way; this work is strongly supported by standards work in UEFI and the TCG (Trusted Computing Group). This enables such features as secure boot, where the OS and firmware cooperate in creating a secure handoff mechanism. It also enables a seamless visual experience from the time you hit the power button – one experience owned by two distinct components.

The boot experience has not been thoroughly revamped, well, ever. The BIOS menus have been stuck in time for nearly 30 years while OSes and hardware have advanced at a logarithmic pace. We’ve introduced many features of the pre-OS environment over several releases of Windows, each designed with a different set of capabilities and limitations. For instance, due to the lack of full graphics capabilities, the Multi-OS and Advanced Boot Options menus displayed by the boot manager shown below appear as if they were from the MS-DOS era:

Advanced Boot Options menu in the Boot Manager, with options to Repair Your Computer, launch in Safe Mode, etc.

Due to the lack of theme support in the Windows RE, experiences built using standard controls offer a look and feel from the Windows 9x/2000 era:

Advanced Boot Options menu in the Boot Manager, with options to Repair Your Computer, launch in Safe Mode, etc.

Boot is a highly visible portion of the system—users see it on average 1-2 times per day. That's already too much, but this post is not about making reboots go away. We recognize that this number will change as slates and devices that are always on become more prevalent, but for those times when you may still need to boot, we want it to be fast and fluid. The experience of booting a PC should be approachable to mainstream consumers while maintaining the power of Windows for more advanced users who want to configure settings in the pre-OS environment. As you can imagine, satisfying all of these goals was challenging and in many situations, a balancing act.

Seamless setup and first boot on Windows 8

What better place to start thinking about the boot experience than the Windows 8 setup UI. This is one of the first places where we’ve made sure to give a great touch-first experience. The entire setup process, including entering your product key, joining a wireless network, and setting up a default account, will be accessible using the soft keyboard.

If you go out and buy a new PC that comes with Windows 8 pre-installed, you will likely encounter the “Specialize” phase of setup on your first boot. This is where machine-specific information and drivers are installed on your system. In the past, you would go through a series of screens with a visual appearance distinct from other phases of setup. Now, the visual experience will be seamless from POST, to boot, to setup.

Seamless boot, every time

The Windows 8 boot experience will reflect the personality of Windows; it will be fast and fluid, seamless, and beautiful every time. By leveraging the capabilities of UEFI and working together with the ecosystem, our goal is for the PC to power up to the manufacturer’s logo and stay on that screen all the way from POST to Windows logon UI. The logo should be beautiful and reflect the brand you trust when you purchased your PC. Firmware renders the logo during POST, the logo persists on screen when Windows boot takes over, and remains through OS boot. In effect, we are bridging two experiences (firmware + operating system) to deliver one experience, as you see here:

The Samsung logo shown as the PC is powered up

Advanced functionality

We know that some of you love to customize your machines by changing OS settings, booting from a physical device, or performing boot troubleshooting in Windows RE. You are not only getting a seamless experience every time you boot, you’re also getting a beautiful, touch-first experience even if you are someone who wants to look under the hood.

We did a thorough inventory of all the advanced features available and designed an experience that gives a consolidated view of the functionality you may want before entering the OS. Unlike in previous versions of Windows, the advanced boot options in Windows 8 can be reached easily, are simple to navigate, and look and feel harmonious.


Download this video to view it in your favorite media player:
High quality MP4 | Lower quality MP4

You can see a complete demonstration in the video above, but let’s call attention to a few scenarios here.

Dual booting your PC

Let’s say you’re someone who has multiple copies or versions of Windows installed on a PC. In Windows 8, you will be presented with a high-fidelity, immersive, touchable UI where you can select which OS to boot with a single tap (or mouse click, or tab-key navigation).

Dual boot options screen in Windows 8: “Choose an operating system” Icon 1: Windows 8; icon 2: Windows 7; Link to “Change defaults or choose other options”

There are often reasons to change your default OS, or you may want to change the countdown window before the default OS starts. Changing these settings today is cumbersome, as you have to edit the Boot Configuration Data (BCD) store. We decided that this functionality was important enough to bubble up to the core user experience when booting with a dual OS setup. Instead of remembering bcdedit commands, or changing settings in msconfig (though these options are still available), you can easily configure the default OS and timer settings right within the boot UI.

Screen with main heading: Change options; Option 1: Change the timer; option 2: Choose the default operating system; option 3: Choose other options Repair tools, boot to another device, and other options.

Screen that reads: “Choose the default operating system. The current default is Windows 8.” Option 1: “Windows 8” Option 2: “Windows 7”

Performing troubleshooting in Windows RE

Let’s now consider the scenario where you may need to boot into Windows RE to troubleshoot a startup problem or to restore Windows to a previous restore point. Even for such advanced functionality (that you may use rarely, if ever), we wanted to ensure that you would have a consistent and touchable experience.

Advanced options screen. Option 1: System Restore. Option 2: System Image Recovery. Option 3 Automatic repair. Option 4: Command prompt

To illustrate just how deeply we thought about this experience, let’s assume you need to launch a command prompt window from within Windows RE (to check the access control lists (ACLs) on some files, for instance). We’ve even made the soft keyboard available from the command prompt in Windows RE if you need that (imagine a field repair of a device with no keyboard!).

The command prompt window, shown being used with on-screen keyboard.

Booting to a device

We recognize that many of you boot to devices, for example, to a bootable USB stick. Today, this requires entering the BIOS boot options menu which could be under one of many Function keys, depending on the hardware/firmware vendor. But with UEFI firmware, the OS can call back into firmware to enumerate the BIOS boot options. This means that advanced boot options that were formerly only available from BIOS menus will be available alongside the Windows-provided functionality.

Screen with main heading: Use a device; and one option: UEFI: SanDisk

As mentioned above, we did a thorough inventory of all capabilities of the system and thought of how everything should feel like part of the overall Windows PC experience. Nothing escaped our inventory, not even the dreaded “BSOD”! Unfortunately, things may go wrong with hardware from time to time, so there was no way to completely rid the world of the “BSOD.” This was a very interesting balancing act as we worked through several design iterations to determine how much information to display. We wanted to meet the needs of power users (whether you’re troubleshooting your machine or a family member’s) and at the same time, make it less scary for the consumer. One thing you’ll notice is that in spite of all the changes, we did decide to keep it blue! :-)

A blue screen that reads: :( Your PC ran into a problem that it couldn’t handle, and now it needs to restart. You can search for the error online: SYSTEM THREAD EXCEPTION NOT HANDLED (pci.sys) - It’ll restart in: 1 second

We hope you are as excited as we are to see the user experience of boot get the attention it deserves. We anticipate many questions about the work we’ve done and we look forward to a continued dialog with you.

Thanks,

Billie Sue