Resumo:
Laurie Kirk, pesquisadora que trabalhou como engenharia reversa na Microsoft por quatro anos e agora trabalha no Google, reacendeu recentemente o debate de décadas entre o Windows e o Linux. Ela declarou publicamente que o kernel do Windows NT ainda é um "milagre da engenharia" do ponto de vista do projeto de engenharia, e até supera o Linux em muitos aspectos.
Ela também apresentou um cenário histórico alternativo bastante ousado: se a Microsoft lançasse um "Open NT" no início do século 21 que permitisse que grandes empresas modificassem e derivassem livremente, a ecologia atual de servidores e computação em nuvem poderia apresentar um cenário completamente diferente.

Kirk enfatizou que o que ela admirava não era o menu Iniciar, o Copilot ou os anúncios do Windows 11, mas a arquitetura subjacente do kernel NT do Windows. Ela acredita que o NT estabeleceu um modelo de objeto e um sistema de segurança relativamente completos desde o início, enquanto o Linux adicionou gradualmente mecanismos de segurança como Capacidades, Namespaces e SELinux com base no Unix tradicional, de modo que parece mais disperso em geral.
Kirk disse nas plataformas sociais que se você fornecer a descrição mais simples da perspectiva de um programador, o NT está mais próximo de um design "orientado a objetos" e tem um modelo de segurança muito forte desde o início; em contraste, muitos dos recursos de segurança do Linux foram gradualmente adicionados posteriormente. Ela acredita que se um kernel de sistema operacional voltado para o futuro for projetado do zero hoje, a forma final provavelmente não se parecerá com o Linux, mas será mais próxima do NT, e pode até ser semelhante a algum ramo do BSD.
O Windows NT é na verdade a base técnica para todas as principais versões do Windows desde 1993, incluindo o atual Windows 11. A Microsoft contratou Dave Cutler em 1988, que já havia sido responsável pelo desenvolvimento do sistema operacional VMS na DEC. De acordo com a Microsoft, uma pequena equipe de ex-engenheiros da DEC liderada por Cutler passou cerca de seis meses desenvolvendo a especificação antes de realmente começar a escrever o código. Os objetivos iniciais incluíam portabilidade, suporte multiprocessador e certificação de segurança de nível C2.

O engenheiro aposentado da Microsoft, Dave Plummer, também participou da discussão. Ele ressaltou que o NT não é a primeira vez que Cutler projeta um kernel de sistema operacional do zero. Ele já participou do RSX-11M e do VMS, então o NT é na verdade a terceira vez que Cutler constrói um kernel do zero.
No entanto, o NT não substitui simplesmente o VMS por um shell do Windows. Foi originalmente chamado de NT OS/2, um sistema operacional que enfatizava a portabilidade. Ele foi desenvolvido primeiro para o processador Intel i860 e depois mudou para a arquitetura MIPS. A Microsoft eventualmente mudou a direção do produto principal do NT de OS/2 para Win32. Um histórico importante foi que o Windows 3.1 vendeu 16 milhões de cópias em apenas seis meses.
Uma das principais coisas que Kirk admirava era o design de "objetos" do NT. Na terminologia técnica da própria Microsoft, o NT não é um “sistema operacional orientado a objetos” implementado em linguagens como C++ no sentido tradicional, mas usa uma arquitetura “baseada em objetos”. Recursos como processos, threads, arquivos, dispositivos, chaves de registro, mutexes, trabalhos e tokens de acesso são todos gerenciados como objetos.
O gerenciador de objetos interno do NT é responsável por criar e destruir esses objetos, manter o namespace do objeto, rastrear quais objetos cada processo contém e gerenciar os direitos de acesso correspondentes. Diferentes componentes do sistema usam esses objetos por meio das interfaces fornecidas pelo componente ao qual o objeto pertence, portanto, quando a implementação interna do componente subjacente muda, pode evitar afetar outros componentes até certo ponto.
O lugar mais fácil para os programadores comuns do Windows entrarem em contato com esse design é a "alça". Quando um aplicativo abre um arquivo, o Windows não simplesmente entrega o arquivo ao aplicativo, mas retorna um identificador e registra as permissões que foram concedidas ao identificador. Quando o programa operar no arquivo posteriormente, o sistema verificará com base nessas permissões. Se um identificador for copiado, suas permissões poderão ser ainda mais reduzidas, mas não poderão ser aumentadas do nada por meio da operação de cópia.
Kirk acredita que esse método de gerenciamento relativamente unificado para diferentes recursos do sistema é muito elegante e também é uma das vantagens importantes da arquitetura NT.
O modelo de segurança do NT também é baseado em recursos, identidades e permissões. Depois que um usuário faz login no Windows, o sistema cria um token de acesso, que contém o SID do identificador de segurança do usuário, o grupo de usuários ao qual ele pertence e as permissões de sistema relacionadas. Os processos iniciados pelos usuários geralmente obtêm tokens de acesso correspondentes, e cada objeto que pode ser protegido possui um descritor de segurança, que inclui uma lista de controle de acesso que especifica quais SIDs podem obter quais permissões ou devem ser negadas.
Quando um processo tenta acessar um objeto, o Windows compara o token de acesso com a lista de controle de acesso do objeto e retorna um identificador com as permissões apropriadas. Além disso, os descritores de segurança podem conter listas de controle de acesso do sistema para fins de auditoria para registrar acessos bem-sucedidos ou com falha a um objeto.
No entanto, isso não significa que ter um kernel bem projetado seja automaticamente igual a um sistema operacional absolutamente seguro. O Windows NT 3.5 já recebeu uma classificação de segurança C2, mas o ambiente de certificação naquela época era um computador independente sem conexão de rede, e a Microsoft também fortaleceu as permissões padrão para arquivos e registro. À medida que o Windows entra na era da Internet, os drivers, as configurações padrão e os requisitos de compatibilidade acumulados ao longo de décadas também terão um enorme impacto na segurança do sistema.
Uma das principais críticas de Kirk ao Linux é que o Linux usa múltiplos mecanismos cooperativos para segurança e gerenciamento de permissões. As questões que ela levantou incluíam UID, GID, ACL, cgroups, várias políticas de segurança, SELinux e permissões de sistema de arquivos, etc., e acreditava que faltava um diagrama de relacionamento de permissão unificado e intuitivo entre esses mecanismos.

