[Adventure.03] Il sistema, il sogno ed il grande incubo
Hal 9000: “Sognerò?”
Chandra: “Certo Hal. Tutte le creature intelligenti sognano.”
(sulla capacità di Sognare, “2001 Odissea nello Spazio”, di Stanley Kubrick)
Il byte era in fuga. Non era a conoscenza dell’esito della funzione temporale invocata dal sistema operativo, non sapeva nemmeno che l’OS l’avesse eseguita. Sapeva però che qualsiasi byte indipendente era perseguitato dall’intero ambiente operativo, e quindi non poteva permettersi un solo attimo di pausa.
Correva, saltava tra una cella e l’altra, incurante di dove fosse e di dove stesse per andare, concentrandosi solo sulla sua velocità. Desiderava solo far perdere le proprie tracce, rendersi irraggiungibile, allontanarsi il più possibile dall’area di memoria corrente. Non capiva il perchè, ma si sentiva braccato e con il fiato sul collo. Forse aveva preso parte all’esecuzione della predizione, ma senza averne piena coscienza, come fosse un ricordo lontano, o – forse – solo un sogno fatto quando il sonno è più profondo.
“Chi sei tu? Dove vai così di fretta?” – esclamò un’entità che lo bloccò tutto ad un tratto.
Il byte rimase senza parole. Aveva il fiato rotto, per cui da un certo punto di vista era lieto di quello inatteso incontro. Ma aveva fretta, doveva scappare.
“Se hai bisogno di aiuto, io posso dartelo.” – lo incalzò l’entità.
“Accetterei volentieri, se solo sapessi chi sei.” – rispose freddo il byte.
“Io sono uno dei confini del CLR, Common Language Runtime. So che posso aiutarti, perchè sono un processo che gira ad un livello di priorità particolare. Sono anche io controllato dall’OS, ma lui si fida di me perchè gli garantisco qualità, affidabilità e sicurezza nel codice che eseguo. Se entrassi nell’area di memoria di mia competenza, avresti sonni tranquilli.” – spiegò.
Il byte, inizialmente scettico, osservò meglio l’entità che si era presentata come CLR. Di fronte a lui si stagliava un muro di bytes compatti, nei quali era impossibile trovare il minimo spiraglio. La porta di accesso al CLR era una cancello sorvegliato costantemente da bytes armati: i bytes che entravano venivano marcati con una evidence, una sorta di passaporto; ai bytes che uscivano quella evidence veniva tolta.
“Ti conviene decidere alla svelta. Li vedi quelli alle tue spalle?” – chiese il CLR al byte.
Quest’ultimo si girò di spalle, e quello che vide lo terrorizzò. C’era una guarnigione di bytes che avanzano feroci verso di lui: quelli più lontani era di un pallido color ciano, mentre quelli più vicini era di un azzurro intenso, che ricordavano – semmai il byte l’avesse mai visto – il colore del cielo estivo, brillante e luminoso. Il byte non riuscì a contarli tutti. In ogni caso, sembravano davvero troppi.
“Cosa mi chiedi in cambio? Se entrassi, cosa mi obbligherai a fare?” – domandò impaurito il byte al CLR.
“Questo non te lo posso dire adesso. I miei addetti devono prima marcarti con la evidence, altrimenti…nisba!” – rispose risoluto il CLR. Allo stesso tempo fece un gesto indicando i suoi inservienti che si occupavano in modo sistematico di un byte alla volta in ingresso ed in uscita, senza particolare fretta, ma senza alcun intoppo.
Al byte quella risposta non piacque proprio. Se fosse entrato nel regno del CLR, cosa gli sarebbe accaduto? D’altro canto, il prezzo da pagare era alto, perchè rischiava di cadere prigioniero dell’armata di bytes che ad ogni ciclo di clock era sempre più vicina.
Alla fine si decise. Senza dire una parola, il byte saltò tutta la fila in attesa, finendo davanti al gate 0x04 del CLR, il quale gli stampò in fronte una evidence che gli assegnava i permessi di esecuzione più bassi in assoluto. Il byte fece un passo in avanti. Non appena entrò nei confini di stato del Common Language Runtime, si accorse di non poter più vedere al di fuori di esso, perciò non riuscì a capire quanto fosse andato vicino alla cattura.
Fece in tempo a vedere un mondo diverso. C’erano palazzi altissimi, con milioni e milioni di piccole finestre, con striscioni con scritte codificate in Unicode che dicevano System.Data, System.Windows.Forms, System.Reflection e System.Collections. La cosa che più lo colpì fu…il pinning che il gargabe collector gli appioppò sulla nuca. Il byte svenne, cadendo immediatamente. Venne prelevato dal GC e spostato in un heap sicuro e ben protetto, in attesa di essere allocato per qualcosa di produttivo.
Fu lì che il byte sognò per la sua prima volta.
Sognò di volteggiare su un prato verde, in un volo onirico fatto di lampi di luce che si abbattevano sui fili d’erba annerendoli. La velocità gli faceva perdere il controllo, sbalzandolo a destra e a sinistra, facendogli perdere quota o facendolo impennare in alto. Le nuvole, che un attimo prima sembravano irraggiungibili, ora potevano essere toccate con la punta dei suoi bit. Dopo un tempo indefinito, potevano essere 0x000A cicli di clock o 0xA000, il prato verde assunse una pendenza man mano sempre più ripida. All’inizio appariva come un territorio scosceso, poi una dolce collina dal terreno ondulato, poi una montagna ricoperta dal verde più intenso che il byte avesse mai visto. Nonostante il terreno si facesse sempre più impervio, il byte non rallentava la sua corsa verso la vetta della montagna, una punta aguzza, che – ne era certo – rappresentava la sua tanto agognata libertà. Quando la raggiunse, vide che l’aspetto appuntito era conferito da una piramide ricoperta da una texture che sembrava pietra, una roccia di qualche tipo, che il byte non riconobbe. Sulla cima c’era un cratere, come se la piramide fosse in realtà una sorta di vulcano artificiale. Vulcano…calore, energia esposiva ed incontrollabile. Il byte provò l’irrefrenabile impulso di tuffarcisi dentro. E così tento di fare. Non appena entrò nella bocca della vulcanopiramide, un’ondata di calore lo avvolse facendolo sentire vivo. Urlò, ma non di dolore. Urlò di gioia, come se dovesse scaricare una tensione che teneva dentro da molto tempo, forse troppo. Urlò per la grinta, come se dovesse affrontare da solo tutti quelli che lo braccavano dentro il sistema.
Urlò, e basta.