Source Code Structure

  • mcs :Mono实现的基于Ecma标准的C#编译器
  • class :CLI的C#级的实现。类似于Android中的Java层,应用程序看到的是这一层提供的接口。这一层是平台无关的。
  • ilasm :反汇编器,将Native code反汇编成bytecode。
  • mono/mini :JIT编译器,将bytecode编译成native code。
  • mono/metadata :Mono的runtime,CLI的Native级的实现。
  • io-layer :与操作系统相关的接口实现,像socket,thread,mutex这些。
  • libgc :GC实现的一部分。

GC

Managed Code and Non-managed Code

  • Internal Call(icall)
  • P/Invoke

Thread Pool

References

  1. Mono Introduction
  2. Working With SGen
  3. Garbage Collection
  4. Interop with Native Libraries
  5. Generational GC
  6. Embedding Mono
  7. Mostly Software
  8. Implementing a Dispose Method
  9. Implementing Finalize and Dispose to Clean Up Unmanaged Resources
    10.OpCodeEmulation
    11.Debugging
    12.Dtrace
    13.Marshalling In Runtime
    14.Performance Tips