No entanto, essa complexidade também faz parte da forma como o Linux é projetado. UID e GID são usados para identificar usuários e grupos de usuários, enquanto as permissões de arquivo e ACL são responsáveis por proteger os arquivos. Os recursos podem separar os recursos das contas root tradicionais, como permitir que um servidor web vincule a porta 80 sem obter permissões root completas. Os namespaces permitem que os processos vejam montagens de sistemas de arquivos, processos ou ambientes de rede independentes. A tecnologia de contêineres é construída sobre esse mecanismo. cgroups são responsáveis por limitar o uso de recursos como CPU e memória, e o SELinux e outros módulos de segurança do Linux podem impor políticas de segurança adicionais com base nisso.
Muitos desses mecanismos do Linux foram adicionados gradualmente durante o desenvolvimento do kernel. Por exemplo, o SELinux foi originalmente proposto pela Agência de Segurança Nacional dos EUA na forma de um patch independente em 2001. O Linux posteriormente estabeleceu a estrutura do Módulo de Segurança Linux para que diferentes modelos de segurança possam ser acessados através de ganchos de kernel unificados. Hoje, o kernel Linux já suporta vários mecanismos de segurança, como SELinux, AppArmor, Smack, TOMOYO e Landlock.
Portanto, existem diferenças significativas nas filosofias de design dos dois sistemas operacionais. O NT tende a centralizar o gerenciamento em torno de um modelo de objeto unificado, enquanto o Linux presta mais atenção à capacidade de composição, permitindo que diferentes mecanismos assumam tarefas diferentes e permitindo que distribuições, administradores e cenários de aplicativos se combinem.
Kirk acredita que vale a pena revisitar essa diferença hoje em dia, com o rápido desenvolvimento de agentes de inteligência artificial. A questão central que ela levantou foi: "O que exatamente um agente de IA pode fazer?"
Os programas tradicionais geralmente são executados um por um, de acordo com instruções explicitamente emitidas pelo usuário, enquanto os agentes de IA podem executar continuamente milhares de operações em poucos minutos, gerar e executar códigos por conta própria, ler arquivos e concatenar múltiplas permissões para concluir tarefas complexas. Portanto, o sistema operacional não só precisa determinar “quem” está executando o programa, mas também definir mais claramente quais recursos um agente de IA pode acessar, em que escopo ele opera e como registrar esses comportamentos.
Kirk acredita que o modelo de objeto do NT pode permitir que o sistema operacional estabeleça relacionamentos de permissão mais claros para diferentes recursos e forneça um registro de auditoria mais centralizado e claro quando o agente de IA perde o controle. No entanto, ela também admitiu que esta ainda é uma hipótese arquitetônica e não uma conclusão comprovada.
Na verdade, o Linux tem fornecido cada vez mais ferramentas para esse problema. Landlock adicionado no Linux 5.13 permite que até mesmo processos sem privilégios limitem ativamente o sistema de arquivos e os recursos de rede que eles podem acessar. Esses limites podem ser herdados para processos filhos e só podem ser ainda mais restritos, e não relaxados pelo processo filho. Combinado com seccomp, Namespaces, cgroups e vários mecanismos LSM, o Linux também pode isolar estritamente os agentes de IA.
A própria Microsoft está caminhando em uma direção semelhante. A Microsoft anunciou o Microsoft Execution Containers, ou MXC, na conferência Build 2026, permitindo que os desenvolvedores declarem quais recursos o agente de IA pode acessar e o Windows imponha essas restrições durante o tempo de execução. MXC também pode criar contas de usuários independentes para agentes, permitindo ao sistema atribuir cada operação realizada pelo agente a uma identidade específica. O Agent Workspace existente do Windows 11 também usa ACL para restringir contas de agente para que suas permissões não excedam as do próprio usuário.
Em outras palavras, a Microsoft agora está usando mecanismos tradicionais do NT, como SIDs, tokens de acesso e ACLs, para resolver o problema das permissões dos agentes de IA. É exatamente aqui que Kirk acredita que a arquitetura do NT tem vantagens. No entanto, isso não significa que a Microsoft tenha provado que o Linux não é capaz de agentes de IA. Embora a própria Microsoft esteja a desenvolver o seu sistema operativo de IA, também alertou que os agentes de IA podem criar novos malware e riscos de segurança.

