esattamente dove si trova o ospitato
E 'solo una DLL pianura, troverete di nuovo la versione x86 di esso in C: \ Windows \ Microsoft.NET \ Framework \ v4. 0,30,319 mila \ clrjit.dll. La versione x64 si trova nella directory Framework64. La versione .NET v2 aveva un nome diverso, mscorjit.dll, lo trova nelle directory v2.0.50727.
Non è "ospitato" affatto, il sistema operativo è completamente inconsapevole dell'esistenza. Il CLR sa come individuarlo e caricarlo. Necessariamente così, è il CLR che decide quando avviare un programma. Semplicemente ha il nome della DLL hard-coded e usa LoadLibrary ("clrjit.dll") per caricarlo, GetProcAddress ("getJit") per ottenere la funzione di fabbrica. Qualcosa che puoi vedere nel codice sorgente di CoreCLR, anche se il jitter non è più una DLL separata in quella versione CLR.
È possibile visualizzare anche il CLR con Explorer, ancora una semplice DLL. È clr.dll nelle versioni v4, mscorwks.dll e mscorsvc.dll nelle versioni v2. Due diversi allora con diversi garbage collector, "wks" è la versione della workstation, "svc" è la versione del server. Confrontare con la voce del file di configurazione <gcServer>
.
Che sposta la domanda su "come viene caricato il CLR?" Questo è il lavoro di c: \ windows \ syswow64 \ mscoree.dll, verrà utilizzato c: \ windows \ system32 \ mscoree.dll quando si target x64 nel progetto EXE. Ogni assembly .NET ha 5 o 9 byte di codice non gestito, un salto in quella DLL. O _CorExeMain o _CorDllMain, a seconda che l'assembly sia stato creato come un exe o una libreria. mscoree.dll dà un'occhiata ai metadati nell'assembly e decide quale versione del CLR deve essere caricata in modo che possa essere eseguita correttamente.
Un sacco di altri imbrogli in corso, ho appena pubblicato la vista di 10.000 piedi che hai chiesto. Se questo ti interessa allora probabilmente vorresti saperne di più su custom CLR hosting per vedere l'uomo dietro la tenda.
fonte
2015-07-10 23:02:01
È davvero così importante se il frigorifero fa freddo con l'uso di piccoli elfi o attraverso le leggi della fisica? :-) – xanatos
Vedere http://stackoverflow.com/a/30377175/613130 per una spiegazione su come funziona DNX e su come differisce dal runtime .NET ... collegato alla domanda – xanatos
@xanatos Bene, se si voglio diventare uno degli elfi, direi che è piuttosto dannatamente importante. – atlaste