L’étrange histoire de TempleOS et de son concepteur

Dieu, extraterrestres et hommes en noir

L’étrange histoire de TempleOS et de son concepteur

L’étrange histoire de TempleOS et de son concepteur

Abonnez-vous pour tout dévorer et ne rien manquer.

Déjà abonné ? Se connecter

Abonnez-vous

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.

TempleOSTempleOS

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.

TempleOSTempleOS

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.

TempleOSTempleOS

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.

TempleOSTempleOS

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.

TempleOSTempleOS

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.

TempleOSTempleOS

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.

ZealOSZealOS

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.

Commentaires (34)


:byebye:



C’est la première fois que j’entends parler de cette personne et de cet os!



Merci pour la découverte. :)


J’avais vu une vidéo sur le gars, c’est une histoire triste, on est clairement dans le stéréotype de l’artiste maudit/fou version années 90.


Fascinant… et super dangereux potentiellement avec la couche réseau si les sécurités mémoires ont été shuntées. :transpi:


C’est un projet assez dément, avec des choix technologiques très intéressants (comme la structure des fichiers et la façon de mêler des contenus différents).



Après, il y a d’autres exemples d’OS écrits par une seule personne, je pense à PedroM pour les TI68k, écrit par Patrick Pélissier (et dont l’histoire, si elle n’est pas aussi passionnante que celle de TempleOS, a des aspects intéressants ^^).


Pareil, j’ai découvert le personnage en détails il n’y a pas longtemps grâce à un youtubeur Fr.
Même si l’OS en lui même lui par contre il avait été médiatisé, je le connais que de nom.



https://www.youtube.com/watch?v=U4cq8kq_-DE
Ne vous laissez pas avoir avec le titre de la vidéo :D


Je connais pas du tout ce Youtubeur, mais au vu du titre de la vidéo et du nom de la chaine, ça m’a l’air assez perché :transpi:


Patatt

Je connais pas du tout ce Youtubeur, mais au vu du titre de la vidéo et du nom de la chaine, ça m’a l’air assez perché :transpi:


Oui et non.
C’est léger et sérieux à la fois.
Enfin, forge toi ton opinion. ^^


Dans la même veine du gars tout seul mais moins illuminé (et maintenant rejoint par une communauté) il y a aussi serenityos qui a même son propre moteur de rendu web et son ide : https://en.m.wikipedia.org/wiki/SerenityOS


Génial cet article de culture geek. Voilà pourquoi on aime NXi.
:inpactitude:



Et pour les non-croyants qu’un OS biblique gênent horriblement, n’oubliez pas qu’il y a aussi AtheOS.



Il est de la même époque, tient sur une disquette, mais avec une interface graphique et avec un développeur beaucoup moins barré ! :mad2:
J’avais dû le tester sous VMware depuis le cédérom d’un magasine Login.



luxian a dit:


Et pour les non-croyants qu’un OS biblique gênent horriblement, n’oubliez pas qu’il y a aussi AtheOS.




Je suis non-croyant et ne suis pas gêné par l’existence d’un OS biblique. Je le deviendrais si un OS biblique devenait la norme dans le quotidien d’une république laïque. (houlala, c’est le type de sujet qui peut mettre le feu aux poudres sur NXI).


Ce qui donne de l’amertume c’est comment son talent de programmeur a été détourné par la maladie mentale, et comment son système d’exploitation a progressivement dévié d’un projet semi-normal à une obsession parano-religieuse (à commencer par le renommage). Voir le génie (au sens ingénierie) se soumettre à la démence, ça fait peine à voir.



Il y a aussi d’autres qui font peine dans son histoire, comme quand il s’est entiché d’une youtubeuse de vulgarisation de physique, et qu’une partie de la communauté 4chan s’est mise à “jouer” avec lui, en se faisant passer pour elle à travers des e-mails. Il recevait aussi des appels chez lui pour le provoquer et le mettre en colère.



Le documentaire que j’ai vu il y a quelques années est le suivant :
https://www.youtube.com/watch?v=UCgoxQCf5Jg
Il est assez long, je ne sais pas s’il existe une source plus complète ou si d’autres éléments de son histoire ont été révélés depuis.


Ha l’informatique ésotérique


Merci pour la découverte.
Comme luxian, c’est aussi pour cela qu’on vous aime…:love:


“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.”
“il voulait des performances maximales”
N’est-ce pas un peu contradictoire ?



“tenant dans une archive de 1,4 Mo”
Les OS actuels ont des progrés à faire en optimisation. :transpi:


Il y a ce type de personne, et puis il y a moi, qui n’arrive pas à aligner une ligne de code VBA sans faire d’erreur


Et personne pour citer nos projets français (cocorico!):





C’est à lire avec des popcorns et beaucoup de 2nd degré!


Purée, le topic ressorti du fond des âges, j’avais complètement oublié !


Vincent_H

Purée, le topic ressorti du fond des âges, j’avais complètement oublié !


C’est l’age ma pov Lucette :transpi:




En tous cas merci pour l’article, je ne connaissais pas du tout et merci aux commentaires de certains pour des liens sur cette personne / son projets / d’autres projets.



:inpactitude:


Tout ca ne vaut pas PonyOS, le système d’exploitation qui roxx du poney.



