Por toda minha vida pessoal e profissional meu desktop de uso diário rodou um sistema Windows.
Até hoje a versão que mais gostei de usar foi o Windows 2000 - a versão moderna mais lightweight do kernel do NT que já experimentei. Mas o Windows 10, desde que migrei para ele tem me deixado bastante feliz. Pouquíssimos BSODs (talvez 2 até hoje por problemas de hardware), muitas opções de personalização, UI agradável e excelente compatibilidade de programas.
Ele teria tudo para ser o meu sistema preferido e durar muitos anos no meu HD. Teria, não fossem três pequenos problemas (que não são exclusivos do Win10 mas que atingiram o meu limite com ele):
- Quantidade de serviços e programas na inicialização e background;
- Controvérsias sobre privacidade do Win10
- Possibilidade de infecção por malware
1- Programas
O primeiro item é uma tendência desde sempre em sistemas Windows. Cada nova versão vem por padrão com uma quantidade maior de serviços que devem ficar em execução em background. A primeira coisa que sempre faço ao instalar uma nova versão para uso pessoal é desligar a maior parte dos serviços de inicialização automática. Mas isso já perdeu a graça. E a complexidade e interdependência entre os serviços implica em eu não saber o que é absolutamente seguro desabilitar (ainda lembro quando desabilitei o “Cliente RPC” em uma instalação antiga do WinXP - não foi divertido :( ).
Isso sem contar os diversos softwares que eu instalo para uso diário que acham legal instalar um serviço, driver ou atalho na bandeja, consumindo memória e processamento. O campeão de todos é o extremamente divertido GbPlugin.
2- Privacidade
O segundo ponto se refere as considerações de privacidade que surgiram desde o lançamento do Win10, o modo como a Microsoft forçou usuários do Win7 a atualizarem seu sistema e ao conjunto de informações que são coletadas e enviadas aos servidores da MS constantemente.
Recentemente e sem aviso prévio, ao desligar meu computador no fim do dia vi o familiar “Atualizar e Desligar” ao invés do tradicional botão de desligar. Eu sei que sempre que vejo esse botão, devo me preparar para um bom tempo perdido em atualizações.
Dessa vez foi a instalação do Creator’s Update. Embora ele tenha trazido recursos legais e que eu queria (em particular a possibilidade de criar symlinks sem precisar ser administrador, pra poder usar symlinks em repositórios git) eu gostaria de ser perguntado antes que o sistema comece uma instalação desse porte.
Ainda bem que essa instalação em particular veio em uma sexta-feira e eu pude deixar o computador atualizando no sábado pela manhã, senão seriam menos 4 horas de trabalho esperando o Windows terminar a atualização.
3- Malware
Finalmente o terceiro e mais importante ponto - possibilidade de malwares. O WannaCry foi a gota d’água.
Eu não fui pessoalmente afetado por ele em nenhuma das minhas máquinas, mas a mera possibilidade disso acontecer - um ataque vindo de um micro da minha rede local explorando uma vulnerabilidade em um protocolo que basicamente nunca é desabilitado em uma máquina Windows é muito preocupante.
Em conclusão, eu não tenho mais confiança na minha capacidade de saber o que está em execução na minha máquina pessoal Windows e se a sensação de segurança que tenho mesmo com antivirus, firewall e práticas de segurança é justificada.
Alternativa?
A alternativa é migrar para uma máquina Linux ou similar.
Em relação as necessidades de desenvolvimento de software, pouca coisa do que fiz últimos meses teve necessidade exclusiva de uma máquina Windows para desenvolvimento. E de qualquer forma já a alguns anos eu faço desenvolvimento Windows em uma VM própria para isso (para permitir coisas como um snapshot do ambiente de desenvolvimento Delphi antes de instalar um novo componente ou mover o ambiente para outra máquina física sem precisar reinstalar tudo).
A única dificuldade seria se tivesse que usar algum dispositivo muito particular (algum dispositivo conectado via porta serial, alguma placa PCI de desenvolvimento ou algo mais exótico) mas não me lembro da última vez que precisei de algo assim.
E para os projetos Web não faz muita diferença o SO onde eu trabalho diariamente. Antes de um deploy, testo o software em um ambiente de staging (seja ele Windows ou Linux) de qualquer forma.
Então comecei a pesquisar qual vai ser o SO que devo usar pela próxima década.
Particularmente, gosto muito do FreeBSD então minha primeira alternativa seria o TrueOS.
Mas algum tempo atrás ouvi falar do QubesOS e resolvi fazer um teste.
Qubes-OS
A premissa do Qubes OS é executar um hypervisor Xen, um DOM-0 mínimo (com interface gráfica) e compartimentar todo trabalho dos softwares em Máquinas Virtuais individuais classificadas em diferentes domínios.
Exemplo prático - ao invés de executar um editor de texto diretamente, ele é executado em uma VM. Ao editar um arquivo referente a um trabalho (digamos, um arquivo de código fonte PHP), a VM “trabalho” é executada. Ao editar um arquivo de anotações gerais (digamos um arquivo com bookmarks) a VM “não-confiável” é executada. E ao editar um arquivo onde armazeno senhas, a VM “cofre” é executada que não tem sequer uma interface de rede.
Tudo isso é amarrado em uma GUI seamless: ao invés cada VM ficar inteiramente em uma janela separada como no VirtualBox cada programa é executado em sua própria janela, renderizado com uma cor diferente para domínio - vermelho para inseguro, amarelo para pessoal, verde para seguro, etc.
Esse modelo de funcionamento é algo que queria usar desde que comecei a usar máquinas virtuais com o VMWare para teste e desenvolvimento a uns 10 anos.
E em meu workflow diário já utilizo muitas VMs, através do VirtualBox diretamente ou pelo Vagrant - atualmente uso um notebook LG com processador i7 com 4 núcleos/8 threads, 16GB de RAM e um HD SSD Samsung de 500GB e ele aguenta qualquer coisa que eu mande.
Então, baixei a ISO do Qubes, peguei um HD antigo (convencional) e instalei nele no fim de semana para alguns testes.
Esse foi só meu primeiro post em uma nova série abordando o Qubes OS. No próximo post vou falar sobre as primeiras impressões após a instalação.
Seja o primeiro a ler a próximo post assinando meu feed RSS, recebendo minha newsletter, ou pelo facebook.