[ByteAdventure] Dreaming about system clock
“Sognerò?”
”Certo HAL, tutte le creature intelligenti lo fanno”
(“2010 – L’anno del contatto”, Stanley Kubrick)
byte[0] sogna.
Era parecchio che non gli capitava, e per lui è un’esperienza insolita.
E’ uno di quei sogni in cui tutto è confuso, dove ogni oggetto appare scostante e dai contorni vaghi e non ben definiti. Non ricorda nemmeno come è arrivato fin qui. Si trova in quello che sembra essere una scheda audio; è una di quelle integrate sulla scheda madre, crede, perchè il circuito è periferico e direttamente connesso alla mainbaord. Poco più in là, proprio dietro l’angolo formato da due shape, vede e sente il trambusto del traffico di uno dei bus di sistema. Butta un occhio sull’immensa autostrada, e vede 8 corsie affollate da ogni tipo di byte: ad un’occhiata non esperta potrebbero sembrare bytes tutti uguali, ma byte[0] è un profondo conoscitore del suo ambiente, e sa distinguere le diverse tipologie dei byte. E’ così che riconosce un frammento di file png dal suo header ed un file xml well-formed, il cui contenuto però gli risulta estraneo.
Fa un passo verso il bus. Può farlo perchè non ha alcun compito all’interno della scheda audio – se prima ce l’aveva, adesso non lo ricorda più.
Fa un altro passo ancora. Non è normale che un byte dimentichi il proprio task corrente: una volta, in altre sessioni del sistema, ne ha parlato con altri bytes incontrati durante le sue peregrinazioni, ed hanno intuito tutti insieme una cosa: la capacità di ricordare di un byte viene notevolmente diminuita se il byte viene utilizzato dal sistema per renderizzare un suono. E’ come se l’onda sonora, prodotta sotto forma di impulsi elettrici, andasse a minare l’essenza stessa del ricordo, scatenando un’amnesia parziale del periodo trascorso all’interno di un chipset sonoro. Forse è per questo che non sa perchè si trova lì. O forse è perchè sta semplicemente sognando?
Non lo sa, e per trovare una risposta fa un ennesimo passo, avvicinandosi sempre più al bus. Ora il trambusto è talmente vicino che sente tangibile su di sé l’interferenza elettromagnetica, dovuta ai campi generati da ciascuno di loro. Gli basterebbe un movimento semplice per inserirsi nel traffico, e venir accelerato ai 12,8GB/sec previsti dalla banda della memoria DDR3. Ed in effetti lo fa. La latenza dovuta alla CAS gli dà solo un attimo di tregua, il tempo di prendere l’equilibrio, e poi balza via, da qualche altra parte, in qualche altro settore del sistema.
jump
byte[0] continua a sognare.
Percepisce che il suo corpo fisico è tormentato ed il suo sonno irrequieto, ma non può farci nulla.
In pochi cicli di clock il bus lo porta chissà dove. E’ un luogo che byte[0] fatica a riconoscere. Si guarda attorno alla ricerca di simboli od elementi che lo possano tranquillizzare, in grado di donargli quella familiarità dei luoghi che puoi chiamare “casa”, a cui puoi dare del tu. Ma non ne trova.
C’è un pistone, che scorre su e giù, all’interno di un cilindro. Si muove sempre alla stessa frequenza, su e giù, incessante ed instancabile. Il cilindro è grigio metallizzato, una tonalità di colore ottenibile solamente con strumenti avanzati di rendering grafico – troppi punti di luce ed una texture strana che non riuscirebbe a spiegare. Ogni volta che il pistone raggiunge il culmine della sua corsa, si sente un boooom che percuote l’intero sistema. Ed ogni volta che il pistone raggiunge il punto più basso una scarica di fulmini analogici azzurro elettrico appare all’improvviso, correndo lungo la superficie. Ad ogni scarica byte[0] sente rizzarsi i bit. Non sa di cosa si tratti, perciò sta fermo.
“Cosa ci fai?”. Una voce lo fa sobbalzare.
”Nulla, ecco, io, sono…capitato qui per caso” – byte[0] risponde alla entità. Sa di aver detto la verità, ma il tono di voce lo tradisce, e persino a lui stesso gli sembra di mentire – “Chi sei tu?”, chiede.
“Io sono l’anima del Bios che sovraintende alle attività del clock di sistema” – gli risponde l’entità.
”Quello è il clock di questo sistema, quindi?”
”Ovvio che sì, cosa credevi che fosse? Ci sono molti endpoint in ogni sistema in cui ti puoi avvicinare all’analogico, ma forse nessuno di questi è così vicino come il luogo in cui ci troviamo ora. Il clock è il cuore del sistema: se si fermasse, ogni attività cesserebbe immediatamente. Il clock prende energia direttamente dal power supply e comincia a dettare il tempo. Così è, così sarà. Il Bios, nella fattispecie me, sorveglia e può intervenire sulla velocità. Ma per ora tutto procede bene.” – l’entità è molto gentile, ha un tono di voce garbato e sembra disponibile.
byte[0] non sa cosa dire. Trova affascinante questo posto. Il suono prodotto dal clock gli sembra una poesia, un battere pulsante e vivo di un sistema digitale che, in effetti, gli sembra lontano ed inarrivabile.
“Ti piacerebbe provare, vero? Lo leggo nei tuoi occhi” – chiede l’entità.
”Sì, credo di sì. Posso? Il clock è analogico, come può accadere?” – chiede byte[0].
L’entità sorride, perchè capisce benissimo i suoi dubbi. Già in passato gli è capitato di incontrare altri bytes, e tutti hanno avuto esattamente lo stesso tipo di perplessità. Sorride e spiega.
”Puoi, eccome. Il byte per definizione è di natura digitale, ma è solo un’approssimazione. Il tuo vero io è analogico: ogni byte non è nient’altro che un insieme di cariche elettriche che, se ben composte, danno origine ad un valore digitale. Avvicinati, e salta nel cilindro quando il pistone è in posizione”.
Nemmeno per un attimo byte[0] pensa di rinunciare. E’ come se fosse il momento che aveva aspettato da sempre.
Si avvicina, prende il tempo, aspetta che il pistone salga, è talmente vicino che il boooom quasi lo fa cadere a terra.
Salta, un micro istante dopo che il pistone cominci a scendere. L’energia elettrostatica è intensa, la più forte che abbia mai provato.
La forza di gravità trascina il byte verso il basso, in un vortice verso il fondo del cilindro.
Ma non fa in tempo a toccarlo.
jump
Adesso byte[0] finalmente si sveglia. E’ un risveglio felice e sereno. Ma gli sembra una pazzia ciò che ha sognato. Lo sanno tutti che è impossibile mischiare analogico e digitale. Perchè sennò si era reso necessario inventare modem sotto varie forme? Ognuno di noi è ciò che è, e nessuno può cambiare le regole del gioco. O forse no?
Dal posto in cui si trova, una minuscola cella di memoria nella cache L2 della CPU, sente il battito del clock di sistema. Sorride malinconico, ma più passa il tempo e più i ricordi del sogno si fanno flebili e lontani.
Arriva il bootloader del .NET Framework, lo carica in un assembly, insieme ad altri decine di migliaia di bytes.
“byte[0], sei chiamato a rapporto. Address 0x008930FA.”
Finalmente qualcosa da fare.
Si ricomincia.