Arquitetura no Kernel do Windows 7

Talvez eu tenha sido um dos últimos a instalar o Windows 7 na Microsoft. Tenho dezenas de softwares e SDKs instalados na minha máquina e costumo demorar dias para uma instalação completa – algo muito arriscado quando estamos tão perto de apresentações com demonstrações que irei fazer no TechEd. Nestas horas, “não mecha!” é meu mantra. Além disto, há muito esperava a chegada do versão final do Windows 7. Não gostaria de multiplicar o trabalho da instalação mais vezes enter Betas, RTCs e RTMs.

Nesta semana que passou tive a grata surpresa de receber uma máquina nova – menos poderosa que a atual, porém, mas leve e com os mesmos 4G que tenho hoje. Animado, instalei o Windows 7 Enterprise e muitos dos outros softwares do meu dia a dia enquanto continuava trabalhando na antiga. Estou hoje há 4 dias operando 100% só com ela e aqui vão algumas impressões:

  • A instalação foi suave. Coloquei a versão 64 bits e migrei os dados com o Easy Transfer via disco externo. Muito bom ver depois de ½ hora todos meus muito gigas de docs espalhados serem migrados sem falha.
  • A nova interface é ótima. Senti falta do “Show Desktop” no início, mas fiquei em casa depois que me contaram que está no botão mais à direita do taskbar depois do relógio.
  • O W7 parece ser mais rápido que o Vista que tenho no hardware antigo, mais poderoso. Quando rodei algoritmos de teste em C# verifiquei que a máquina antiga é mesmo mais poderosa. Porém, o reajuste no kernel e a resolução de dependências que geravam lock e enfileiramentos são responsáveis por esta melhor responsividade real (alguém conhece um bom adjetivo para que eu não use este anglicismo?).

E aqui vem meu ponto sobre arquitetura. Vale a pena ver a conversa com Arun Kushan no channel 9. Ele é o arquiteto que mudou o esquema de lock do Windows 7 e Windows Server 2008 R2, liberando-os para lidar com 256 processadores (a limitação antes era de 64).

Estamos muito acostumados em pensar sobre arquitetos de software como aqueles responsáveis pela escolha de tecnologias de middleware, sistemas de identidade, estruturas de camadas, etc. Arquitetos como o Arun e o Anders Hejlsberg trabalham com estruturas lingüísticas ou com estruturas granulares que têm um impacto imenso no desempenho e capacidade dos softwares envolvidos. São partes fundamentais de um projeto que, se não forem bem estruturadas antes, causam desastres.

Muitos arquitetos, devido aos diagramas de bloco, se vêem construindo a fachada da solução de software. Gosto de lembrar que a consistência interna, muitas vezes não representável por diagramas de blocos, são fundamentos essências de um bom arquiteto.

Abraços

PS: Para quem quer melhorar seu aplicativo usando o que tem de novo no Windows 7, vale a pena baixar o XP2Win7 – uma aplicação exemplo que mostra como usar o Taskbar, sensores, multitouch, Windows Search, Transaction File System e muitos outros. Basta dar uma olhada em https://code.msdn.microsoft.com/XP2Win7 e ver como é simples usar o que a infraestrutura te dá de graça.