天天看點

讀經典——《CLR via C#》(Jeffrey Richter著) 筆記_CLR

1.CLR簡介

全稱:Common Language Runtime(公共語言進行時)

屬性:一種托管子產品

使用對象:面向CLR的所有語言(C#、Basic、IL...)

核心功能:記憶體管理、程式集加載、安全性、異常處理、線程同步

2. 源代碼與CLR的關系

讀經典——《CLR via C#》(Jeffrey Richter著) 筆記_CLR

3.CLR托管子產品的組成部分

【PE32 或 PE32+ 頭】

标準 Windows PE 檔案頭,類似于“公公對象檔案格式”(Common Object File Format,COFF)頭。如果這個頭使用 PE32 格式,檔案能在 Windows 的 32 位或 64 位版本上運作。如果這個頭使用 PE32+ 格式,檔案隻能在 Windows 的 64 位版本上運作。這個頭還辨別了檔案類型,包括 GUI,CUI 或者 DLL,并包含一個時間标記來指出檔案的生成時間。對于隻包含 IL 代碼的子產品,PE32(+) 頭的大多數資訊會被忽視。對于包含本地 CPU 代碼的子產品,這個頭包含了與本地 CPU 代碼有關的資訊

【CLR 頭】

包含是這個子產品成為一個托管子產品資訊(可由 CLR 和一些實用程式進行解釋)。頭中包含了需要的 CLR 版本,一些标志(flag),托管子產品入口方法(Main 方法)的 MethodDef 中繼資料标記(token),以及子產品的中繼資料、資源、強名稱、一些 flag 以及其它不太重要的資料項的位置/大小

【中繼資料】

每個托管子產品都包含中繼資料表。主要有兩種類型的表:描述源代碼中定義的類型和成員的表;描述源代碼引用的類型和成員的表

【IL代碼】

編譯器編譯代碼時生成的代碼。在運作時,CLR 将 IL 編譯成本地 CPU 指令 

轉載于:https://www.cnblogs.com/lishidefengchen/p/4345668.html

繼續閱讀