Posts Tagged "microsoft"

Confusões entre padrões de 32 bits e 64 bits do Windows

index_32-bit_vs_64-bitEstou na Universidade Federal Rural de Pernambuco na unidade de Serra Talhada esses dias. Na lanchonete, sentei ao lado de um grupo de alunos e uma “aluninha” fez uma pergunta simples ao seu colega de mesa, porém a resposta quase derreteu meus ouvidos, aqui vai uma breve transcrição da conversa:

Aluna: “Troquei meu notebook , no entando não estou conseguindo utilizar o software que a professora passou. Aparece a mensagem dizendo que o sistema é para máquinas de 64 bits. Qual a diferença entre processadores de 32 e 64 bits?”

Aluno: “É muito simples Aninha! você vai saber o que é 32 bits, ou 64 bits abrindo a máquina e vendo um PROCESSADOR. O processador é uma peça pequena quadrada que tem: 32 pinos ou 64 pinos de ouro. Isso mesmo OURO. Na placa mãe, vem uma peça quadrada branca que tem 32 buraquinhos, ou 64 buraquinho. Onde você vai acoplar o processador, nos buraquinhos.”

Aluna: “Que bom ter colegas inteligentes. Chegar em casa faço isso!”

Aluno: “Depois da aula passo em sua casa e faço isso para você…”

Notei um ar de sarcasmo na resposta final do aluno, pois sei que ele quer abrir muito mais do que o computador da colega. E quase engasguei com a resposta do sujeito. Intervi na conversa, falando que era professor novato do curso e estava conhecendo a Universidade. Elogiei o aluno, para ele não ficar triste se o consertasse, e perguntei onde ele tinha aprendido isso. O mesmo me disse: “No programa Olhar Digital!” Não revelei minha identidade secreta… ainda… pois os mesmos me convidaram para uma cervejada a noite na praça da cidade….

Vamos a algumas observações. Objetos no padrão de 32 bits (executáveis, bibliotecas e DLL´s do Windows) tem diferentes números mágicos (magic numbers) e cabeçalhos (headers) e não são iguais aos de 64 bits. Essa confusão sempre é feita principalmente pelos alunos de Computação nos primeiros anos de curso. A criar um programa o desenvolvedor tem de está atento a essas obscuridades. Executáveis de 32 bits requerem temporizadores e bibliotecas de 32 bits e de 64 bits também requerem temporizadores e bibliotecas de 64 bits. Isto implica diretamente no modo de execução das aplicações. Apenas processos de 32 bits são suportados em Windows de 32 bits, no entanto ambos, 32 e 64 bit, podem ser executados em Windows de 64 bits.

A diferença vai além de você ficar contando pinos dos processadores. A DLL de tempo de execução nativa do Windows sempre busca no PATH do sistema pelos executáveis. O sistema entende que todos executáveis no PATH estão no mesmo padrão da máquina e que “teoricamente” não teriam problemas em sua execução. O tamanho do tipo HANDLE no sistema da Microsoft é de 32 bits em um Windows de 32 bits e de 64 bits em Windows de 64 bits, mas apenas em processos de ordem baixa de 32 bits podem ser utilizados em sistemas de 64 bits. Além disso outros manipuladores com a mesma ordem baixa podem ser trocados entre processos de 32 e 64 bits.

Um único bit pode assumir duas possibilidades: 1 ou 0, o que é lógico, pois POW(2,1) (2 elevado a 1) é igual a 2 (possibilidades de com binação). Pelo mesmo raciocínio, POW(2,32) = 4294967296 possibilidades e, de igual modo, POW(2,64) = 18446744073709551616 .

Qual a diferença ou a vantagem? Simplesmente a precisão. Suponha que você trocou a placa de vídeo do seu computador, uma de 8 bits para uma com 16 bits. Nas especificações da placa mãe a amplitude máxima da voltagem do circuito é de 10V. Se o nosso processador da placa de vídeo fosse de apenas 8 bits, teríamos POW(2,8) = 256 combinações. Como o nível máximo é de 10V, temos = 10V/256 = 0,0390625V ≈ 39062,5 microvolts (1 microvolt é 1Volt / 1000000 = 0,000001V).

