Um sistema operacional em que a autoridade é detida, não presumida
Quase toda invasão funciona do mesmo jeito: um programa alcança algo em que nunca deveria tocar. O ParanoidBSD é um sistema operacional construído para que ele não consiga. Cada programa recebe só o que precisa, e todo o resto não é apenas proibido — está fora de alcance. Construído sobre o HardenedBSD, reescrito em C++ moderno, com o original guardado ao lado para que cada mudança possa ser conferida contra ele.
O que isto é, em um minuto
Um sistema operacional fica embaixo de tudo o mais que uma organização roda. A maioria é feita sobre décadas de código antigo e deixa qualquer programa pedir qualquer coisa — o sistema decide depois se permite. É por isso que uma falha em algo inofensivo, como o código que desenha uma fonte na tela, pode terminar em senhas roubadas.
O ParanoidBSD muda o que um programa consegue pedir, de saída. Em vez de checar a permissão depois do pedido, entrega a cada programa uma lista curta do que ele pode tocar e não lhe dá jeito nenhum de nomear o resto. Uma falha em uma parte deixa de ser um caminho para as outras.
Fornecedores de defesa e de governo a quem agora se pede software escrito em linguagens mais seguras. Equipamentos que ficam anos em campo e não dá para corrigir rápido — controladores de fábrica, máquinas médicas, hardware de concessionárias. Professores e pesquisadores que querem um sistema operacional de verdade, pequeno o bastante para ler de ponta a ponta.
Autoridade ambiente é o bug que não dá para corrigir
Em um Unix convencional, um processo não detém o direito de abrir
/etc/master.passwd. Ele simplesmente pede, e o kernel decide depois, com base em quem o processo diz ser. Todo processo consegue nomear todo recurso do sistema. O espaço de nomes é global e ambiente; a verificação é um acréscimo tardio.
É por isso que um único bug de parsing em um renderizador de fontes pode virar roubo de credenciais. O renderizador nunca precisou do arquivo de senhas — mas nada na arquitetura o impediu de pedir.
O HardenedBSD já faz trabalho sério aqui: a Aleatorização do Layout do Espaço de Endereçamento (ASLR), que carrega o programa em um lugar diferente a cada vez, para que o atacante não consiga adivinhar onde está o quê; a Integridade de Fluxo de Controle (CFI), que impede que o programa seja desviado para código que ele nunca foi feito para executar; e, ao lado delas, mitigações derivadas do PaX, SafeStack e alocadores de memória endurecidos. O PBSD mantém tudo isso e muda o formato da pergunta que está por baixo — de “este processo tem permissão?” para “este processo detém um descritor para aquilo?”
Dois jeitos de responder a uma chamada de sistema
// Ambient authority — the traditional path int fd = open("/etc/master.passwd", O_RDONLY); // kernel walks a global namespace, then // checks uid/gid/MAC after the fact // Handle nucleus — the PBSD path auto f = dir_handle.open("master.passwd", Rights::Read); // there is no global namespace to walk. // no handle, no name, no operation.
Formato ilustrativo da diferença, não uma listagem literal das chamadas que um programa faz ao kernel — a sua Interface de Programação de Aplicações, ou API. O modelo autoritativo está em docs/.
Acompanhe uma chamada de sistema atravessando o núcleo
Dê alguns descritores ao processo, escolha algo para ele tentar e alterne entre os dois modelos de autoridade. O veredito e o raciocínio são calculados ao vivo no seu navegador — este é um modelo didático do projeto, não um emulador de kernel.
Núcleo de capacidades — monitor de referência
O processo tenta…
Rastro
Descritores detidos pelo processo
Veredito
“Alcançáveis” conta quantas das operações listadas este processo conseguiria executar sob o modelo atual. Sob autoridade ambiente, o alcance é decidido pela identidade; sob o núcleo, pelos descritores que ele de fato detém.
pbsd/; a especificação está em
docs/specs/.
Quatro etapas, e um modelo que nunca certifica a si mesmo
Portar à mão o userland e o kernel de um Berkeley Software Distribution (BSD) para C++23 é uma década de trabalho. Portar pedindo a um modelo de linguagem que reescreva os arquivos é um jeito rápido de produzir lixo plausível. O PBSD não faz nem uma coisa nem outra.
Inventário
tools/inventory_c_sources.py e clang_cxx23_port.py pontuam cada arquivo C por dificuldade e escrevem c_inventory.csv. Nada sobre o escopo é chutado.
Passagens determinísticas
run_todo_passes.py aplica reescritas mecânicas seguras nos níveis 0–4. Nenhum modelo envolvido. Tudo o que uma passagem recusa é registrado em
refusals.jsonl em vez de ser forçado.
Loop de agentes
pbsd.py preenche os arquivos deixados como esboço e os recusados com DeepSeek Flash escalando para Pro no esforço de raciocínio máximo — 48 workers Flash e 24 Pro por padrão.
É isto que o Kickstarter financia.
Controle de verificação
Compilação, ASan, UBSan, execução diferencial e comparação no nível da Representação Intermediária (IR) do compilador. Um arquivo que só compila fica
não verificado. As falhas vão parar em
agent_port_failures.jsonl.
Um porte é uma afirmação de equivalência
Dizer que um arquivo foi portado é dizer que o novo se comporta como o antigo. Isso é uma afirmação, e afirmações precisam de evidência. Uma reescrita em C++23 que compila é um wireframe de aparência plausível; ainda não é o mesmo daemon.
Por isso o sinal de igual é o controle. A execução diferencial roda os dois e compara o comportamento observável. A comparação de IR confere se os dois significam a mesma coisa para o compilador. Até que uma das duas passe, o arquivo continua em aberto no registro de migração e não conta como progresso — por mais pronto que pareça.
Regras que o repositório de fato cumpre
Nenhum arquivo está pronto até passar na verificação diferencial ou de IR
Porte com fidelidade — não “conserte” bugs do original em silêncio
Ferramentas determinísticas primeiro; os modelos preenchem só o que sobra
O C++ de kernel é independente: -fno-exceptions -fno-rtti
docs/specs/KERNEL_CXX_ABI.md para que um colaborador saiba o que é permitido em contexto de kernel sem ter de adivinhar.
Todo módulo precisa de uma entrada de procedência antes de contar como pronto
docs/PROVENANCE.md registra de onde veio cada módulo e sob qual licença. É isso que torna a declaração de licenciamento abaixo verificável em vez de aspiracional — você pode conferir, módulo a módulo, qual código deriva do HardenedBSD e qual é trabalho novo do PBSD.
Duas licenças, honestamente separadas
O código novo do PBSD — o núcleo, os módulos C++23, as ferramentas — é oferecido sob os termos padrão da Imortek: a Licença Pública Geral Affero do GNU (AGPL-3.0+), grátis para uso pessoal, entidades beneficentes, educação e organizações com menos de 50.000 dólares australianos (AUD) por ano, com uma licença comercial em faixas acima disso.
O código derivado do HardenedBSD permanece sob a licença BSD original. Não pode ser relicenciado, e a Imortek não pretende fazê-lo. docs/PROVENANCE.md é o registro de qual é qual.
Trabalho novo do PBSD
pbsd/, tools/, scripts/, o núcleo de capacidades, UDA, BIFROST, compositor e tema.
Derivado do HardenedBSD
hbsd/ e todo arquivo portado que vem dela. Termos originais, atribuição original.
Um sistema operacional mais difícil de invadir
A maioria das invasões explora o mesmo tipo de erro: um programa alcançando memória que ele nunca deveria tocar. O ParanoidBSD reconstrói um sistema confiável em uma linguagem que torna esse erro muito mais difícil, e entrega a cada programa só o acesso de que ele realmente precisa.
Fornecedores de defesa e governo
Os compradores começam a exigir software escrito em linguagens que barram classes inteiras de ataque. Começar do zero custa uma década. Aqui, em vez disso, um sistema já comprovado é transportado, e fica um registro escrito de cada arquivo alterado e de como essa alteração foi conferida.
Equipamentos que ficam anos em campo
Controladores de fábrica, máquinas médicas, equipamentos de concessionárias. Quando aparece uma falha, muitas vezes não dá simplesmente para mandar uma atualização. Isto limita até onde um invasor chega depois de entrar, porque nenhum programa consegue alcançar além do que lhe foi entregue.
Universidades e pesquisadores de segurança
Um sistema operacional de verdade, pequeno o bastante para ser lido de ponta a ponta, com o original ao lado para comparar. Útil para ensinar e para testar ideias em algo que realmente roda.
O porte depende de computação que ele não tem
As passagens determinísticas são de graça. O loop de agentes que preenche o resíduo — e as execuções de verificação que o controlam — não são. É isso o que está sendo pedido.