Preuve : NULLos est un système d’exploitation à part entière

Pour tous ceux qui doutent : NULLos n’est pas un Linux renommé ni une distribution adaptée. Vous trouverez ici comment le vérifier vous-même, ce que nous avons vérifié – et où se situent les limites d’une telle preuve.

Résultat de la vérification du 3 novembre 2026

1. Vérifier vous-même le téléchargement disponible

Un Linux se trahit immédiatement : le noyau contient « Linux version … », les programmes portent des identifiants de glibc ou de musl, les modules du noyau leur licence GPL. Avec des outils librement disponibles (mtools, strings, binwalk, syft), chacun peut examiner lui-même l’image du téléchargement. Les commandes pour macOS et Linux :

# 1. Télécharger l’image et les sommes de contrôle depuis nullos.de/#download, vérifier la somme de contrôle
shasum -a 256 -c SHA256SUMS --ignore-missing      # Linux: sha256sum -c --ignore-missing SHA256SUMS

# 2. Extraire de la partition le chargeur d’amorçage, le noyau et l’archive des programmes (mtools)
export MTOOLS_SKIP_CHECK=1
I=nullos-0.3.5-x86_64.img@@1048576
mcopy -i $I ::/EFI/BOOT/BOOTX64.EFI BOOTX64.EFI
mcopy -i $I ::/nullos/nk.elf nk.elf
mcopy -i $I ::/nullos/init.img init.img
file BOOTX64.EFI nk.elf init.img
mkdir init && tar -xf init.img -C init

# 3. Rechercher des identifiants de Linux, GNU, glibc, musl, BusyBox, systemd, GRUB et de compilateurs
{ strings -a nk.elf BOOTX64.EFI; find init -type f -exec strings -a {} +; } | grep -E -c \
  'Linux version [0-9]|GLIBC_|GNU C Library|musl libc|BusyBox v|GCC: \(|clang version|license=|__ksymtab|systemd [0-9]{3}|GNU GRUB'

# 4. Rechercher des formats étrangers intégrés et des paquets logiciels connus
binwalk nk.elf BOOTX64.EFI
syft dir:init

Notre résultat pour 0.3.5 : file indique PE32+ (UEFI), ELF 64 bits statique et tar ; la recherche de l’étape 3 donne 0 ; binwalk ne trouve que le programme ELF, ou une table SHA-256 dans le chargeur d’amorçage ; syft indique « No packages discovered ». À titre de comparaison : sur un noyau Linux, l’étape 3 trouve immédiatement le texte « Linux version ».

2. Horodatage du code source en préparation, à partir de 0.4

Pour chaque version publiée, une empreinte (SHA-256) est calculée sur l’ensemble du code source et ancrée dans la blockchain Bitcoin avec OpenTimestamps. Le code reste secret. S’il est rendu public plus tard, chacun pourra prouver que c’est exactement ce code qui existait déjà à cette date. Cela prouve « existait à l’époque » – pas que l’image en a été produite à l’identique bit à bit, car les images ne sont pas (encore) construites de façon reproductible.

3. Vérification ponctuelle sur demande pas actuellement

L’idée : un sceptique choisit un endroit quelconque du noyau, NULLos dévoile exactement cette fonction, et une fois compilée, elle donne les mêmes octets. Ce n’est pas possible aujourd’hui : les images ne contiennent volontairement aucun symbole (protection contre la décompilation), une table des symboles faciliterait les attaques, et le résultat ne serait identique bit à bit qu’avec exactement la même chaîne d’outils.

4. Preuve dans le système lui-même pas actuellement

NULLos possède son propre compilateur C, qui se compile lui-même. Placer une partie des sources dans l’image pour pouvoir les recompiler dans NULLos et les comparer est possible – mais cela va à l’encontre de la décision de ne livrer ni SDK public ni compilateur dans l’image.

5. Vérificateur indépendant envisageable

Un organisme indépendant – par exemple une université ou un expert – consulte l’ensemble du code source sous engagement de confidentialité et confirme : code propre, pas de GPL. Rien n’est encore convenu.

6. Perspectives : compiler avec preuve d’origine recherche

Des chercheurs travaillent à faire tourner le compilateur dans un environnement vérifiable qui fournit en même temps une preuve mathématique du code source dont un programme est issu (par ex. arXiv 2602.11887, février 2026). Ce n’est pas encore prêt pour la pratique.

Ce qui ne vient pas de NULLos lui-même – en toute honnêteté

Aucun code de programme tiers sous GPL n’est connu.

Au passage, chaque programme de NULLos porte sa propre section .nullos.ausweis : sa carte d’identité, qui fixe ce qu’il a le droit de faire. Aucun programme Linux n’a rien de tel.