Technology Experience

Contenuti gestiti da Igor Damiani
posts - 949, comments - 2741, trackbacks - 15120

My Links

News

  • Questo blog si propone di raccogliere riflessioni, teoriche e pratiche, su tutto quello che riguarda il world-computing che mi sta attorno: programmazione in .NET, software attuale e futuro, notizie provenienti dal web, tecnologia in generale, open-source.

    L'idea è quella di lasciare una sorta di patrimonio personale, una raccolta di idee che un giorno potrebbe farmi sorridere, al pensiero di dov'ero e cosa stavo facendo.

    10/05/2005,
    Milano

Archives

Post Categories

Generale

[0] La ribellione del byte

La matrice osservava da alcuni cicli di clock il piccolo byte, che se ne stava acquattato nella sua insignificante cella di memoria. La sua attenzione era attirata in modo particolare dagli occhi del byte, che suggerivano il fatto che fosse estremamente impaurito, quasi ansioso di andarsene da quel maledetto posto. Compito della matrice era principalmente sorvegliare - ed era proprio quello che stava facendo. Da diverso tempo, il byte stava causando qualche exception di troppo nel sistema, causando diversi problemi che andavano assolutamente risolti, per non doverli affrontare più tardi in forma più grave.

La matrice consultò in un istante il proprio log interno relativo a quella cella di memoria, all'indirizzo 0x7700F4: il documento digitale riportava tutte le operazioni di I/O nelle quali risultava coinvolta, in un modo o nell'altro, proprio quella locazione. Notò subito alcuni behavior del byte che vennero marcati come sospetti dalla logica della matrice stessa: quel byte aveva la strana tendenza a frequentare spesso quella cella di memoria, il tempo di permanenza era sopra la media. Inoltre, il byte non era così veloce a rispondere alle richieste dell'OS come avrebbe dovuto. E poi - riflettè - quegli occhi così impauriti. Perchè ha paura? Cosa prova? Non era abitudine della matrice ragionare sul perchè delle cose, ma quello era evidentemente un caso particolare, che forse meritava più attenzione.

Il byte tremava di paura. Si guardava attorno, girandosi da una parte all'altra in modo frenetico, aspettandosi di venir scoperto da un momento all'altro. Da molto più tempo di quello che avrebbe mai immaginato, il byte viveva come un fuorilegge, perennemente braccato ed in fuga dai security processes che cercavano di intrappolarlo senza dargli tregua. Non sapeva esattamente quale fosse la sua colpa. Sapeva solo che presto la partita sarebbe terminata, nel bene o nel male. Deglutendo nervosamente uno dei suoi bit - che si riformò immediatamente - il byte decise d'un tratto di abbandonare la sua cella. Doveva assolutamente sapere se lei era ancora lì. Si fece coraggio, si rialzò in piedi e si preparò ad abbadonare il suo nascondiglio.

La matrice aveva appena fatto in tempo ad attivare un tracer su quel range di address, che l'allarme suonò, richiamando l'attenzione dei thread a basso livello. Essi vennero subito elevati di priorità e richiamati per entrare in azione su quella particolare zona di memoria. Letali ed implacabili, i security processes non avevano mai fallito e di certo non volevano cominciare da adesso. Grazie al puntatore interno, disponibile di default, scansionarono tutti i processi attivi e i potenziali pericoli a cui era sottoposto il sistema: conoscevano perfettamente a cosa andavano incontro, e sapevano come reagire di fronte a qualsiasi circostanza. Era ora di affrontare il nemico.

Il byte uscì titubante dalla cella di memoria. Il bus sotto di lui riluceva di una luce rossastra. La superficie era levigata, liscia, quasi asettica: sembrava impossibile che ci passassero miliardi e miliardi e miliardi di bytes ogni giorno, ma era così. Il byte non esiste fisicamente, ma esiste, produce calore e produce calcolo computazionale. Fece il primo passo per salire sul bus e lasciarsi andar via, quando qualcosa lo bloccò: un rimbombo sordo e cupo che sembrava arrivare da qualche parte, lì vicino, lo spaventò. Il byte non riuscì a localizzare esattamente la direzione dalla quale proveniva quel suono. Cercò comunque di fuggire mettendosi a correre e svoltando a sinistra, e poi a destra, al primo angolo che incontrò. Il rimbombo era simile al rumore del tuono, e sembrava essersi allontanato.

Il byte inizialmente sorrise, credendo di farcela anche questa volta. Il sorriso gli sparì dal volto quando d'improvviso vide davanti a sè - proprio davanti all'uscita della locazione di memoria - la sua fine.

La matrice fu molto più veloce e giunse sul posto prima di tutti gli altri. Intercettò il movimento del byte e lo raggiunse in una cella poco lontano rispetto alla locazione iniziale.

"Sai che non ti posso lasciar andare, vero?" - chiese in tono gentile la matrice.
"Io non ho fatto nulla di male. Dimmi almeno il perchè!" - rispose di rimando il byte.
"Sai che non posso dirti nulla, perciò non fare domande. Hai sempre causato problemi, fin dal momento dalla tua istanziazione, non posso permettere che tu te ne vada in giro per il sistema."
Il byte non seppe ribattere. Aveva avuto sempre paura di affrontare la matrice, ma adesso che ce l'aveva davanti provava una calma innaturale. La matrice era logica. La matrice era irremovibile. Forse - si disse - ho sempre sbagliato. Ma lei? Come dimenticarsi di lei? Tutto questo l'ho fatto solo per lei, come potersene dimenticare???
"Non è mia abitudine chiedere perchè, ma da te voglio una risposta. E tu me la darai, non è vero?".
Il byte rimase fermo ad ascoltare, non riuscendo a capire totalmente cosa intendesse.
"Ne è valsa davvero la pena?" - chiese la matrice al piccolo, insignificante byte di fronte a sè.
Il byte, spiazzato, fissò i suoi occhi in quelli della matrice e gli sorrise malinconicamente.

. . . . . . . .

Dopo aver dato alla matrice la sua risposta, il byte chiuse gli occhi ed attese pazientemente il suo momento. Sapeva che da lì a poco la matrice avrebbe fornito ai security processes le sue coordinate, e di conseguenza sarebbe stato chiamato il metodo Dispose sull'oggetto a cui il byte apparteneva. In questo modo sarebbe stato deallocato. Non sarebbe morto - i bytes non muoiono mai - ma non sarebbe esistito: niente e nessuno l'avrebbe raggiunto, in nessun caso. Avrebbe dovuto attendere una nuova istanziazione - chissà quando - e con ogni probabilità non si sarebbe più ricordato di questa esistenza.
Avrebbe dimenticato per sempre lei.
Non avrebbe più avuto alcun ricordo.
Trovava questa cosa intollerabile, al punto che - forse - sarebbe stato più giusto ribellarsi.

La matrice, infine, calò la sua mano affondandola nel corpo virtuale del byte.
E tutto ad un tratto fu buio.

powered by IMHO 1.2

Print | posted on giovedì 27 luglio 2006 20:43 | Filed Under [ 010 .bytes. 010 ]

Feedback

Gravatar

# re: [0] La ribellione del byte

Che tristezza... po'rello... :-(
28/07/2006 13:21 | Jazzer
Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET