Cuando estaba aprendiendo .NET lo vi como una plataforma que ejecuta mis programas .NET que tiene su propio Stack & Heap..NET Framework desde el punto de vista de un programador de bajo nivel
Pero ahora, después de aprender más sobre las cosas, veo una aplicación .NET como cualquier otra aplicación nativa de C/C++. Está en formato de archivo Portable Executable (PE) con el nuevo directorio de datos &. La sección de texto está llena de código MSIL en lugar de código de máquina. La única diferencia es que se cargan pocos archivos DLL (que se consideran como plataforma .NET) (como cualquier otra dependencia de Dll).
Supongo que en el mismo punto de entrada hay un código de máquina que llama al DLL cargado (plataforma .net) y las funciones de esos DLL leen el MSIL de la sección .text (segmento para ser más correcto) y generan máquinas equivalentes codificar y ponerlo en algún tipo de búfer (no sé qué área sería. No puedo ser .text & .data, ya que son de solo lectura. ¿Serán apilables o de montón?). Luego haga que el EIP apunte a este buffer de instrucciones. Las últimas instrucciones vuelven a llamar a las DLL para repetir el proceso para el resto de MSIL.
Como de Managed Heap
& Managed Stack
que son sólo una parte de los procesos Montón de & pila. es solo que algunas funciones (denominadas GC) mantendrán un registro de las asignaciones de memoria & desasignación de estas porciones de memoria.
Me gusta esta vista realista. No sé hasta qué punto soy cierto. Solo estoy adivinando estas cosas. Por favor corrígeme & cuéntame más sobre esto. ¿Qué tan lejos será similar a esta vista? ¿Dónde puedo obtener más información sobre la plataforma .NET desde este punto de vista?
recomendaría poner Java en una pregunta separada para obtener mejores respuestas. Además, con Java, la respuesta no es la misma en todas las plataformas (excepto en un nivel alto: el código se ejecuta en una VM). ¿Está interesado solo en cómo se hace en Windows? – Yishai
Estoy de acuerdo con @Yishai; Java tiene numerosas diferencias * significativas * de .NET que probablemente enturbien la pregunta. Guárdalo para una pregunta separada. – Randolpho