Kirk então propôs sua idéia histórica alternativa mais interessante: a Microsoft deveria realmente lançar um "Open NT" naquela época.
O Open NT que ela imaginou não precisa necessariamente ser completamente aberto como o software GPL, mas permite que grandes empresas modifiquem componentes específicos no kernel, mantendo os padrões básicos de segurança e compatibilidade definidos pela Microsoft. Por exemplo, quando a Amazon estava construindo a plataforma de computação em nuvem EC2 nos primeiros dias, ela poderia derivar uma versão chamada "AmazonNT" do Open NT e modificar o agendador, a pilha de rede ou o alocador de memória por conta própria, ao mesmo tempo em que cumpria as principais especificações de compatibilidade e segurança definidas pela Microsoft.
Na verdade, a Microsoft já tentou um modelo semelhante até certo ponto no passado. O programa Shared Source da Microsoft forneceu acesso ao código-fonte do Windows para aproximadamente 1.600 clientes empresariais, universidades e agências governamentais. Em 2001, o Ministério do Interior austríaco tornou-se o primeiro governo europeu a obter o código-fonte do Windows XP.
Em 2006, a Microsoft também lançou o Windows Research Kernel, que permite que pesquisadores universitários modifiquem o agendador e o gerenciador de memória do NT para ensino e pesquisa. No entanto, esses projetos ainda são de natureza limitada de compartilhamento de código-fonte e não permitem que empresas como a Amazon criem e distribuam comercialmente suas próprias filiais do Windows NT.
Quanto ao motivo pelo qual a Microsoft não abriu ainda mais o NT, o artigo acredita que isso pode envolver receitas de licenciamento, direitos de propriedade intelectual, custos de suporte técnico e o compromisso mais importante da Microsoft com a compatibilidade do Windows. Permitir que terceiros modifiquem o kernel por um longo período provavelmente significará que a Microsoft precisará enfrentar um grande número de problemas de compatibilidade e segurança entre diferentes versões.
Os desenvolvedores do Linux questionaram a visão do Open NT de outro ângulo. David Airlie, que está envolvido no desenvolvimento do subsistema gráfico do kernel Linux há muito tempo, acredita que o verdadeiro problema é o custo de manutenção de uma ramificação do kernel a longo prazo. Mesmo que o código-fonte seja totalmente aberto, se as empresas ainda precisarem manter os seus próprios gestores ou programadores de memória modificados 20 anos depois, deverão continuar a investir em equipas de engenharia dedicadas.
Airlie destacou que um grande número de empresas tentaram bifurcar versões do Linux, mas depois de alguns anos, muitas vezes descobrem que o custo de manutenção de suas próprias filiais é muito alto e, em última análise, optam por enviar as alterações de volta à linha principal. A razão pela qual diferentes implementações de JVM no ecossistema Java podem existir por muito tempo é porque elas têm clientes comerciais e fontes de receita claras por trás delas; enquanto uma sucursal do NT que serve apenas empresas internas pode ter dificuldade em suportar tais custos a longo prazo.
Se a Amazon modificar o agendador do NT, as correções de segurança que a Microsoft lança a cada mês terão que ser mescladas, testadas e verificadas novamente. Quanto mais o tempo passa, mais próximo esse branch se torna de um grupo de kernel do sistema operacional que precisa ser mantido de forma independente. O modelo Linux consiste em enviar um grande número de mudanças exigidas pelas empresas de volta à linha principal, tanto quanto possível, e ser mantidas em conjunto por toda a comunidade.
O próprio NT não está isento de bagagem histórica. Alguns engenheiros apontaram que o design consistente do VMS não foi completamente transferido para o NT moderno. O registro do Windows tem sido um dos componentes de sistema mais controversos entre os engenheiros.

