Connect with us

Tech

Un tour in TempleOS: il tempio digitale di Dio

Published

on

In questo articolo parliamo di TempleOS (anche conosciuto come LoseThos o SparrowOS), uno dei sistemi operativi più interessanti ed al contempo controversi degli ultimi anni, sviluppato in solitaria dal defunto Terry A. Davis. Nonostante per una miriade di aspetti questo non sia un sistema che ad oggi abbia una reale utilità, ci soffermeremo sulle parti interessanti e, secondo la filosofia del suo autore, più divertenti.

La visione di Terry A. Davis

Il nostro tour parte dal creatore di TempleOS, Terry A. Davis, nato il 15 Dicembre 1969 nel Wisconsin. Terry era il settimo figlio in una famiglia cattolica con una passione per i computer che lo ha portato a diventare un affermato ingegnere informatico. Tutto andava a gonfie vele, quando nel 1996 Davis comincia a subire una serie di episodi psicotici, prevalentemente di natura paranoica, incentrati su alieni e uomini del governo che lo starebbero pedinando.

D’ora in poi, Davis comincia a comportarsi in maniera insolita, donando grosse somme di denaro ad associazioni di beneficenza e scappando dalla propria città per vagare senza meta. Dopo esser finito in ospedale per una frattura alla clavicola, Terry tenta di scappare e finisce per essere arrestato e conseguentemente trasferito ad un ospedale psichiatrico. Passano gli anni e gli episodi psicotici causati dalla sua schizofrenia aumentano, quando ad un certo punto Davis (da sempre ateo), diventa fortemente cristiano, sostenendo di essere in contatto con Dio, che lo avrebbe incaricato di creare un sistema operativo che funga da tempio per i suoi fedeli.

templeos

Installazione e requisiti hardware

Installare TempleOS su una macchina reale risulterà nella maggior parte dei casi una sfida tecnica. Il sistema supporta solo processori a 64 bit e I/O del ventennio scorso, e non solo: durante l’installazione sarà necessario specificare i codici IRQ di ogni periferica hardware. Fortunatamente, con l’utilizzo di una macchina virtuale questo processo non sarà altrettanto tedioso, dal momento che l’installer imposta automaticamente i parametri necessari per la corretta esecuzione del sistema (se siete curiosi, vi consigliamo VirtualBox).

“[TempleOS] è creato per intrattenere programmando. Offre pieni privilegi kernel al programmatore perché è divertente.” -Terry A. Davis

Installare TempleOS è una questione di pochi secondi: basta premere Y alcune volte e l’installer compilerà il sistema operativo, le demo e riempirà il filesystem di base. Al termine dell’installazione sarà possibile riavviare la macchina ed utilizzare immediatamente il sistema, che accoglie l’utente con una serie di tutorial sul suo utilizzo ed un piccolo assaggio del genio e della creatività di Davis: uno script che esegue ognuna delle demo (più di 150!) incluse nel sistema operativo in rapida successione, che insieme a molti altri aspetti di TempleOS comunica lo scopo principale del progetto: offrire un ambiente in cui ci si possa divertire programmando, senza badare alle problematiche di sicurezza o le complessità dell’hardware moderno.

templeos

A sinistra, la prima schermata fornita dal sistema appena installato. A destra: l’utility di documentazione integrata con TempleOS.

Come funziona TempleOS

TempleOS è un sistema operativo completamente open source, sviluppato interamente da Terry A. Davis e improntato alla programmazione a scopi ricreativi. Infatti, essendo concepito per l’utilizzo di un solo utente, il  sistema non implementa alcun meccanismo di sicurezza e non supporta la connessione ad Internet, nè a qualsiasi altro dispositivo in rete locale. L’unica modalità video supportata è 640×480 VGA a 16 colori, e nonostante la maggior parte delle interfacce grafiche siano rappresentate in maniera testuale, vengono persino fornite librerie per grafica 2D e 3D. L’unica periferica audio supportata è lo speaker della scheda madre.

Una delle feature più interessanti di TempleOS è sicuramente DolDoc, una sorta di formato di visualizzazione che viene utilizzato per gli scopi più disparati. Ad esempio, grazie alla funzione di ipertesto è possibile inserire collegamenti immediati a qualsiasi comando: creare un launcher personalizzato, o inserire collegamenti alla documentazione è solo questione di creare un file di testo. E non solo: tramite questo sistema è possibile addirittura inserire modelli e immagini all’interno di file di testo e programmi, dove lo trovate un editor simile?

