![]()
内容推荐 本书讲解了.NET Core公共语言运行时的底层实现,从介绍MSIL和x86汇编语言开始,到讲解异常、多线程、GC以及JIT编译器的实现原理与实现细节。本书包含了大量图表让读者可以更容易了解其中的内容,同时涉及到.NET Core底层实现的部分还给出了对应的源代码链接,让读者可以参考源代码有更深人的理解。此外,本书还有相关提问用的仓库和QQ群便于读者交流,详见序言。本书主要面向有一年以上.NET(C#)开发经验的开发者,其他程序语言的开发者也可以阅读本书来比较.NET Core与其他语言的运行时之间有哪些共同点和不同点,本书的知识可以为读者在编写高性能应用或底层应用时提供有力的支持。 目录 章 公共语言运行时概述 1.1.1 .NET框架简介 1.1.2 公共语言运行时中的各个组成部分 1.1.3 名称规范 第2章 MSIL入门 第l节 逆向.NET程序到IL 2.1.1 ildasm 2.1.2 使用ILSpy 2.1.3 dnSpy 第2节 基础语法 2.2.1 IL语法格式 2.2.2 IL指令格式 2.2.3 评价堆栈 2.2.4 常用指令 2.2.5 常见的C#代码与IL代码的对比 第3节 流程控制 2.3.1 IL流程控制 2.3.2 常见的流程控制C#代码与IL代码对比 第3章 x86汇编入门 节 汇编与机器码 3.1.1 理解汇编语言与机器码 3.1.2 RISC与CISC 3.1.3 流水线 第2节 内存 3.2.1 位与字节 3.2.2 负数的表现 3.2.3 小端与大端 3.2.4 内存地址 3.2.5 虚拟内存 3.2.6 了解虚拟内存的实现 第3节 寄存器 3.3.1 通用寄存器 3.3.2 程序计数器 3.3.3 标志寄存器 第4节 基础指令 3.4.1 汇编指令记法 3.4.2 汇编指令格式 3.4.3 汇编指令简写 3.4.4 基础汇编指令 3.4.5 更多指令 3.4.6 机器码的编码方式 第5节 流程控制 3.5.1 流程控制实现 3.5.2 比较指令 3.5.3 跳转指令 3.5.4 其他流程控制 3.5.5 分支预测 第6节 函数调用 3.6.1 栈结构 3.6.2 函数调用 3.6.3 enter与leave指令 3.6.4 调用规范 第7节 系统调用 3.7.1 系统调用简介 3.7.2 在x86上发起系统调用(软中断) 3.7.3 在x86上发起系统调用(sysenter) 3.7.4 在x86-64上发起系统调用(syscall) 第8节 内存屏障 3.8.1 乱序执行 3.8.2 内存屏障简介 3.8.3 双检锁 第4章 编译与调试CoreCLR 节 在Windows上编译CoreCLR 4.1.1 准备编译环境 4.1.2 下载CoreCLR源代码 4.1.3 编译CoreCLR 4.1.4 使用编译出来的CoreCLR 4.1.5 最新的编译文档 第2节 在Windows上调试coreCLR 4.2.1 使用Visual Studio调试CoreCLR 4.2.2 使用WinDbg调试CoreCLR 4.2.3 在WinDbg中使用SOS扩展 4.2.4 更方便地调试托管方法对应的汇编代码 第3节 在Linux上编译CoreCLR 第4节 在Linux上调试CoreCLR 4.4.1 使用LLDB调试CoreCLR 4.4.2 在LLDB中使用SOS扩展 第5章 异常处理实现 第6章 多线程实现 第7章 GC垃圾回收实现 第8章 JIT编译器实现 附录A 中英文专业名词对照表 附录B 常用IL指令一览 附录C 常用汇编指令一览 附录D SOS扩展命令一览 附录E IR语法树节点类型一览 参考文献 |