Voici l’histoire d’un système d’exploitation qui a débuté comme un passe-temps, avant de devenir l’expression d’une mission dont son auteur, Terry Andrew Davis, se pensait investi par Dieu. Individu schizophrène et controversé, il a travaillé seul sur son projet pendant 10 ans.
Terrence Andrew Davis est né le 15 décembre 1969 aux États-Unis. Septième enfant d’une fratrie de huit, il présente très tôt un intérêt pour l’informatique, notamment grâce à un Apple II à l’école primaire. Plus tard, il se passionne pour la plateforme Commodore 64. Adolescent, il apprend l’assembleur et se lance dans le développement.
Jusqu’à ses 25 ans environ, tout se passe bien. Il obtient une maîtrise en génie électrique de l’université d’Arizona, puis travaille plusieurs années comme développeur sur des machines VAX chez Ticketmaster.
Mais au milieu des années 90, c’est la bascule. Une succession d’épisodes maniaques finit par le conduire en hôpital psychiatrique pour la première fois. Le diagnostic posé est alors une bipolarité, qui sera un peu plus tard révisée en schizophrénie. Il est persuadé que des extraterrestres arpentent la Terre et qu’il est suivi par des hommes en noir.
Dans les années qui suivent, il commence à faire des dons à des œuvres caritatives, le plus souvent chrétiennes. C’est dans ce contexte, comme il le dira plus tard, que Dieu serait venu lui parler après l’avoir remarqué. Terry aurait alors reçu une mission : construire le Troisième Temple de Jérusalem qui, dans la tradition juive, doit être reconstruit après le retour du Messie. Mais les instructions de Dieu sont claires : ce temple ne sera pas de pierre, mais un système d’exploitation.
Le développement a commencé vers 2003, dans un langage créé pour l’occasion, basé sur C et baptisé HolyC, lui-même créé en C et C++. On peut traduire HolyC par « C sacré », mais il s'agit peut-être un jeu de mots avec Holy See, nom anglais du Saint-Siège à Rome. Le projet est initialement connu sous le nom de J Operating System, puis change pour LoseThos, et encore plus tard pour SparrowOS.
C’est en 2013 seulement que le projet devient TempleOS. Terry Davis annonce alors très officiellement que le « temple de Dieu est terminé » et que Dieu va tuer la CIA. L’homme mourra en août 2018 percuté par un train, sans que l’on sache s’il s’agissait d’un accident ou d’un suicide. Il était sans domicile fixe depuis plusieurs années, mais continuait à diffuser des vidéos via un smartphone.
Mais pourquoi parler de TempleOS ? Parce qu’en dépit du personnage – ouvertement raciste et homophobe dans certains streams – le projet a fasciné et continue de le faire. Un système d’exploitation complet développé par une seule personne, fonctionnel et contenant des applications, dont des jeux.
Le système et ses caractéristiques
Nous ne sommes bien sûr pas en face d’un produit pouvant concurrencer un Windows, un macOS ou un Linux. Ce n’était d’ailleurs pas l’objectif de Terry Davis, qui avait des visées plus spirituelles, ce qui explique d’ailleurs bien des choix techniques de son projet.
TempleOS est un système 64 bits, conçu pour les machines de type x86_64 (amd64). Son multitâche est pourtant coopératif (non préemptif), comme dans les très vieux Windows et macOS, signifiant qu’un processus a les pleins pouvoirs tant qu’il ne rend pas explicitement la main à un autre.
Autre spécificité de TempleOS, son fonctionnement en ring 0 uniquement. Sur les processeurs x86, en mode protégé, on trouve quatre couches de protection nommées anneaux, allant du 0 au 3, chacune moins privilégiée que la précédente. En pratique, seules deux couches sont utilisées dans les systèmes actuels, les rings 0 et 3, correspondant à ce que l’on nomme le plus souvent espace noyau et espace utilisateur.
Sous Windows par exemple, le modèle de pilote a évolué avec le temps pour qu’ils soient tous en espace utilisateur (donc ring 3 pour le processeur), à l’exception d’une petite partie du pilote graphique, pour des questions de performances. C’est ce qui explique notamment qu’Intel réfléchisse à supprimer tout ce qui touche aux rings 1 et 2 dans son désir d'une évolution purement 64 bits du x86.
En clair, TempleOS fonctionne exclusivement en espace noyau avec l’intégralité de ses fonctions et applications. Pour Terry Davis, ce n’était pas un problème. D’abord, son système ne prend pas en charge le réseau et n’est donc pas connecté à internet. Ensuite, il voulait des performances maximales, donc sans aucun mécanisme de sécurité impliquant des contrôles qu’il estimait superfétatoires.
L’interface, située quelque part entre MS-DOS et Turbo C (un vieil environnement de développement de Borland), s’affiche en VGA (640 x 480) 16 couleurs, aucune autre définition n’étant supportée. Les cartes son ne sont pas non plus prises en charge, le système se débrouillant avec le haut-parleur du PC. En revanche, le clavier et la souris sont là. TempleOS supporte en outre trois systèmes de fichiers : ISO 9660, FAT32 et RedSea, créé par Terry Davis et faisant une nouvelle référence biblique (le gestionnaire des tâches s’appelle Adam). En 2014, Davis dira à VICE que plusieurs de ces caractéristiques lui ont été dictées par Dieu, comme le VGA et les 16 couleurs.
TempleOS intègre également plusieurs jeux. Le système se voulant avant tout l’expression d’une mission autant qu’un passe-temps, Terry Davis voulait montrer que son projet était la plateforme idéale pour développer des jeux, comme l’était le Commodore 64 dans sa jeunesse. Ces titres sont souvent approximatifs, certains tout juste fonctionnels, mais les idées étaient là. Nous allons y revenir.
On retrouve finalement tout ce qui fait un système d’exploitation, à savoir un bootloader, un noyau, un gestionnaire de fenêtres, des bibliothèques graphiques (dont une pour la 3D), etc. Le tout réparti dans 120 000 lignes de code environ, tenant dans une archive de 1,4 Mo.
Enfin, l’une des grosses particularités du système repose dans la structure des fichiers, utilisés pour de multiples finalités, via un format universel et nommé DOLDOC. On peut se balader tranquillement dans le code source du système, puisque tout est accessible, en ring 0 et open source. Le système intégrant un compilateur, on peut donc lancer soi-même des opérations dans ce sens. Il faut d’ailleurs faire attention à ce que l’on y fait, car presque aucun garde-fou n’a été intégré. On pourra observer dans certains fichiers sources des éléments graphiques, le format gérant plusieurs types d’information sur un même plan.
On peut tester TempleOS assez facilement
Rien n’empêche de tester TempleOS chez soi. Le système s’accommodera cependant mal du matériel moderne, sa base de pilotes étant limitée et s’appuyant sur des numéros d'IRQ. Mais on peut le récupérer depuis son site officiel (l’image ISO ne fait que 16 Mo environ) et l’installer dans une machine virtuelle.
TempleOS fonctionne bien dans VirtualBox et VMware Workstation, que nous avons testés tous deux. Si vous pouvez, privilégiez cependant le second, capable d’émuler le « PC Speaker » et que Davis utilisait d’ailleurs lui-même pour ses tests. Dans les deux cas, la configuration par défaut suffit, en s’assurant simplement que le type de système est positionné sur « Other 64 bits » et que la configuration a au moins 512 Mo de mémoire, le minimum exigé par TempleOS. Après quoi, on peut couper tout ce qui touche aux cartes son et réseau, non gérés par le système.
Au démarrage, on arrive directement sur l’installation, qui nous demande si l’on souhaite utiliser le disque dur. Après quoi, TempleOS demande si l’installation se fait justement dans une machine virtuelle, puis le processus suit son cours en affichant la longue liste de fichiers copiés vers le disque.
Le maniement général est particulier et n’a rien à voir avec les systèmes classiques. Toutes les actions peuvent être déclenchées en ligne de commande, qui reprend la syntaxe de HolyC, avec des « ; » à la fin. De nombreux raccourcis clavier sont cependant disponibles, même si le système ne supporte que la disposition Qwerty américaine.
Par exemple, en appuyant sur Ctrl + M, on obtient la liste des jeux et de quelques autres applications. On trouve un peu de tout : un shoot em up, une simulation de ski, un jeu de course… mais son « titre » phare, c’est AfterEgypt, qui retrace dans les grandes lignes le parcours de Moïse et de son peuple dans le désert. C’est à la fois un jeu de gestion (un peu) et d’initiation, puisque l’on revisite les passages importants de cette histoire, comme guider Moïse vers le buisson ardent. Le tout en 3D (le système a son propre moteur), mais avec des graphismes plus qu’approximatifs, les arbres étant par exemple dessinés à la main. Mais attention, AfterEgypt n’était pas terminé et n’a pas été intégré dans la version « finale » de TempleOS. Pour l’obtenir, il faut revenir sur une ancienne mouture (comme la 4.04).
Le système étant vu comme une plateforme de développement pour les jeux, on trouve un éditeur de sprites, un autre pour les meshs 3D ou encore un autre pour créer de la musique.
Un projet fou pour l’histoire
Si TempleOS continue de faire parler aujourd’hui dans certaines communautés techniques et de développement, c’est parce qu’il prouve qu’une personne seule peut se lancer dans l’aventure un peu folle de créer un système d’exploitation complet. Bien sûr, Terry Davis s’y est entièrement consacré pendant 10 ans, sur un rythme effréné, mais le résultat est là et il faut un talent certain pour créer un système complet, sur la base d’un langage lui aussi créé pour l’occasion, avec des applications et des jeux, un gestionnaire de fenêtres et autres.
La personnalité de Davis n’est jamais loin quand on navigue dans TempleOS. Le système étant truffé de références à la Bible et contient même une « FAQ de Dieu », aux références pour le moins étonnantes, voire absconses. On trouve également un générateur de nombres aléatoires servant à sélectionner des mots au hasard pour générer ce que Davis considérait être la « parole de Dieu ». On peut le voir à l’œuvre notamment dans After Egypt. Il est aussi utilisé pour générer des notes via le PC Speaker dans God Song. Ou encore dans God Doodle, qui consiste à laisser Espace appuyée pour générer des lignes et des courbes, jusqu’à ce que le programme vienne remplir les surfaces ainsi créées.
On trouve facilement d’anciens articles de presse relatant cette aventure, notamment sur TheNewStack et OSNews. Tous relatent que la réception générale du système fut globalement bonne, en particulier parce que beaucoup reconnaissaient le tour de force du projet. Le résultat n’était pas réellement exploitable au quotidien, mais de nombreux développeurs se sont penchés sur TempleOS pour en comprendre le maniement et surtout sa conception.
Aujourd’hui, l’engouement reste « confidentiel » mais présent. Le code étant open source, d’autres développeurs s’en sont emparés et ont créé des forks, dont TinkerOS et ZealOS. Le premier est resté très proche de l'original et a surtout été amélioré pour pouvoir être installé nativement sur un plus grand nombre de configurations matérielles. Le second a été davantage modernisé, y compris au niveau de l’interface : prise en charge de définitions jusqu’au 1080p, couleurs 32 bits, support de l’AHCI, pilotes pour le réseau (qui dispose d’une pile), interface en 60 images par seconde, etc.
TempleOS est également un bon exemple de la complexité de certains sujets à traiter. Le projet a impressionné techniquement, mais son auteur a copieusement rebroussé les poils d’un grand nombre de personnes, notamment sur OSNews, où lecteurs et journalistes étaient insultés. Au point d’ailleurs d’en avoir été banni.
Si votre curiosité vous emmène sur les terres étranges de TempleOS, vous rencontrerez peut-être des bugs, particulièrement dans certains jeux comme Titanium. Mais ce projet « illuminé » vaut le détour pour le tour de force technique qu’il représente, même s’il s’adresse surtout à un public ayant de bonnes connaissances techniques, plus particulièrement aux personnes ayant de bonnes notions en développement.
Notez enfin que sa chaine YouTube est toujours là, même si elle ne contient plus qu'une vidéo. Il les avait toutes supprimées, n'en laissant qu'une où il se présentait en tant que « roi ». On retrouve facilement des vidéos plus anciennes, notamment de l'époque où il était en plein développement de TempleOS. Soyez cependant averti, car il arrivait au personnage d'être désagréable, voire franchement ordurier.