CLR via C# 阅读 笔记
初讀 CLR Via C# 有一些 名詞需要記憶:
1、CLR: Common Language Runtime (公共語(yǔ)言運(yùn)行時(shí))
可有多種編程語(yǔ)言使用的Runtime. 其核心功能是: 內(nèi)存管理、 程序集加載、 安全性、 異常處理和線程同步等;
2、 Managed Module (托管模塊)
托管模塊包括: PE32 或PE32+ 、CLR 頭 、 元數(shù)據(jù) 、 IL代碼。
3、PE: Protable Executable (可移植執(zhí)行體) 。
PE32:是 標(biāo)準(zhǔn)32位 windows 可移植執(zhí)行體文件。
PE32+: 是標(biāo)準(zhǔn)64位 可移植執(zhí)行體文件
4、DEP: Data Execution Prevention (數(shù)據(jù)執(zhí)行保護(hù))
5、ASLR: Address Space Layout Randomization, 地址空間布局隨機(jī)化
6、Native Code Compilers (本機(jī)代碼編譯器) : 生成的是面向 特定CPU(比如:x86 , x64或ARM)架構(gòu)的代碼
7、 IL(中間)代碼: 又稱 托管代碼(Managed Code).
8、MetaData(元數(shù)據(jù) ): ?數(shù)據(jù)表集合, 描述了 (1)源代碼中定義的類型和成員 ,(2)源代碼中引用的類型和成員。
9、Assembly(程序集)
源代碼文件 --經(jīng)編譯器 成---> 托管模塊 ;
托管模塊 + 資源文件 -----經(jīng)工具合并成 -----> 程序集;
?
10、 JIT (just -in-time)
11、JITCompiler : 即時(shí)編譯器。 職責(zé): 將方法的IL 轉(zhuǎn)換成 本機(jī)(native) CPU 指令。
?當(dāng)?shù)谝淮?執(zhí)行一個(gè)方法時(shí),此方法 要經(jīng)過(guò) JITCompiler 轉(zhuǎn)換成 Native CPU 指令。?
12、 DLL : Dynamic Link Library (動(dòng)態(tài)鏈接庫(kù))
13、 FCL: FrameWork Class Library , FrameWork 類庫(kù)。
14、CTS: Common Type System, ?通用類型庫(kù)
15、CLS: Common Language Specification , ?公共語(yǔ)言規(guī)范。
16、CTE :Compile-Time Error?編譯時(shí)錯(cuò)誤;
17、RTE:Run-Time Error 運(yùn)行時(shí)錯(cuò)誤;
18、extern alias : 外部別名
19、命名空間和程序集的關(guān)系
命名空間和程序集不一定相關(guān)。
? (1)、同一個(gè)命名空間中類型可能在不同程序集中實(shí)現(xiàn)。
? ?(2)、同一個(gè)程序集也可能包含不同命名空間中的類型。
20、棧幀(stack frame): 代表 當(dāng)前線程的調(diào)用棧中的一個(gè)方法調(diào)用。?21、類型對(duì)象指針:(type object pointer)
22、同步塊索引 : (sync block index)
23、疑問(wèn): 線程棧、 托管堆、 和 ?CLR運(yùn)行時(shí)的關(guān)系 ?
? ? ?線程棧 存儲(chǔ)的是 局部變量 或 參數(shù)的 地址?
? ? 托管堆中 是 new 創(chuàng)建的對(duì)象 ; 每個(gè)對(duì)象都包括 三部分:類型對(duì)象指針、 同步塊索引 、 靜態(tài)字段 以及方法表(方法表包括記錄項(xiàng));
?
轉(zhuǎn)載于:https://www.cnblogs.com/generalLi/p/6218791.html
總結(jié)
以上是生活随笔為你收集整理的CLR via C# 阅读 笔记的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 存储过程实现可扩展灵活接口
- 下一篇: 国内芯片60个细分领域重要代表企业【收藏