templeos graph

All’interno di DolDoc è possibile inserire anche dei grafici che a loro volta possono contenere link ad altre pagine. Premendo CTRL+T è possibile vedere una rappresentazione puramente testuale di ogni documento.

Ogni programma viene eseguito a ring 0, vale a dire che non viene imposta alcuna restrizione (o burocrazia, diceva Davis, sminuendo altri sistemi operativi) ed ogni riga di codice viene eseguita con gli stessi privilegi del codice che normalmente gira nel kernel. Le implicazioni di una simile politica in sistemi operativi reali bastano per far rabbrividire qualunque sistemista, ma con l’assenza di connessione con altri dispositivi i rischi sono semplicemente limitati alla possibilità di far crashare il vostro sistema, del resto è pur sempre uno sforzo educativo.

Programmare in HolyC

HolyC è un dialetto del C che integra alcune funzionalità del C++, ed è il linguaggio creato apposta per implementare TempleOS (insieme a delle parti in linguaggio assembly) e ogni programma che viene eseguito al suo interno. Non a caso, il nome del linguaggio creato da Davis si pronuncia esattamente come “Holy See“, l’espressione inglese per riferirsi alla Santa Sede. Uno degli aspetti più interessanti del funzionamento di TempleOS è che questo linguaggio è usato non solo per sviluppare applicazioni, ma anche per eseguire le azioni tramite la riga di comando.

Infatti, ogni shell messa a disposizione all’utente non è altro che un’estensione del compilatore: ogni comando viene compilato on the fly, e lo stesso vale per ogni riga di codice che compone i programmi, basta semplicemente usare la direttiva #include ed eseguire una funzione. Il vostro programma è diviso in più file? Basta includerli tutti ed eseguirli, ogni funzione viene compilata e caricata nella memoria della shell attualmente in utilizzo, mentre le istruzioni al livello superiore sono immediatamente eseguite, un approccio che sarà familiare a chi utilizza linguaggi di programmazione interpretati come Python.

templeos debug

Una sessione di debugging appena avviata. Il debugger consiste di una semplice riga di comando e di un display con lo stato dei registri del processore.

Anche effettuare il debug di un programma scritto in HolyC è relativamente semplice. Dal momento che in TempleOS il concetto di programma è praticamente inscindibile da quello di funzione, basta eseguire il debugger direttamente nel codice per interromperne l’esecuzione e monitorare lo stato del programma, o premere CTRL+ALT+D in un qualsiasi momento. Difficilmente è possibile trovare ambienti di sviluppo che offrano soluzioni potenti quanto semplici come quella di interrompere un programma e avviare al suo interno una riga di comando per il debug, e visto quanto è difficile realizzare qualcosa di simile, TempleOS offre chiari spunti da cui potremmo imparare.

I meriti di TempleOS

La storia di Terry e dello sviluppo di TempleOS, durato circa quindici anni, è particolarmente turbolenta. Tra le innumerevoli problematiche di salute mentale dell’autore e la difficile ricerca di un pubblico che prendesse sul serio il progetto (con conseguenti reazioni da parte degli utenti delle svariate board, in buona fede o no), è diventato facile prendere di mira le chiare debolezze del sistema senza tener conto delle reali potenzialità della sua filosofia di utilizzo.

TempleOS nasce unicamente per di offrire un ambiente di sviluppo di software a scopo ricreativo, un obbiettivo pienamente raggiunto e di considerevole merito per un solo programmatore. Certo, la tematica biblica può risultare controversa per una serie di gruppi demografici, come anche l’atteggiamento del suo autore, ma in mezzo alle imperfezioni, gli aspetti in cui il sistema splende devono farci chiedere come possiamo rendere più semplice e coinvolgente la comprensione dell’informatica per le giovani menti che si affacciano a questo mondo.

 

[ Crediti immagine in evidenzia: byu/SuperMooseJuice on Reddit ]

Seguici sulla nostra Pagina Facebook, sul profilo Instagram ed entra nel nostro gruppo su Telegram.
Advertisement

Popolari