Criando para PCs com inicialização mais rápida do que nunca
Mesmo com nossos esforços para garantir que você nunca precise desligar o PC e possa executá-lo no modo de espera conectado, sabemos que ainda será necessário reinicializar algumas vezes para atualizar componentes importantes do sistema. Falamos anteriormente sobre refazer a engenharia da experiência de inicialização do Windows e como modernizamos e adicionamos o recurso de toque às principais opções de inicialização e ao carregador em si. Também tornamos a inicialização muito mais rápida . Na verdade, agora está tão rápida, que tivemos que reestudar o design para permitir os tipos de inicializações de diagnóstico exigidos pelos usuários que desejam explorar o BIOS ou carregar o sistema de formas alternativas.
Nesta postagem, Chris Clark, gerente de programa da nossa equipe de experiência do usuário, fala sobre o design de uma inicialização incrivelmente rápida.
--Steven
O Windows 8 tem um problema: é inicializado rápido demais.
A inicialização é tão rápida que não dá mais tempo de fazer nada que possa interrompê-la. Quando você liga um PC com Windows 8, não há mais tempo para pressionar teclas como F2 ou F8, e muito menos para ler mensagens como "Press F2 for Setup" (Pressione F2 para acessar a configuração). Pela primeira vez em décadas, você não precisará mais interromper a inicialização e mandar seu PC fazer algo diferente do normal.
A inicialização rápida é algo que certamente queremos manter. Ninguém poderia imaginar que tornaríamos a inicialização mais lenta para permitir a utilização dessas funções como no passado. Neste blog, explicarei como estamos lidando com esse "problema" usando novas soluções que deixarão a inicialização do PC com o máximo de velocidade e, ainda assim, permitirão que você faça tudo o que deseja.
Rápida demais para ser interrompida
Vale à pena reservar alguns instantes para assistir (novamente, se você já assistiu) ao vídeo da inicialização rápida, publicado por Gabe Aul em sua postagem anterior sobre oferecer inicializações rápidas no Windows 8. Neste vídeo, você observa a inicialização completa de um laptop com SSD (unidade de estado sólido) em menos de 7 segundos. Essa inicialização tão rápida não exige hardware especial. É simplesmente um recurso dos novos PCs. Você continuará vendo sistemas atuais com inicializações mais rápidas, mas em muitos PCs, o BIOS em si (o logotipo do BIOS e as mensagens que são exibidas durante a inicialização) ainda leva algum tempo. Um SSD também contribui para a velocidade da inicialização, como você pode imaginar.
Se a inicialização completa durar apenas sete segundos, as partes individuais que formam a sequência de inicialização passarão rápido demais para serem percebidas (ou interrompidas). A maioria das decisões que podem ser tomadas durante a inicialização acontecem nos primeiros 2 ou 3 segundos. Depois disso, a inicialização tenta entrar o mais rápido possível no Windows. Esses 2 ou 3 segundos incluem o tempo de inicialização do firmware e do POST (menos de 2 segundos), e o tempo que o gerenciador de inicialização do Windows leva para detectar um caminho de inicialização alternativo (menos de 200 milissegundos em alguns sistemas). Esse tempo continuará diminuindo e, atualmente, já é curto demais para permitir uma interrupção como era possível no passado.
Nós da equipe do Windows sentimos o impacto dessa mudança primeiro, e talvez fomos os que mais sofremos, devido às nossas tarefas relacionadas à tecla F8. Nas versões anteriores do Windows (na época do Windows 95), era possível pressionar F8 no começo da inicialização para acessar um menu de opções avançadas de inicialização. É nesse ponto que encontrávamos opções úteis como Modo de Segurança e "Desabilitar assinatura de driver". Eu me lembro de ter usado essas opções quando atualizei meu primeiro PC do Windows 3.1 para o Windows 95. A tecla F8 me ajudou a solucionar um problema de atualização rapidamente e começar a usar o Windows 95.
No entanto, os aprimoramentos de hardware e software no Windows 8 acabaram com o pouco tempo que restava para o Windows ler e responder ao pressionamento da tecla F8. Temos sistemas de UEFI baseados em SSD em que a "janela de F8" é sempre inferior a 200 milissegundos. Por mais que seus dedos sejam rápidos, é pouco provável que você pegue um evento de 200 milissegundos. Por isso, agora você pode tocar. Eu me lembro de andar pelos corredores e ouvir meus colegas tentando usar a janela de F8 freneticamente, "tap-tap-tap-tap-tap-tap-tap", mas só conseguiam reinicializar várias vezes até finalmente conseguir entrar. Realizamos uma pesquisa informal e observamos que os usuários mais ágeis conseguem digitar repetidamente em uma frequência de, no máximo, 250 ms. Mesmo nesse caso, detectar uma janela de 200 milissegundos ainda depende bastante da aleatoriedade. E, mesmo que você consiga ser rápido o bastante e detectar esse intervalo tão curto, ainda precisa lidar com a dor nos dedos, o tempo desperdiçado e a situação ridícula de ficar digitando freneticamente.
O problema que enfrentamos para usar a tecla F8 também vale para qualquer outra tecla que você queira pressionar durante a inicialização. Por exemplo, no Windows 8 Developer Preview, a tecla F8 oferece acesso a uma gama completa de opções de reparo, recuperação e inicialização avançada. Outra tecla oferece acesso às opções voltadas para desenvolvedores, como a habilitação de depuração e a desabilitação de assinatura de drivers. E, na maioria dos PCs, há outras teclas que podem ser usadas pelo firmware, que são exibidas em mensagens durante o POST: "Pressione F2 para Setup" ou "Pressione F12 para inicialização de rede". Agora, o POST já está quase finalizado quando essas instruções são exibidas. Em muitos casos, o teclado não seria muito útil nesse momento, com o POST quase terminando, então quase não vale o tempo desperdiçado pelo firmware para buscar esses pressionamentos de teclas. Alguns dispositivos nem tentam.
Mesmo assim, cada uma dessas teclas possui uma função importante, e sempre contamos com elas, ao longo de nossa história, para oferecer recursos importantes de interrupção na inicialização. No entanto, agora, não há mais tempo para fazer nada disso.
Definindo o escopo do problema
Analisamos esses problemas de vários pontos de vista e adotamos uma abordagem holística para solucioná-los. Esse esforço também envolveu desenvolvedores, testadores e gerentes de programas, que examinaram tudo, desde as peças mais ocultas do kernel até a experiência do usuário em geral. Analisando primeiro como um problema de engenharia, identificamos as situações e cenários que dependiam de pressionamentos de teclas na inicialização e consideramos literalmente dezenas de formas para restaurar a funcionalidade a cada cenário no Windows 8.
Estes são alguns dos principais cenários que analisamos:
- Mesmo quando o Windows é inicializado corretamente, é possível fazer algo diferente, como, por exemplo, inicializar de um dispositivo alternativo, como uma unidade USB, ir para as opções de configuração do BIOS do firmware ou executar ferramentas diretamente da imagem do Ambiente de Recuperação do Windows em outra partição. Em geral, anteriormente, esses cenários eram atendidos sem o envolvimento do Windows, com o uso de teclas específicas para firmware, como F2 ou F12 (ou alguma outra tecla que eu não me lembro bem!).
- Você pode precisar solucionar um problema após alguma falha, ou desfazer algo que acabou de acontecer. O Windows oferece várias ferramentas que auxiliam em situações como essas, permitindo que você atualize ou restaure o PC, volte a um ponto de restauração por meio da Restauração do Sistema ou execute a solução manual de problemas por meio do bom e velho prompt de comando. Anteriormente, essas opções de solução de problemas eram acessadas principalmente por meio do gerente de inicialização do Windows, com o pressionamento da tecla F8 no começo da inicialização.
- Alguns casos de erros na inicialização são difíceis de serem detectados automaticamente. Por exemplo, o processo de inicialização do Windows é concluído, mas há erros nos componentes carregados posteriormente que impedem o uso do Windows. Esses casos são raros, mas podem acontecer, por exemplo, em uma instalação de driver corrompida que causa falha no carregamento da tela de login. Em hardwares de gerações anteriores, era possível interromper a inicialização pressionando uma tecla (F8, por exemplo) para acessar uma opção adequada de reparo antes do carregamento do componente com falha. Com o passar do tempo, foi se tornando mais difícil interromper a inicialização dessa forma e, no Windows 8, tornou-se praticamente impossível.
- Precisávamos habilitar algumas opções de inicialização que são usadas principalmente por desenvolvedores, dentro e fora do Windows. No passado, era possível acessar essas opções com o pressionamento de uma tecla como F8 no começo da inicialização. Essas opções voltadas para desenvolvedores continuam sendo importantes e incluem o desabilitação da assinatura de drivers, a desativação de "antimalware de início antecipado" etc.
Um dos nossos principais pontos de atenção no design era a forma como nossas soluções se encaixariam no resto do Windows 8. Acreditamos que essas várias opções de inicializações tinham muito em comum, por isso não deveriam estar em lugares diferentes do Windows. Do ponto de vista externo, ninguém é obrigado a aprender como o Windows é desenvolvido nos bastidores, para saber como acessar uma determinada tarefa. Em resumo, só queríamos que funcionasse.
Três soluções – uma experiência
Por fim, solucionamos esses problemas com uma combinação de três soluções diferentes. Juntos, eles criam uma experiência unificada e solucionam problemas sem a necessidade de interromper a inicialização com o pressionamento de uma tecla.
- Nós reunimos todas as opções em um único menu: o menu de opções de inicialização, que contém todas as ferramentas de solução de problemas, opções voltadas para desenvolvedores que dependem da inicialização do Windows, métodos para acessar a configuração do BIOS do firmware e uma forma prática de inicializar com dispositivos alternativos, como unidades USB.
- Criamos comportamentos de failover que exibem o menu de opções de inicialização automaticamente (em um ambiente altamente robusto e validado) sempre que houver um problema que impeça a inicialização bem-sucedida do Windows.
- E, por último, criamos vários métodos práticos de acesso ao menu de opções de inicialização, mesmo quando não houver nada de errado no Windows ou na inicialização. Em vez de esses menus e opções serem exibidos por meio da interrupção da inicialização, eles são acionados de forma intencional, o que os torna muito mais fáceis de serem executados com êxito.
Cada uma dessas soluções lida com um aspecto diferente do problema e, juntas, elas criam uma experiência unificada, coesa e completa.
Um único menu para cada opção de inicialização
O principal objetivo do menu de opções de inicialização é criar um único lugar para todas as opções que afetam o comportamento da inicialização do PC com Windows 8. Cada parte desse menu foi discutida em detalhes na postagem anterior do nosso blog, intitulada Refazendo a engenharia da experiência de inicialização do Windows. Essa postagem apresenta todos os detalhes e descreve as principais mudanças no menu de inicialização para habilitar manipulações com toque, a aparência do Windows 8 e uma experiência de usuário coesa entre as várias superfícies que constituem a inicialização. Esta é uma captura de tela do menu de opções de inicialização em um dos meus PCs baseados em UEFI:
A inicialização com um dispositivo alternativo (como uma unidade USB ou de rede) é um dos cenários mais comuns que anteriormente exigiam a interrupção da inicialização com o pressionamento de uma tecla. Com o firmware baseado em UEFI do Windows 8, agora podemos usar software para que isso seja feito. Nesses dispositivos, você verá o botão "Usar um dispositivo" no menu de opções de inicialização, que fornece essa funcionalidade diretamente. Como podemos ver na imagem acima, essa funcionalidade está ao lado das demais opções de inicialização. O Windows não exige mais a interrupção com o pressionamento de uma tecla para inicializar a partir de um dispositivo alternativo (supondo, no momento, que você possa acessar o menu de opções de inicialização sem precisar pressionar uma tecla na inicialização. Falaremos mais sobre isso, em alguns instantes).
Nesse mesmo menu, adicionamos novos recursos que permitem a reinicialização diretamente para a configuração do BIOS do firmware UEFI (em sistemas UEFI com Windows 8 que suportem essa função). Em hardwares das gerações anteriores, as instruções para entrar na configuração do BIOS apareciam no POST, em mensagens como "Pressione F2 para Setup" (Essas mensagens permaneceram nos PCs por mais tempo, talvez, do que qualquer outro tipo de interface do usuário).* Elas ainda são exibidas em sistemas anteriores ao Windows 8, e continuarão funcionando (principalmente porque esses dispositivos levam vários segundos para concluir o POST). No entanto, um PC baseado em UEFI com Windows 8 não exibe o POST por tempo suficiente para permitir o pressionamento de teclas, como era feito antes. Por esse motivo, a nova funcionalidade baseada em UEFI permite que essa opção exista no menu de opções de inicialização. Após analisarmos os demais itens desse menu, decidimos incluir o botão que reinicia o PC diretamente para a configuração do BIOS do firmware UEFI no nó "Solução de problemas", no grupo "Opções avançadas":
Uma rápida observação sobre dispositivos mais antigos e não baseados em UEFI: os hardwares herdados desenvolvidos antes do Windows 8 não apresentarão esses novos recursos de menu oferecidos pelo UEFI (inicializar nas configurações de firmware ou diretamente em um dispositivo). O firmware nesses dispositivos continuará dando suporte a essa funcionalidade na tela do POST, como anteriormente (com o uso de mensagens como "Pressione F2 para Setup"). Ainda haverá tempo para pressionar teclas como essa no POST em dispositivos herdados, já que não eles não terão aprimoramentos que permitam que um PC com Windows 8 conclua o POST em menos de 2 segundos.
O item a seguir aparecerá em todos os dispositivos com Windows 8, baseados em UEFI ou não. Na imagem acima, você verá que adicionamos a opção Configurações de Inicialização do Windows. Essa nova adição é o ponto de partida das opções de inicialização do Windows voltadas para desenvolvedores no menu unificado de opções de inicialização, e nos permite atender aos cenários que anteriormente exigiam uma tecla específica durante a inicialização. Esse recurso inclui itens como "desabilitar assinatura de drivers" e "modo de depuração", além do Modo de Segurança e várias outras opções. Apresentamos uma visão com pormenores da página de informação dessas opções:
O menu de opções de inicialização cria um ponto unificado para todas as opções que afetam o comportamento da inicialização do PC com Windows 8. Ao reunir todas essas opções em um só lugar, o menu de opções de inicialização se torna uma interface familiar, unificada e altamente útil para esses itens relacionados. Tarefas como alterar as configurações de inicialização do Windows, entrar na configuração do BIOS do firmware UEFI ou inicializar em uma unidade USB, não requererem mais a interrupção da inicialização com o pressionamento de uma tecla, (supondo que você possa acessar o menu de opções de inicialização). Então, veja como chegar lá.
Acessando o menu de opções de inicialização (automaticamente) em caso de problemas
Há duas situações principais em que você precisará acessar o menu de opções de inicialização em um PC com Windows 8. A primeira situação é quando ocorre algo errado, e é necessário executar uma ação de reparo para restaurar o PC à sua funcionalidade total. A segunda situação (que será abordada na seção seguinte) é quando não há nada errado, mas você deseja alterar algum aspecto do comportamento de inicialização ou da configuração do firmware, ou inicializar utilizando outro dispositivo.
Na primeira situação, algo errado ocorreu e requer reparos. O modelo anterior de hardware de PC requeria que você (ou alguém de confiança) desse início ao processo de solução de problemas pressionando uma tecla específica durante a inicialização. Por exemplo, as opções no Windows Developer Preview se dividiram entre Shift+F8, F8 e teclas dependentes do firmware, como F2 ou F12 (que costumam variar de PC para PC).
Cada uma dessas teclas representa a primeira etapa na solução de problemas que resultará eventualmente em um reparo. A unificação de todas elas em um único menu de opções de inicialização elimina a necessidade de usar várias teclas para as várias opções disponíveis. Além disso, removemos até mesmo esse pressionamento de tecla remanescente, carregando o menu de opções de inicialização automaticamente, no caso de não ser possível concluir a inicialização do Windows com êxito.
Com o Windows 8, esse comportamento de failover automático direcionará você ao menu de opções de inicialização, se houver algum problema que impeça de alguma forma o carregamento do Windows. Isso também inclui casos em que parece que a inicialização (do Windows) foi bem-sucedida, mas na verdade o PC está inutilizável. Um exemplo desse caso seria uma instalação de driver com falha que faz com que a tela principal de logon apareça completamente em branco. O Windows talvez não detecte que a tela está em branco, mas qualquer usuário perceberá imediatamente. Agora, detectamos por meio de algoritmos que isso ocorreu em diversas inicializações, e inicializamos automaticamente diretamente para o menu de opções de inicialização no Ambiente de Recuperação do Windows (WinRE). Como a imagem de fonte do WinRE contém drivers e arquivos que são mantidos separados da instalação principal do Windows, ela não é afetada por alterações de software, sendo um ambiente confiável para iniciar a solução de problemas a partir do menu de opções de inicialização.
Esse comportamento pode fazer com que o Windows vá para o menu de opções de inicialização no Windows RE quando não há nada de errado? Essa nova função automática requer duas ocorrências consecutivas, reduzindo essa possibilidade mas, ainda assim, é possível. Tendo isso em mente, desenvolvemos o menu de opções de inicialização com um proeminente botão Continuar em primeiro plano, como forma de caminho de fuga para os usuários que não estejam com problemas no PC com Windows 8. Estudamos essa possibilidade em nossos laboratórios de utilização para ver o que os usuários fariam quando esse menu de opções de inicialização aparecesse inesperadamente. Ficamos contentes em verificar que o botão Continuar serviu seu propósito, fornecendo uma rota de fuga importante em caso de falsos positivos.
Em algumas situações, o Windows 8 pode ser ainda mais específico ao executar ações apropriadas para um determinado problema. Por exemplo, se houver falha na conclusão da sequência de inicialização, tentaremos automaticamente pela segunda vez. Caso isso também não funcione, o Windows RE será carregado automaticamente, iniciando a Ferramenta de Reparo de Inicialização especializada. Ainda que essa ferramenta tenha sido desenvolvida especialmente para corrigir vários tipos de erro no processo de inicialização, também apresentamos um caminho para todas as demais ferramentas de solução de problemas no menu de opções de inicializações, para os casos em que a Ferramenta de Reparo de Inicialização é malsucedida.
Esses comportamentos de detecção automática garantem que as ferramentas de reparo e recuperação no Windows estejam sempre disponíveis, mesmo quando o Windows não seja carregado corretamente. Sem a necessidade de pressionar uma tecla ou executar qualquer ação, o Windows RE é carregado automaticamente quando necessário, permitindo o reparo e a recuperação com o uso de ferramentas de solução de problemas a partir do próprio menu de opções de inicialização.
Acessando o menu de opções de inicialização a qualquer momento (mesmo que não haja nada errado)
Quisemos oferecer um caminho fácil para as opções de inicialização diretamente do Windows, mesmo em situações em que não haja erros. Vários dos itens no menu são necessários mesmo quando tudo está em ordem: inicializar com um dispositivo alternativo, alterar a configuração do firmware e alterar as configurações de inicialização do Windows voltadas para desenvolvedores, por exemplo.
Nossa intenção era facilitar o acesso ao menu de opções de inicialização a qualquer momento, e inseri-lo de forma lógica ao Windows 8 totalmente funcional.
Em geral, preferimos criar um método para criar algo e garantir que esse método seja o melhor possível. Mesmo quando há várias formas de se fazer algo, sempre há um método principal, sendo normalmente o que é usado com mais frequência e o que abrange a maioria dos casos. Ao escolhermos uma só forma para fazer algo, podemos seguir esse método em um grupo específico de cenários de utilização e esperar que ele continue sendo razoavelmente útil, prático e utilizável nesses cenários. Algumas vezes, há outros casos que não são abordados pelo método principal. Se esses casos não forem importantes o bastante para serem abordados, o método principal poderá ser realmente a única saída.
No entanto, em nosso caso, criamos um método principal e, depois, adicionamos outros dois caminhos: um para garantir que cobrimos todos os cenários necessários, e um segundo para manter um padrão consistente nos componentes existentes do Windows.
O método principal para acessar as opções de inicialização está em Inicialização avançada, na guia Geral de Configurações do PC. Você pode acessar a opção Configurações do PC pelo botão Configurações ou pesquisar na tela inicial pelos termos de pesquisa específicos, como inicializar, inicialização, modo de segurança, firmware, BIOS ou vários outros. Na guia Geral, você verá uma breve descrição das opções que estarão disponíveis no menu de opções de inicialização, além do botão Reiniciar agora. As descrições apresentadas nesta tela são totalmente dinâmicas e mudam com base no hardware, firmware e software disponíveis no seu PC com Windows 8.
O uso do botão Reiniciar agora em Inicialização avançada direciona o usuário ao caminho principal para acessar as opções de inicialização em um sistema totalmente funcional. O sistema começa o processo normal de reinicialização. Em seguida, antes do Windows terminar de desligar e quando estiver prestes a reinicializar por completo e entrar no POST, o processo é pausado, e o menu de opções de inicialização é exibido. Esse é o último ponto em que a interface do usuário pode aparecer durante a sequência de desligamento/reinicialização. Decidimos pausar o processo de reinicialização no meio, para que você possa escolher seu destino antes que o PC comece outro POST. Escolhendo a opção desejada de inicialização antes do POST, podemos pular diretamente para a configuração de firmware ou para a inicialização com outro dispositivo (quando essa opção for escolhida), sem a necessidade de executar uma segunda reinicialização e outro POST. Você pode até mesmo usar esse menu para inicializar rapidamente em outra instalação do Windows, se desejar. Como o Windows pausa a sequência de reinicialização para mostrar o menu de opções de inicialização, essa é a forma mais rápida de inicializar em outro sistema operacional.
Para obter o acesso ainda mais rápido, há outra forma de chegar ao menu de opções de inicialização: diretamente do menu de desligamento. Se você manter a tecla Shift pressionada enquanto clica em Reiniciar, o Windows 8 executará uma sequência de eventos semelhante a que seria executada se você clicasse em Inicialização avançada a partir da opção Configurações do PC. Como é possível abrir o menu de desligamento de qualquer parte do Windows 8 por meio do botão Configurações, essa forma é especialmente rápida para acessar diretamente o menu de opções de inicialização. Quando você assistir ao vídeo no final da postagem, observará que movemos esse comando para permitir um fluxo linear e direto com seu mouse para acessar essas opções; um fluxo mais prático do que no Windows 7.
Adicionamos a opção Shift+Reiniciar ao menu Desligar para disponibilizar as opções de inicialização mesmo quando não houver ninguém conectado ao PC. No antigo modelo de hardware que permitia pressionamentos de teclas durante a inicialização, qualquer pessoa com acesso físico ao PC poderia pressionar uma tela para interromper a inicialização e usar as opções de inicialização disponíveis. Para manter esses cenários, precisávamos de uma forma de permitir que uma pessoa não conectada (mas ainda assim usando fisicamente o PC) use o menu de opções de inicialização.
O menu Desligar se encaixa perfeitamente nesses requisitos: está sempre disponível na tela de login, mesmo quando não há ninguém conectado. Além disso, o uso do modificador Shift na reinicialização se assemelha ao padrão de uso do Shift em outros itens no mesmo menu. Você poderá observar que o menu Desligar aparece em outros locais também, para usuários que estejam conectados ou não. Em todos esses locais, o comportamento Shift+Reiniciar também funciona. Achamos que seria importante se o menu Desligar se comportasse de forma consistente e previsível, onde quer que ele apareça.
Há ainda outra forma de exibir o menu de opções de inicialização durante o desligamento, e essa forma tem o bônus adicional de funcionar no Prompt de Comando. Adicionamos um novo sinalizador ao shutdowm.exe: /o. O sinalizador /o funciona apenas em conjunto com /r (para reiniciar), então a sintaxe completa é:
Shutdown.exe /r /o
Adicionamos esse novo sinalizar ao shutdown.exe para manter essa parte do Windows consistente e previsível. Nem todos os usuários usam o Shutdown.exe, mas os que usam dependem dele para todo um conjunto de tarefas relacionadas ao desligamento.
- Chris Clark
Baixe este vídeo para assistir no seu media player favorito:
MP4 de alta qualidade | MP4 de qualidade inferior