http://www.ponyos.org


:francais:
“Supports modern, multi-processor systems, so you can pony in parallel!” :mdr2:


Touchant un peu la thématique abordée il y a également UbuntuCE ( Ubuntu Christian Edition)



https://ubuntuce.com/


les voies du seigneur sont décidément impénétrables…


C’est parce qu’il ne supporte pas encore le réseau :transpi:



Winderly a dit:


“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.” “il voulait des performances maximales” N’est-ce pas un peu contradictoire ?




Pas du tout contradictoire, puisque la tâche active monopolise le processeur. Aucun temps perdu ailleurs que dans le programme en cours d’exécution.




“tenant dans une archive de 1,4 Mo” Les OS actuels ont des progrés à faire en optimisation. :transpi:




AmigaOS tenait dans moins que ça et c’était déjà assez joli (et multitâche préemptif). Même en ajoutant la disquette Workbench il me semble que ça tenait dans moins de 1,4 Mo pour l’essentiel.


Projet fascinant, dans la veine du Palais Idéal du Facteur Cheval non ? 2 remarques :




d’autres développeurs s’en sont emparés et ont créé des forks, dont TinkerOS et ZealOS.




Je parlerais plutôt de schismes, dans ces cas :D




512 Mo de mémoire, le minimum exigé par TempleOS




Donc au final on se retrouve avec l’équivalent du DOS de 1990, qui n’avait besoin que de 512 ko ?


C’est vraiment pour ce genre d’article que j’aime NXI, merci pour la découverte, je ne connaissais pas du tout
:inpactitude:


Je connaissais l’histoire du monsieur. L’accomplissement est assez incroyable, mais c’est vrai que d’autres aspects de son histoire sont plutôt tristes.


J’en avais entendu parler il y a longtemps, mais c’est toujours sympa d’en entendre parler de nouveau. Il y avait du talent pour réussir à créer un OS fonctionnel tout seul. On peut dire que c’est dommage effectivement, mais de l’autre, sans la maladie, aurait-il eu la passion nécessaire pour accomplir quelque chose de cette envergure ?


“il apprend l’assembleur et se lance dans le développement.”



“Mais au milieu des années 90, c’est la bascule. Une succession d’épisodes maniaques finit par le conduire en hôpital psychiatrique”



La version resumé de l’histoire :transpi:



OlivierJ a dit:


Pas du tout contradictoire, puisque la tâche active monopolise le processeur. Aucun temps perdu ailleurs que dans le programme en cours d’exécution.




A l’époque des processeurs mono-cœurs, oui ça pouvait ce justifier niveau performance.
Mais à l’heure des processeurs avec toujours plus de cœurs, où pour améliorer les performances il faut pouvoir tirer au mieux profit de l’exécution en parallèle, c’est complètement anachronique.



Uther a dit:


A l’époque des processeurs mono-cœurs, oui ça pouvait ce justifier niveau performance. Mais à l’heure des processeurs avec toujours plus de cœurs, où pour améliorer les performances il faut pouvoir tirer au mieux profit de l’exécution en parallèle, c’est complètement anachronique.




Le multitâche n’a rien à voir avec le multicoeur, qu’il soit préemptif ou coopératif, d’ailleurs ce n’est pas précisé dans l’article il me semble, je doute que l’OS soit multicoeur (c’est balaise à gérer), si déjà il est seulement multitâche coopératif.



Note que que si un tel OS est capable de lancer un programme en mode coopératif par coeur (ça existe un OS de ce type ?), déjà ça pourrait utiliser la puissance globale du CPU. Après, sur le fait que le multitâche préemptif permet plus facilement d’exploiter du multicoeur, je suis d’accord.


Le mutitache n’est pas la même chose que le multicœur mais c’est pas totalement décorrélé non plus car les cœurs sont affectés à des taches. Théoriquement on pourrait attribuer individuellement les cœur a un nombre limité de tache qui pourraient fonctionner en parallèle, mais ça serait un beau bordel à gérer. A ma connaissance il n’y a pas d’OS avec un multi-tache coopératifs qui sache prendre en charge plusieurs processeurs.



A la différence que Kyne West faisait de la musique actuellement écoutée par des personnes. TempleOS est surtout une curiosité anachronique : personne ne pouvait envisager de l’utiliser sérieusement.


Uther

Le mutitache n’est pas la même chose que le multicœur mais c’est pas totalement décorrélé non plus car les cœurs sont affectés à des taches. Théoriquement on pourrait attribuer individuellement les cœur a un nombre limité de tache qui pourraient fonctionner en parallèle, mais ça serait un beau bordel à gérer. A ma connaissance il n’y a pas d’OS avec un multi-tache coopératifs qui sache prendre en charge plusieurs processeurs.



A la différence que Kyne West faisait de la musique actuellement écoutée par des personnes. TempleOS est surtout une curiosité anachronique : personne ne pouvait envisager de l’utiliser sérieusement.


Oui, c’est vrai que je faisais plutôt allusion à leur personnalité franchement erratique - dû à une maladie mentale il est vrai - dans les deux cas.



…Nonobstant leur talent et compétences indéniables.


C’était un peu le Kanye West de l’informatique en somme.


Fermer