CLR via C# 阅读 笔记
初读 CLR Via C# 有一些 名词需要记忆:
1、CLR: Common Language Runtime (公共语言运行时)
可有多种编程语言使用的Runtime. 其核心功能是: 内存管理、 程序集加载、 安全性、 异常处理和线程同步等;
2、 Managed Module (托管模块)
托管模块包括: PE32 或PE32+ 、CLR 头 、 元数据 、 IL代码。
3、PE: Protable Executable (可移植执行体) 。
PE32:是 标准32位 windows 可移植执行体文件。
PE32+: 是标准64位 可移植执行体文件
4、DEP: Data Execution Prevention (数据执行保护)
5、ASLR: Address Space Layout Randomization, 地址空间布局随机化
6、Native Code Compilers (本机代码编译器) : 生成的是面向 特定CPU(比如:x86 , x64或ARM)架构的代码
7、 IL(中间)代码: 又称 托管代码(Managed Code).
8、MetaData(元数据 ): 数据表集合, 描述了 (1)源代码中定义的类型和成员 ,(2)源代码中引用的类型和成员。
9、Assembly(程序集)
源代码文件 --经编译器 成---> 托管模块 ;
托管模块 + 资源文件 -----经工具合并成 -----> 程序集;
10、 JIT (just -in-time)
11、JITCompiler : 即时编译器。 职责: 将方法的IL 转换成 本机(native) CPU 指令。
当第一次 执行一个方法时,此方法 要经过 JITCompiler 转换成 Native CPU 指令。
12、 DLL : Dynamic Link Library (动态链接库)
13、 FCL: FrameWork Class Library , FrameWork 类库。
14、CTS: Common Type System, 通用类型库
15、CLS: Common Language Specification , 公共语言规范。
16、CTE :Compile-Time Error 编译时错误;
17、RTE:Run-Time Error 运行时错误;
18、extern alias : 外部别名
19、命名空间和程序集的关系
命名空间和程序集不一定相关。
(1)、同一个命名空间中类型可能在不同程序集中实现。
(2)、同一个程序集也可能包含不同命名空间中的类型。
20、栈帧(stack frame): 代表 当前线程的调用栈中的一个方法调用。21、类型对象指针:(type object pointer)
22、同步块索引 : (sync block index)
23、疑问: 线程栈、 托管堆、 和 CLR运行时的关系 ?
线程栈 存储的是 局部变量 或 参数的 地址
托管堆中 是 new 创建的对象 ; 每个对象都包括 三部分:类型对象指针、 同步块索引 、 静态字段 以及方法表(方法表包括记录项);
转载于:https://www.cnblogs.com/generalLi/p/6218791.html
CLR via C# 阅读 笔记相关推荐
- MCS-51单片机原理与接口技术--阅读笔记(原创)
MCS-51单片机原理与接口技术--阅读笔记(原创) 由 王宇 原创并发布 : 第1章 单片机概述 MSC-51美国Intel公司 第2章 基本机构 制造工艺为HMOS MSC-5 ...
- SMRT测序文献阅读笔记
SMRT测序文献阅读笔记 生信start_site关注 0.0912020.12.12 10:33:24字数 4,422阅读 56 单分子实时定量测序技术(SMRT) 写这篇笔记是因为可能以后的工作中 ...
- 《CLR via C#》笔记:第1部分 CLR基础
本博客所总结书籍为<CLR via C#(第4版)>清华大学出版社,2021年11月第11次印刷(如果是旧版书籍或者pdf可能会出现书页对不上的情况) 你可以理解为本博客为该书的精简子集, ...
- trainer setup_Detectron2源码阅读笔记-(一)Configamp;Trainer
一.代码结构概览 1.核心部分 configs:储存各种网络的yaml配置文件 datasets:存放数据集的地方 detectron2:运行代码的核心组件 tools:提供了运行代码的入口以及一切可 ...
- VoxelNet阅读笔记
作者:Tom Hardy Date:2020-02-11 来源:VoxelNet阅读笔记
- Transformers包tokenizer.encode()方法源码阅读笔记
Transformers包tokenizer.encode()方法源码阅读笔记_天才小呵呵的博客-CSDN博客_tokenizer.encode
- 源码阅读笔记 BiLSTM+CRF做NER任务 流程图
源码阅读笔记 BiLSTM+CRF做NER任务(二) 源码地址:https://github.com/ZhixiuYe/NER-pytorch 本篇正式进入源码的阅读,按照流程顺序,一一解剖. 一.流 ...
- Mina源码阅读笔记(一)-整体解读
2019独角兽企业重金招聘Python工程师标准>>> 今天的这一节,将从整体上对mina的源代码进行把握,网上已经有好多关于mina源码的阅读笔记,但好多都是列举了一下每个接口或者 ...
- “CoreCLR is now Open Source”阅读笔记
英文原文:CoreCLR is now Open Source 阅读笔记如下: CoreCLR是.NET Core的执行引擎,功能包括GC(Garbage Collection), JIT(将CIL代 ...
最新文章
- 30个Oracle语句优化规则详解
- python 自然语言处理(三)获取词性
- windows8.1如何分盘
- 如何为SAP OData消费维护不同的ABAP后端系统
- Linux 4.1内核热补丁成功实践
- 如何像阿里巴巴一样高效跨企业项目协作
- 基于uniapp开发的适用于微信小程序,头条小程序
- 副法线和正切是什么?
- stm32毕业设计 单片机智能温控风扇
- 诺兰模型(百度百科)
- 汽车的android怎么使用方法,汽车安卓投屏怎么用 其实投屏方法很简单
- 小程序云开发前端显示云存储的图片
- C#/VB.NET Excel数据分列
- DIY一个测量心率装置
- LocalDate 获取英文月份
- 找出n以内最大的质数。python
- element-ui dialog组件添加可拖拽位置 可拖拽宽高
- 1,10-菲啰啉是氧化还原指示剂|双齿配体各类反应
- 2022-2028全球及中国食品加工用酶行业研究及十四五规划分析报告
- 北京国家计算机四级网络工程师,关于国家计算机四级网络工程师的介绍
热门文章
- vue2 watch引用类型 失败原因
- jQuery常用的层次选择器
- Gradle用户指南(1)-Gradle安装
- maven项目和普通项目转换
- Microsoft Updater Application Block 1.5.3 服务器端manifest文件设计 [翻译]
- MySQL操作权限整理
- android 获取键盘回车键事件,设置软键盘回车键显示内容,点击空白处隐藏软键盘
- Netcdf对数据进行裁剪
- html不支持元素video,Html5中的Video元素使用方法
- matlab画线不同颜色_怎样画线框图才有意义?