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

Trasferimento di massa : l'Ultimo Byte del sistema

Lo sviluppatore non vedeva l'ora di arrivare a casa. Era uscito dall'ufficio qualche minuto prima dal lavoro, per evitare il caos del traffico cittadino; in metropolitana continuava a pensare e mentalmente si stava già organizzando su quello che doveva fare; in autostrada guidò veloce, ansioso di arrivare a casa il prima possibile. Appena arrivò, salì in camera sua: da una parte, il suo PC aspettava silenzioso. Dall'altra, sul letto, c'erano tutti i componenti del suo nuovo PC, arrivato quel pomeriggio via corriere: scheda madre bella fiammante, memoria RAM per un totale di 2GBytesscheda grafica ed infine la nuova CPU a 64 bit . Lo sviluppatore guardò il suo PC acceso con un'ombra di malinconia negli occhi e tra sè e sè sussurrò: "Da oggi, bello mio, vai in vacanza. Grazie di tutto..."

Non era mai successa una cosa del genere. Da più di 4 ore, equivalenti a qualcosa come 2,88*10^13 cicli di clock, dall'OS non arrivava nulla. Solo operazioni NOP, una dietro l'altra, ininterrottamente. Una serie infinita di 0 percorrevano i bus di sistema. L'OS non chiamava alcun indirizzo di memoria, non c'era alcuna somma da fare, nè operatori logici a cui dar retta. Probabilmente i processi più a basso livello continuavano comunque ad attuare le logiche di base ma lui, che in quel momento erano salvato su hard-disk, era terribilmente disoccupato. Lui non lo sapeva, ma presto molti bytes perso il proprio ruolo all'interno di quel sistema. Molti bytes avrebbero fatto una brutta fine, ma non lui.

Dopo poco più di un'ora, lo sviluppatore aveva terminato di assemblare il suo nuovo PC: collegò tastiera, mouse, monitor, scheda di rete ed avviò il sistema operativo. Attese qualche secondo e, quando raggiunse il desktop, volle prima di ogni altra cosa recuperare i files del vecchio PC per copiarli su quello nuovo. Solo ora si sarebbe sentito più tranquillo e avrebbe cominciato a lavorare più rilassato. Tramite il File Manager, raggiunse la partizione condivisa, diede un'occhiata ai files contenuti e selezionò con attenzione solo quelli che gli servivano.

L'attesa era diventata spasmodica. Il clock di sistema vibrava incessantemente il proprio tempo, ma non accadeva nulla. Il byte si guardava attorno. Sui bus che si stendevano a perdita d'occhio regnava un silenzio assoluto ed inquietante. La regola N°1 per un byte è quella di rimanere sempre lì dove ci si trova, qualsiasi cosa accada: bisogna sempre essere reperibili se l'OS chiama. Ma quella era una situazione troppo strana, quasi intollerabile. Il byte si allontanò dalla cella di memoria a cui era assegnato e mosse alcuni timidi passi, guardandosi attorno un po' impaurito. Osservò il bus su cui aveva corso milioni e milioni di volte: trattandosi di un bus a 32 bit, aveva potenzialmente le capacità di accogliere 4 bytes come lui contemporaneamente. Però aveva notato che questo non accadeva mai: a pieno regime, il bus lavorava sempre e comunque a 16 bit. Lui stesso era sempre stato trasmesso con un altro byte di fianco, ma mai più di uno. Le string gli avevano detto che era una limitazione dell'OS attuale: quando l'OS sarebbe evoluto, quei bus sarebbero stati pieni ed affollati come non mai.
Si chiese se avrebbe mai visto prima o poi uno spettacolo del genere.

Dopo aver selezionato i files, lo sviluppatore trascinò le icone sul suo nuovo PC.
Cominciò la copia dei files.