Isso significa que um pixel na tela somente seria identificado se ele subisse ou abaixasse 39062,5 microvolts. Por outro lado, com 64K (POW(2,16)) teríamos 10V/65536 ≈ 153 microvolts. Logo, para sentirmos uma variação na intensidade/tonalidade de determinada cor numa tela de vídeo, seriam precisos apenas 153 microvolts, o que determinaria uma resolução ou qualidade de imagem quase que reais. Ou seja, quanto menor o número na voltagem mais rápido e quanto mais bits mais rápido ou melhor resolução uma dada informação é processada.

O problema do WOW!

Windows on Windows, ou simplesmente WOW é uma terminologia que a Microsoft utiliza para ter suporte de 32 bits em máquinas nativas 64 bits. É uma emulação contínua que todo sistema Windows de 64 bits tem. Mais informações podem ser obtidas aqui. É fácil de entender o que é isso simplesmente pensando que grandes sistemas legados ainda utilizam o Windows como principal base de controle. Se retirar isso bilhões podem ser perdidos simplesmente pelo fato da migração. Isso é uma verdadeira bagunça!.

A lógica de armazenamento nos Windows de 32/64 bits é:

  • Executáveis do sistema e DLLs estão em: “C:\Windows\System32″;
  • Entradas de registros estão em: “HKLM\…”.

No entanto, certas chaves de registro tem visões de 32 e 64 bits. Em alguns casos as visões são separadas e mantidas consistentes entre elas no Windows. Em outros casos elas são completamente separadas:

O local de instalação de software no Windows:

  • Em Windows de 32 bits aplicações são instaladas em: “C:\Program Files”.
  • Em Windows de 64 bits aplicações são instaladas em “C:\Program Files (x86)” e aplicações de 64 bits são instaladas em: “C:\Program Files”.
  • Se considerarmos os arquivos de duplicação de nomes para linguagens fora do Inglês tem: “C:\Arquivos de Programas”.

Isso significa que o instalador deve mudar o diretório de instalação entre um e outro. Porém aí vem a complicação da Microsoft. Quem tiver o Visual Studio 11 – Visual C (mas pode ser outra versão) :

  • Compilador e binários do SDK 32 bits além das bibliotecas estão instalados nesses diretórios:
    C:\Program Files (x86)\Microsoft Visual Studio 11\VC\bin
    C:\Program Files (x86)\Microsoft Visual Studio 11\VC\lib
    C:\Program Files\Microsoft SDKs\Windows\vx86\bin
    C:\Program Files\Microsoft SDKs\Windows\amd\lib
  • Compilador e binários do SDK e bibliotecas de 64 bits:
    C:\Program Files (x86)\Microsoft Visual Studio 11\VC\bin\(amd64|x64)
    C:\Program Files (x86)\Microsoft Visual Studio 11\VC\lib\(amd64|x64)
    C:\Program Files\Microsoft SDKs\Windows\vx86\bin\x64
    C:\Program Files\Microsoft SDKs\Windows\amd\lib\x64

Notem que a Microsoft quebrou a própria regra dela! O Visual C por convenção deveria está instalado na pasta de 64 bits mas está nas duas!!! 'C:\Program Files (x86)’.

A bagaça mesmo acontece quando um processo de 32 bits tenta acessar arquivos e registros de 64 bits:

  • Em 64 bit o diretório 'C:\Windows\System32′ é 'C:\Windows\SysNative’.
  • Registros e chaves de de 64 bits devem ser acessados via flag KEY_WOW64_64KEY no Reg*() API. Não há nenhum nome ou mecanismo de registro e para isto requer recodificação no nível de aplicação.
  • O Visual C de 64 bits é envolto nisso, deve sempre ser recodificado para executar em um ambiente de 64 bits!

Mais engraçado ainda é quando um processo de 64 bits tenta acessar arquivos ou registros de 32 bits:

  • O diretório de 32 bit 'C:\Windows\System32′ é 'C:\Windows\SysWOW64′.
  • 'C:\Windows\System32′ é para executáveis e DLL´s de  for 64 bits, mas 'C:\Windows\SysNative’ é um caminho inválido para processos de 64 bits;
  • As chaves de registros de 32 bits devem ser acessados via flag KEY_WOW64_32KEY em Reg*() API. Não existe um mecanismo de registro de nomes: todas as chaves de 32 bits são alocadas em uma subchave de Wow6432Node, mas toas as documentações da Microsoft alesta sobre o uso disso!

Existem uma série de API que podem ajudar o Windows a se livrar de emulação da WOW tais como: GetSystemWow64Directory, Wow64DisableWow64FsRedirection, Wow64EnableWow64FsRedirection e Wow64RevertWow64FsRedirection. Isso não é coisa para crianças então não aconselho usar tais ferramentas.

As chaves de 32 e 64 bits são incompatíveis, a solução poderia utilizar recursos semelhantes ao Linux que não permite  uso de chaves de um em outro. Além das modificações diretas entre o que é de um sistema e outro no SO. Então cuidado quando for falar de SO de 32/64 bits… a não ser que queira impressionar as coleguinhas….

Mais informações em: blog.tune-up.com/windows-insights/32-bit-vs-64-bit-more-bit-more-performance/

Microsoft Students to Business

O programa Students to Business é uma iniciativa da Microsoft, dos Parceiros da Microsoft e as principais universidades do país com o objetivo de capacitar estudantes nas áreas de TI e oferecer oportunidades de emprego. Para mais informações clique no banner abaixo. É bom saber que não tem nenhuma turma em Recife, o lugar mais próximo é Salvador.

Apple ultrapassa a Microsoft como 1ª em Tecnologia

Fonte: New York Times

Segundo o jornal norte americano, Wall Street tem chamado esse fato de o fim de uma era e o início de uma nova: O produto de tecnologia mais importante do mundo já não se senta em frente de uma mesa, mas se encaixa nas mãos, fazendo referência ao iPad.

O fato ocorreu na quarta-feira (26/05/10), quando a Apple, fabricante dos iP*, tirou o cargo da Microsoft, a gigante de software para computadores, para se tornar a empresa mundial mais valiosa de tecnologia. Depois da Apple durante um período no passado está quase morrendo, volta a tona com esse acontecimento, grande parte por causa do valor de inovação que tem os projetos na Apple.

Quem quiser saber mais sobre como a inovação é muitas vezes melhor para uma empresa do que o mercado tradicional, pode ler esta aula que fala justamente sobre o Oceano Azul e suas vantagens competitivas. Mais informações sobre a reportagem acesse o site direto no NY Times, clicando aqui.

Tela Vermelha no Windows

A uns dias atrás eu postei no nosso site uma brincadeira que fizeram com as telas de erro no windows. Notei que aparecia uma tela vermelha em alguns momentos do vídeo e isso ficou em minha mente durante algum tempo. Em sala de aula comentei com os alunos e um deles, Haine Oliveira, me mandou uma mail falando sobre a tela vermelha.

A Microsoft desde as primeiras versões do windows, criou como tela de erro a legendária tela azul, também conhecida como blue screen of death. Lembro dessa tela principalmente no Windows 95. Em 2004 com a notícia de um novo Windows com o codenome Longhorn, adicionou a red screen quando ocorre um crash no sistema.

De acordo com Michael Kaplan, técnico da Microsoft, ele tem observado essa tela vermelha quando executada em um ambiente de virtualização.

A mensagem aparece de forma grande no monitor, informando ao usuário uma falha muito séria.

“I am not sure I would class the change as an improvement,” diz Kaplan.

Segue a tela para os curiosos:

Música com as telas de erro do Windows

Como diz Silvio Santos: “Bem bolada!”

Núcleo da Imagine CUP

Pessoal,

Informo que consegui uma doação de 4 XBOX 360 para o curso de sistemas de informação e estarei repassando esses equipamentos para o núcleo da Imagine CUP do ano que vem. As reuniões será na antiga sala do SIEP e quem ficará coordenando o núcleo será Tiago Chaves e Diego Tenório.

Até

Promoção Imagine CUP ISIC