Outra controvérsia surge do sistema gráfico. Durante o período do Windows NT 4.0, a Microsoft moveu o Gerenciador de Janelas, GDI e drivers gráficos para o espaço do kernel para melhorar o desempenho gráfico. Isso significa que um driver gráfico gravemente problemático pode causar falha direta em todo o sistema operacional. O Windows 2000 adicionou ainda um grande número de mecanismos, como Windows Driver Model, Plug and Play, gerenciamento de energia, WMI e objetos de trabalho.
Portanto, o kernel do NT no Windows 11 hoje não é mais o mesmo kernel de quando o NT 3.1 foi lançado pela primeira vez em 1993. O que Kirk realmente elogiou foram alguns dos conceitos básicos de arquitetura quando o NT foi fundado, em vez de pensar que todos os designs do Windows moderno são inerentemente superiores ao Linux.
A julgar pelos resultados históricos, o Linux finalmente alcançou uma posição nos campos de servidores e computação em nuvem que o NT não conseguiu alcançar. A licença aberta do Linux permite que qualquer organização modifique o kernel, execute-o em uma variedade de hardware e envie melhorias para a linha principal. O subsequente surgimento de contêineres, ferramentas de desenvolvimento e enormes ecossistemas como o Android fortaleceram ainda mais esse modelo de desenvolvimento.
O interessante é que a Microsoft tem trabalhado muito para fazer o Windows rodar melhor o Linux nos últimos anos. O subsistema Windows para Linux continua recebendo melhorias de desempenho e rede, e a Microsoft também lançou recursos como WSL Containers, permitindo aos usuários executar contêineres Linux diretamente no ambiente Windows. O Google também começou a adicionar suporte WSL às suas próprias ferramentas de IA.
Ao mesmo tempo, Kirk também mencionou o BSD. Ela acredita que se o kernel do sistema operacional for redesenhado hoje, além do NT, também poderá surgir uma arquitetura semelhante ao BSD. Ela acredita que a estrutura geral do BSD é relativamente organizada e possui mecanismos de isolamento, como Jails em seus primeiros dias.
O FreeBSD Jails pode limitar os sistemas de arquivos, usuários e ambientes de rede que um processo vê, enquanto o Capsicum está mais próximo do modelo de capacidades enfatizado por Kirk. Depois de entrar no Modo de Capacidade, o processo não pode acessar o namespace global à vontade e só pode usar permissões concedidas explicitamente a si mesmo por meio de descritores de arquivo. Curiosamente, o projeto Capsicum foi concluído na Universidade de Cambridge e recebeu financiamento de pesquisa do Google.
Desta perspectiva, o que Kirk está realmente discutindo não é quem é melhor em todos os cenários, Windows ou Linux, mas uma questão mais básica: como o sistema operacional deve representar e controlar as "permissões".
A ideia do NT é permitir que os recursos tenham tipos claros, anexar permissões de acesso aos recursos e verificá-los e registrá-los de maneira uniforme pelo sistema operacional, tanto quanto possível. O Linux parte da base Unix mais flexível e atende às necessidades de diferentes ambientes por meio de múltiplos mecanismos que podem ser combinados. Nenhum método sozinho pode garantir a segurança do sistema.
O surgimento de agentes de IA está tornando esta questão ainda mais importante. No passado, a questão mais importante para os sistemas operacionais era confirmar “qual usuário” está realizando a operação; no futuro, deverá responder ainda quem um agente de IA pode representar, que recursos pode aceder, durante quanto tempo tem permissão, que operações pode realizar e se o sistema pode provar com precisão o que fez.
O Windows NT não se tornou o player dominante no mundo dos servidores e da computação em nuvem, e essa posição foi finalmente assumida pelo Linux. No entanto, já se passaram mais de 30 anos desde o advento do NT 3.1. O Windows ainda usa os conceitos originais de design de objetos, identificadores, tokens de acesso e ACLs, e a Microsoft agora está começando a usar esses mecanismos para resolver o problema de isolamento de permissão dos agentes de IA.
Portanto, o "NT Aberto" idealizado por Laurie Kirk pode existir apenas para sempre na história ficcional, mas à medida que os computadores começam a executar ativamente cada vez mais tarefas para os humanos, um problema cada vez mais real enfrenta todos os sistemas operacionais: quando o software começa a agir em nome dos humanos, até onde devemos permitir que ele vá?
Comentários