Quando stavo imparando .NET l'ho visto come una piattaforma che esegue i miei programmi .NET che ha il suo Stack & Heap.Framework .NET dal punto di vista di un programmatore di basso livello
Ma ora, dopo aver appreso di più sulle cose, vedo un'applicazione .NET come qualsiasi altra applicazione nativa C/C++. Si trova nel formato di file Portable Executable (PE) con la nuova directory di dati &. La sezione di testo è piena di codice MSIL invece di codice macchina. L'unica differenza sono le DLL (che sono considerate piattaforme .NET) (come qualsiasi altra dipendenza Dll) caricate.
Suppongo che al punto di ingresso ci sia un codice macchina che richiama la DLL caricata (piattaforma .net) e le funzioni di tali DLL leggono l'MSIL dalla sezione .text (il segmento è più corretto) e generano una macchina equivalente codice e metterlo in una sorta di buffer (non so quale area sarebbe esso. Non posso essere .text & .Data come sono readonly. saranno stack o heap?). Quindi fai in modo che l'EIP faccia riferimento a questo buffer di istruzioni. Le ultime poche istruzioni richiamano nuovamente in DLL per ripetere il processo per il resto di MSIL.
Al Managed Heap
& Managed Stack
sono solo una parte di tali processi heap & pila. è solo che poche funzioni (indicate come GC) manterranno traccia delle assegnazioni di memoria & deallocations da questa parte della memoria.
Mi piace questa vista realistica. Non so quanto sono vero. Sto solo indovinando queste cose. Per favore correggimi & dimmi di più su questo. Quanto sarà simile a questa vista? Dove posso saperne di più sulla piattaforma .NET da questo punto di vista?
lo consiglio si mette Java in una domanda separata per ottenere risposte migliori. Inoltre, con Java la risposta non è la stessa su tutte le piattaforme (ad eccezione di un livello elevato - il codice viene eseguito in una VM). Sei interessato solo a come è fatto su Windows? – Yishai
Sono d'accordo con @Yishai; Java ha numerose * significative * differenze rispetto a .NET che potrebbero intorbidire la domanda. Salvalo per una domanda a parte. – Randolpho