Oggi mi è stata fatta una domanda che mi ha lasciato letterlamente interdetto. Riguardava i processi in "kernel mode". Bè non ho saputo rispondere. Mi sono reso conto di come in tutto questo tempo di programmazione OOP e architetture di alto livello, abbia perso il feeling con ciò che sta in basso, laggiù nel cuore pulsante del sistema operativo. E come tutte le cose che stanno molto in alto, fanno un gran tonfo quando cadono da lassù, un gran tonfo.
Ma la considerazione peggiore, è che per stare quassù e rimanerci, tutto il tempo a disposizione viene fagocitato, e non ne rimane altro per cose come il kernel, senza il quale niente in realtà delle cose "aeree" di cui trattiamo, avrebbe la possibilità di esistere.
Se penso che in tre righe di codice possiamo avviare un nuovo thread, o intercettare il context di un altro processo, come se fosse la cosa più normale del mondo, ma d'altra parte oguna di queste operazioni attiva strati e strati di di meccansimi profondi di cui non abbiamo praticamente conoscenza e soprattutto controllo, mi vengono le vertigini. A volte facciamo le cose con così tanta leggerezza, senza sapere in realtà bene che cosa significa e che conseguenze avranno le nostre istruzioni, che penso che siamo davvero fortunati a farle funzionare, queste benedette applicazioni.
La prossima volta che applicate il pattern Dispose, prendetevi mezz'ora di tempo per capire cosa farà per davvero il GC, almeno il GC.
saluti