Ricardo Bicalho 14 anos e meio atrás
Windows. Esse nome tem sido uma constante na vida de milhões de pessoas e é o carro-chefe da empresa fundada por Bill Gates e Paul Allen, a Microsoft. Concebido numa época em que a Internet como temos hoje era ficção científica, a empresa hoje possui um enorme legado de software.
A Microsoft sabe muito bem das limitações do Windows. O código é gigantesco, precisa oferecer suporte a milhares de periféricos e a manutenção de milhões de linhas de código aumenta não apenas a dificuldade, mas fica cada vez mais complicado deixar o sistema seguro, rápido e ampliar o leque de recursos a cada nova versão. As dependências dos vários pacotes que formam uma instalação fazem com que o teste de uma build do Vista seja hercúleo.
A direção da Microsoft fica mais clara com o MinWin: apenas 100 arquivos, com interface em texto e capacidade de conectar-se em rede, consumir 20 MB em disco e 45 MB de RAM. O que foi removido? As dependências entre os vários pacotes. Dessa forma, o grupo que trata da arquitetura do sistema pode continuar as melhorias sem afetar ou necessitar de camadas superiores do software. Mas ainda estamos falando de Windows e a divisão de sistemas operacionais está criando o primeiro sistema operacional não-Windows, do zero, sem legado.
Um Novo Começo
Anos atrás, o Microsoft Research Lab possuía um projeto chamado Singularity. Um sistema operacional rodando inteiramente em código gerenciado, ou seja, uma espécie de máquina virtual, semelhante ao que encontramos no Java e no .Net. Ao contrário da máquina virtual, um SO completo precisa de dezenas, senão centenas de outros recursos para funcionar, como drivers de vídeo, som, executar código multimídia como o DirectX e possuir um sistema de arquivos próprio.
O resultado das pesquisas do Singularity, assim como a evolução do .Net Framework e da Internet, têm influência no trabalho do que será o sucessor definitivo do Windows. Documentos internos da empresa mostram que está em andamento vários estudos de migração e co-existência para esse novo sistema operacional, na qual hoje só conhecemos o codinome.
O Midori, obviamente, será lançado após o Windows 7, então teremos ainda pelo menos 5 anos de desenvolvimento ou mais. E a empresa precisa realmente fazer isso. Pesquisas mostram que o modelo do Windows já não atende tão bem as necessidades de computação e desenvolvimento de software modernos.
Por exemplo, computação multi-thread paralela e cloud computing são extremamente difíceis de se programar, pois não há, ainda, uma plataforma estável. Atualmente, não existem ainda programas capazes de obter o máximo de uma CPU com 8 núcleos. A IBM possui pesquisas nessa área, com o Octopiller. E programar de forma distribuída (cloud computing) onde o processamento será feito em várias máquinas conectadas em rede ainda é complicado e caro. Se houvesse uma forma de aplicativos serem escritos de forma que várias threads pudessem ser automaticamente gerenciadas, sem a necessidade de controle manual teríamos, finalmente, uma forma de usar todo o poder de processamento oferecido pelas futuras CPUs.
E se uma empresa precisar usar o poder de processamento de máquinas ociosas, durante a noite, para executar alguma tarefa? Esse é tipo de ambição que a Microsoft tem com o Midori. E ainda terá que trabalhar de forma assíncrona, parcialmente conectado.
O Midori irá co-existir com o Windows durante um bom tempo, por isso, os planos são rodá-lo nativamente em máquinas, como um processo dentro do Windows, numa máquina virtual como o Hyper-V e quebrar, finalmente, com o legado do Windows. Novos aplicativos seriam escritos no novo modelo, aproveitando de forma simples, delegando ao sistema operacional a tarefa de coordenar threads nos Hexadecacores e Icosacores que estaremos usando em 2016.
Arquitetura Modular: Serviços
A arquitetura do Midori será composta de 2 kernels. Um deles será um microkernel não-gerenciado e será a interface direta com o hardware. O outro kernel será gerenciado e vai prover os serviços de sistema. Esses serviços serão forçados a trabalhar com contratos, lembrando bastante o que já é feito com arquitetura SOA. Além disso, essa camada gerenciada terá o que eles chamam de Resource Management Infrastructure (RMI) que irá monitorar e gerenciar os recursos do hardware.
Para Saber Mais
Para saber mais sobre o Midori, é preciso ler mais sobre o Sistema Operacional Singularity que é um protótipo de sistema operacional, ou seja, jamais será comercialmente lançado, mas serve para explorar e extender novas tecnologias e possibilidades. O objetivo dele é testar novas idéias, de forma rápida e avaliar a viabilidade da mesma, antes de migrar para algo mais sério, como o Midori. Isso, amigos, é a pesquisa de ponta em sistemas operacionais. Em tempo, o Singularity foi escrito como uma extensão do C#, numa linguagem que eles chamam de Sing# e está disponível para download no Codeplex, para uso acadêmico e não-comercial. O código-fonte está disponível, assim como a documentação e um kit de desenvolvimento e pesquisa.
Para os interessados, uma rápida introdução de como foi preciso mudar completamente conceitos dos sistemas modernos, concebidos na década de 60 do século passado: Singularity: Rethinking Dependable System Design. Outro artigo que pode ser de interesse é o Singularity: Rethinking the Software Stack.
Existem ainda vídeos e apresentações sobre o projeto (Chanel 9):
Singularity: A research OS written in C#
Singularity Revisited
Singularity III: Revenge of the SIP
Singularity IV: Return of the UI
Não sei quanto a vocês, mas vejo com bons olhos essa evolução e é muito interessante presenciar essa mudança de paradigmas que muitos de nós não éramos nem nascidos. A Microsoft, de certa forma, sabe que o Windows está chegando ao limite de sua vida útil e terá que trabalhar muito para atender as demandas dos próximos 30-40 anos.
Fonte: SDTimes, Microsoft Reasearch Singularity