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
- Vérifié : l’image publiée
nullos-0.3.5-x86_64.img(SHA-256b6b3ddd7…, la somme de contrôle correspond). - Contenu : un chargeur d’amorçage UEFI propre
BOOTX64.EFI(PE32+, 17 920 octets), le noyaunk.elf(ELF 64 bits, 492 112 octets, statique, sans symboles) etinit.img(tar, 890 fichiers, dont 418 programmes, tous liés statiquement). - 0 occurrence d’identifiants de Linux, glibc, musl, BusyBox, systemd, GRUB, de licences de modules du noyau ni d’identifiants de compilateurs – dans le noyau, le chargeur d’amorçage et l’ensemble des 890 fichiers.
- Aucun chargeur dynamique, aucun identifiant de compilateur (
.comment), aucune bibliothèque tierce. - binwalk 3.1.0 : aucun format étranger intégré, aucun noyau compressé, aucune image de système de fichiers – uniquement les programmes eux-mêmes, des tables pour SHA-256 et CRC32, 117 certificats, 2 images SVG et les textes de licence des polices.
- syft 1.56.0 : 0 paquet logiciel connu.
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é
- Outils de compilation : le noyau et les programmes sont actuellement compilés sur le Mac avec LLVM clang/lld. NULLos possède son propre compilateur C, qui se compile lui-même, mais ne construit pas encore les images des versions publiées.
- Polices : Inter, JetBrains Mono, Fredoka, Chakra Petch et Bangers sous SIL Open Font License 1.1, converties dans notre propre format de police ; les textes de licence sont fournis.
- Certificats racine : les 117 certificats de la liste de Mozilla (
/sys/ssl/cert.pem) – des données, pas du code de programme. - Tables de données du navigateur Flitz issues de normes et de listes publiques, comme les entités HTML ; les versions ultérieures ajouteront d’autres tables (dictionnaire Brotli, Public Suffix List, données Unicode et CJK).
- Deux noms standard dans le noyau : « Microsoft Windows NT » (le nom que le firmware interroge via ACPI) et « linux,phandle » (le nom d’une propriété de l’arbre de périphériques) – des noms issus de normes, pas du code.
- Certains matériels nécessiteront plus tard des firmwares de pilotes ou des paquets tiers (par exemple pour le Wi-Fi). Ils seront fournis sous forme de paquets chargeables, pas dans l’image.
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.