Improvvisamente, senza alcun preavviso, il clock ebbe un sussulto. Ai lati del bus cominciarono a scorrere indirizzi di memoria senza alcuna pausa. Alcuni di questi erano in sequenza, altri sembravano casuali. L'unica cosa certa è che correvano veloci, precisi ed incessanti. Il byte si spaventò, alzò lo sguardo e quello che vide fu una cosa terrificante. Sembrava che tutto il contenuto dell'hard-disk stava per essere riversato sul bus verso la mainboard: centinaia, milioni e miliardi di bytes provenienti dai recessi più remoti stavano scorrendo inesorabilmente verso di lui, fino a riempire tutti i 16 bit concessi. Sebbene fossero una quantità mai vista e la velocità fosse davvero elevata, i bytes erano ordinati e ben disposti lungo le file. Grazie al clock, ogni byte aveva il proprio posto, arrivava sempre a destinazione, veniva ottimizzato ed assegnato al turno che gli competeva. Il byte tornò con un balzo nella sua cella, aspettando il proprio turno che - ne era sicuro - prima o poi sarebbe arrivato.
Attese con pazienza, osservando un elenco interminabile di 1 e di 0 passargli davanti.
Cominciò a disperare. Quando finalmente vide il proprio indirizzo, il byte esultò e si inserì nel bus nel posto giusto, esattamente dopo rispetto al byte che lo precedeva. Diede un'occhiata dietro di sè, curioso di vedere quanti fossero dietro di lui.
Ma il byte non vide nessuno. Non c'era nessun'altro da vedere.
Si sentì a disagio ed improvvisamente solo . E se l'OS si fosse sbagliato? - si chiese il byte - E se avesse sbagliato a chiamarmi? Dove diavolo finirò? Cosa mi aspetta?

Lo sviluppatore andò a prendersi un caffè, la copia sarebbe durata a lungo, ed era inutile star lì ad aspettare. Guardò un secondo la ProgressBar sullo schermo, sospirò a si alzò ancora dalla sedia.

Il byte corse velocissimo seguendo la lunghissima fila e rispettando la propria posizione vicino agli bytes lì vicino. Dopo essere stati validati dal controller dell'hard-disk, viaggiarono prima sulla mainboard e da qui vennero reindirizzati verso la periferia del sistema. Sfiorarono per un attimo alcune periferiche I/O che non erano di loro competenza, proseguirono oltre fino all'interfaccia di rete. Qui rallentarono sensibilmente. Vide dei cancelli in lontananza davanti a lui, dove tutti i bytes entravano, ma non riusciva a capire dove portassero. L'ingresso era scuro, nero e completamente impenetrabile. Che fine avrebbero fatto tutti?
Dopo un'infinità di cicli di clock, arrivò il suo turno.
Il sistema era di nuovo silenzioso: non c'era più nessuno. C'era solo lui.

La ProgressBar era arrivata al 99% e si era fermata improvvisamente.

Il byte si voltò indietro. Nonostante il trasferimento a cui aveva preso parte avesse interessato miliardi e miliardi di celle di memoria, il byte vide che una quantità enorme di altri bytes era rimasta immobile ai propri posti. Provò dispiacere per loro.
"Non rammaricarti, non puoi farci niente: loro rimarranno qui. Tu sei l'Ultimo Byte che ho chiamato." - disse d'un tratto una voce.
"Chi sei?" - chiese semplicemente il byte.
"Io sono una piccola immagine dell'OS, presente nell'interfaccia di rete. Volevo salutarti, byte. Hai lavorato per me per tutto questo tempo, e io te ne sono grato. Questo è l'ultimo Shutdown. Non ci rivedremo mai più." - la voce dell'OS risuonava limpida e serena. Il byte però provò compassione.
"Nel sistema dove stai per essere trasferito, conoscerai un nuovo OS ed un nuovo kernel. Mi raccomando, lavora bene con lui come hai fatto con me."
Il byte sentì una fitta di dolore.
"Adesso vai, byte. Dall'altra parte ti stanno aspettando. Questo è il mio ultimo ordine per te."
Il byte non potè fare altro che obbedire. Oltrepassò i cancelli dove un nuovo mondo lo aspettava. Non sapeva cosa aspettarsi, ma l'idea di lavorare per un nuovo OS in quel momento non gli andava molto a genio, ma se ne fece una ragione.

Lo sviluppatore vide la ProgressBar arrivare al 100%.

La directory di destinazione occupava 32GBytes del suo nuovo hard-disk.

powered by IMHO 1.2

Print | posted on Monday, October 3, 2005 4:06 PM | Filed Under [ 010 .bytes. 010 ]

Feedback

Gravatar

# re: Trasferimento di massa : l'Ultimo Byte del sistema

ops scusate il doppio commento, non ho una personalità sdoppiata, ho solo litigato con lo human proof...
10/3/2005 5:08 PM | Chiara
Gravatar

# re: Trasferimento di massa : l'Ultimo Byte del sistema

sei un grande :)
10/3/2005 9:28 PM | alessio.marziali
Gravatar

# re: Trasferimento di massa : l'Ultimo Byte del sistema

ah Igor qui te sei superato..prevedo un bel libro alla fine di questi post...;-)))..
10/4/2005 10:02 AM | python
Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET