Fabio Luiz's picture

MS Singularity em ação

Se você não ouviu falar do Singularity saiba que ele é um projeto da Microsoft para desenvolver tecnologias que a empresa acha que terão lugar nas próximas gerações de sistemas operacionais. Provavelmente ele não será substituto do Windows mas sim a incubadora de muitas características técnicas que as próximas versões de Windows terão. Entre seus conceitos fundamentais estão arquitetura verdadeiramente microkernel, uso de código gerenciado para partes fundamentais do sistema, como controladores de dispositivo e o próprio kernel e isolamento de processos por software através do uso de linguagens com gerenciamento de memória como o C#.

O MSND através do Channel 9 disponibilizou uma série de vídeos sobre o MS Singularity nos quais seus desenvolvedores explicam os conceitos básicos do sistema, suas premissas e mostram um pouco do trabalho que está sendo feito. No vídeo mais interessante (58MB em inglês) o sistema aparece funcionando. Mas não corra lá pensando em ver algo maduro ou realmente fazendo algo de útil. A única coisa que aparece é uma tela em modo texto (um shell) do Singularity rodando sobre Virtualização no Windows. Os programadores até brincam com isso, dizendo que sua interface parece com a do Windows XP. E quando o Singularity realmente roda em modo texto dizem que é a interface em estado-de-arte ;-) Aliás, a interface texto no Singularity é chamada Shell como no UNIX e não cmd ou command como no Windows. Para quem tem intimidade com o UNIX muitos outros detalhes estarão visíveis e chamarão atenção, como um /dev na estrutura de arquivos para os dispositivos de hardware e um comando kill para matar aplicações mal comportadas e até mesmo o sistema de arquivos do HD rodando como um processo separado e transparente. Engraçado perceber que a visão de futuro da Microsoft parece e comporta-se muito mais como o passado do que como o presente.

0

Thiago (não verificado(a))

Eles parecem estar desenvolvendo um DOS.
Mas pelo que li no site do Singularity há muitos conceitos novos que eles estão testando e pesquisando no Singularity, principalmente na parte de arquitetura de kernel. Se puder fale mais sobre o Singularity aqui no meiobit.

Renato Elias (não verificado(a))

Li a mensagem e sei que é uma opinião muito apressada e cheia de idéias formadas, mas parece que eles tão recriando o unix, e ai eu lhe pergunto para que tudo isso? não seria mais fácil, economico e melhor para todos eles definitivamente adotorarem o unix, assim como a apple fez? não faz mal, é um produto estável, testado e robusto, que custa lutar para melhorar?

sei que é interessante termos um outro sistema operacional para podermos ter competição, mas poxa o unix, já se provou superior, está a quase 30 anos ai, e até hoje sobrevive de projetos embarcados a grande clusters, acredito que venceu, quase tudo.

Adam Brandizzi (não verificado(a))

Ih, o sistema deu pau. Até apareceu uma tela com letrinhas Sticking out tongue

Moardib (não verificado(a))

Renato, eles não estão recriando o UNIX. O Singularity é um projeto de pesquisa de sistema operacional rodando sobre código gerenciado. É pesquisa-base que pode tornar-se um produto ou não.

As descobertas podem ser usadas em partes ou no todo. Ou apenas os conceitos.

Uma das principais diferenças é escrita de drivers e até mesmo o kernel do sistema operacional em código gerenciado.

Como bem explicado na wikipedia, as interrupções são escritas em C e ASM mesmo, que em seguida chamam o kernel em C#. Já o HAL é escrito em C++.

Uma das utilidades é criar um ambiente mais seguro de tempo de execução, onde um driver mal escrito não seja capaz de derrubar um sistema e seja mais fácil de desenvolver e depurar. Se o programador esqueceu de destruir um objeto depois de usá-lo, o Garbage Collector faz a limpeza. Seria o fim de problemas com estouro de pilha, por exemplo. Nada de gerenciamento manual de ponteiros de memória.

Renato, o Moardib tem razão em suas colocações. E acho que um pouco do sentido que você quis dar é o que comentei no artigo, diversos conceitos de UNIX estão sendo usados.
A pasta /dev, por exemplo, que mantém informações sobre os dispositivos de hardware e virtuais existentes é um conceito inexistente em Windows, mas velho conhecido no UNIX e que está lá no Singularity. Além disso diversos detalhes, desde o separador / para diretórios em lugar do \ usado no DOS-Windows desde sempre até o fato de poder carregar ou descarregar módulos do kernel via comandos que são coisas da cultura UNIX que em seu projeto a Microsoft adotou. Não é um UNIX ou uma recriação dele, mas aplica muito de seus conceitos, o que de certa forma é a MS reconhecendo as boas idéias e buscando formas de colocá-las em prática. Isso é muito bom.

Além disso a MS buscou resolver os problemas de performance do microkernel, tão conhecidos pelos cientistas da computação ao longo dos anos, ao implementar o esquema de processos isolados por software. Microkernels são desenhos belíssimos, mas muitas vezes apresentam problemas de desempenho pela intensa alternância de processos no processador, mecânica que consome muitos recursos. Com o isolamento por software apenas um processo roda no hardware acabando com as trocas de foco e endereçamento. Todo o resto, inclusive o kernel C#, é executado como uma espécie de thread deste processo único e a separação entre essas threads é feita por lógica em software, algo que parece ser muito mais econômico e rápido do que os modelos implementados hoje em dia. É esse tipo de P&D que beneficia a informática e gera novas possibilidades e eu acho muito legal a MS estar fazendo isso e tentando criar novas formas de fazer as coisas. Mesmo que apenas conceitos básicos do projeto Singularity cheguem à versões finais dos futuros sistemas da MS ainda assim teremos um desenvolvimento muito bom, inclusive em outros sistemas como o Linux e o MacOS.

E acho que os caminhos escolhidos pela empresa para tocar o projeto, de olhar mais para o UNIX do que para o Windows, como brinquei no final do artigo, tem relação com o que eles apuraram durante o próprio projeto. Por exemplo, eles determinaram o número de ciclos de uma CPU Athlon 1.8GHz necessários para "criar e iniciar um processo" e obtiveram resultados curiosos:
1,032,000 para FreeBSD
719,000 para Linux
e 5,376,000 para o Windows/XP
Ou seja, o UNIX é muito mais eficiente que o Windows nesse caso e em diversos outros, conforme o report do Kernel Singularity de Novembro de 2005 da Microsoft Research. Fonte: http://blogs.zdnet.com/Murphy/index.php?p=459

Creio que a MS percebeu que buscar novos conceitos e desenvolvê-los seria mais barato do que tentar aprimorar o Windows para certas aplicações e é isso que estão tentando fazer, não recriar um UNIX mas sim criar um sistema que realmente possa competir com ele em segmentos de performance e confiabilidade. De qualquer forma, ainda estamos a alguns anos de ver os resultados práticos disso, já que o projeto Singularity ainda está no começo.

Renato Elias (não verificado(a))

Entendi sobre o código gerenciando, realmente é uma boa, mas ainda sou a favor de fazerem isso posix compátivel, para acabar com a palhaçada de programar para tantos ambientes diferentes, nada contra, mas ai para portar de um sistema para o outro séria uma magavilha, mas bem sei que isso não vai acontencer.

então, rezamos para isso, pelo menos entrar pra valer em nossas vidas, e fazer a concorrência agir =P

Entrar



Design Wenetus