Mono学习路线
开源项目学习
学习开源项目,先要看根目录下readme.md文件,里面有项目简介.功能介绍,及其如何使用.本文大体是对readme.md的翻译.使用Mono
Windows可执行程序后缀名为.exe,Linux/Unix可执行程序没有后缀名. 使用vs编译mono都自带-sgen后缀.如mono-sgen.exe
- mono/mono.exe, 运行时引擎,主要负责执行c#(等.Net运行时支持的语言)程序运行.
- mcs/mcs.exe Mono的c#编译器,使用c#编写,自举(简单说自己可以编译自己).
- monodis/monodis.exe Mono下反汇编工具,可以该工具查看程序生成IL.
mono和monodis都是基于c语言开发,代码在mono.mcs代码在mcs目录中.可以看图.具体的可以参考: mono学习路线

mono目录下 目录说明

- arch 支持cpu类型.如x86(32/64位)/arm/arm64/mips(国产龙芯使用的该指令集)/ppc(IBM的Power处理器)/s390x(IBM System Z大型机硬件平台,表示没见过)/sparc(最初SUN公司设计的芯片,并为该芯片设计了Solaris(类UNIX)操作系统,被Oracle收购之后基本没动静了)
- BoringSSL是安全套接字密码库,是谷歌基于OpenSSl的一个分支.
- cil 对应IL的指令.
- dis IL的反汇编代码
- eglib 基于glib API的独立实现.
- metadata 存放.Net元数据代码文件.CLR的实现
- mini Mono实现JIT(即时)编译器
- profiler 测试性能
- sgen sgen垃圾回收机制的实现.Mono有两种垃圾回收机制分为boehm和sgen.Mono 3.X之后使用sgen作为默认的垃圾回收器.
- tests 给CLR运行的单元测试.
- unit-tests 其他Runtime的单元测试
- utils Runtime工具库
秋风
2018-05-25