E-Book, Englisch, 165 Seiten, eBook
Rahman C# Deconstructed
1. Auflage 2014
ISBN: 978-1-4302-6671-6
Verlag: APRESS
Format: PDF
Kopierschutz: 1 - PDF Watermark
Discover how C# works on the .NET Framework
E-Book, Englisch, 165 Seiten, eBook
ISBN: 978-1-4302-6671-6
Verlag: APRESS
Format: PDF
Kopierschutz: 1 - PDF Watermark
C# Deconstructed answers a seemingly simply question: Just what is going on, exactly, when you run C# code on the .NET Framework? To answer this question we will dig ever deeper into the structure of the C# language and the onion-skin abstraction layers of the .NET Framework that underpins it. Well follow the execution thread downwards, first to MSIL (Microsoft Intermediate Language) then down through just-in-time compilation into Machine Code before finally seeing the results executed at the hardware level. The aim of this deep-dive is to provide you with a much more rounded knowledge of the environment within which you code exists. As a managed language, its best-practice to let the Framework deal with device interaction but youll find the experience of taking the cover off once in a while a very rewarding one that will greatly enrich your appreciate of the C# language and the way in which in functions.
Zielgruppe
Popular/general
Autoren/Hrsg.
Weitere Infos & Material
1;Contents at a Glance;3
2;Contents;160
3;About the Author;164
4;About the Technical Reviewer;165
5;Chapter 1: Introduction to Programming Language;4
5.1;Overview of the CPU;4
5.1.1;Instruction Set Architecture of a CPU;7
5.2;Memory: Where the CPU Stores Temporary Information;8
5.3;Concept of the OS;9
5.3.1;Concept of the Process;11
5.3.2;Concept of the Thread;12
5.3.3;What Is Virtualization?;12
5.4;Programming Language;13
5.4.1;Compilation and Interpretation;13
5.4.2;Birth of C# Language and JIT Compilation;13
5.5;// Microsoft (R) .NET Framework IL Disassembler Version 4.0.30319.1;16
5.5.1;The CLR;19
5.5.2;Road Map to the CLR;20
5.6;Tools Used in This Book;25
5.6.1;Son of Strike Debugging Extension DLL;26
5.7;Conclusion;27
5.8;Further Reading;27
6;Chapter 2: The Virtual Machine and CLR;28
6.1;Virtual Machine;28
6.1.1;Problems with the Existing System;28
6.1.2;Optimization During Execution;29
6.2;Virtual Execution Environment;31
6.2.1;Components of the Virtual Execution Environment;32
6.3;CLR: Virtual Machine for .NET;32
6.3.1;CLR Supports Multiple Languages;33
6.3.2;Common Components of the CLR;39
6.4;Conclusion;40
6.5;Further Reading;40
7;Chapter 3: Assembly;41
7.1;What Is the Assembly?;41
7.2;Overview of Modules, Assemblies, and Files;42
7.3;Introduction to PE Files;43
7.4;Structure of the Assembly;44
7.4.1;Analysis of the Assembly;51
7.4.1.1;Section Header;53
7.4.1.2;.text Section;55
7.4.1.3;#~ stream;57
7.4.1.3.1;ModuleDef;58
7.4.1.3.2;TypeDef;58
7.4.1.3.3;MethodDef;58
7.4.1.3.4;Reference Tables;58
7.4.1.3.4.1;AssemblyRef;58
7.4.1.3.4.2;ModuleRef;58
7.4.1.3.4.3;TypeRef;58
7.4.1.3.4.4;MemberRef;59
7.5;Assembly Loading;60
7.5.1;Inside the Bind, Map, Load Process;61
7.5.2;Binding to an Assembly;61
7.5.3;Consulting the Cache;61
7.6;Conclusion;62
7.7;Further Reading;62
8;Chapter 4: CLR Memory Model;63
8.1;Introduction;63
8.1.1;Memory Interaction between the CLR and OS;64
8.2;Windows Memory Management;66
8.2.1;Concept of the Process;67
8.2.1.1;Process Structure;68
8.2.1.2;Process Address Space;69
8.2.2;Concept of the Thread;71
8.2.2.1;Thread Address Space;74
8.2.2.2;Thread and Frames;74
8.2.3;Concept of the Virtual Memory;74
8.2.3.1;32-bit and 64-bit Process Addressing;75
8.2.3.2;Virtual-to-Physical Address Mapping;79
8.2.4;Learn the Contents of a Particular Physical Memory Address;80
8.2.5;Find a Virtual Address and Its Contents;81
8.3;Memory-Mapped File;82
8.4;Conclusion;88
8.5;Further Reading;88
9;Chapter 5: CLR Memory Model II;89
9.1;CLR Memory Model: Application Domain;89
9.1.1;Finding an object in the Application Domain;94
9.1.2;Address Space of the Application Domain;95
9.1.3;Stack in the CLR;98
9.1.4;Address Space of the Stack;102
9.1.5;Heap;104
9.1.6;Heap and Address Space;106
9.2;objects;107
9.3;Garbage Collection;110
9.3.1;Generation 0;111
9.3.2;Generation 1;111
9.3.3;Generation 2;111
9.4;Conclusion;112
9.5;Further Reading;112
10;Chapter 6: CLR Execution Model;113
10.1;Overview of the CLR;113
10.1.1;The C# Program and the CLR;117
10.2;CLR Bootstrapping;122
10.2.1;CLR Address Space;126
10.3;Class Loader in the CLR;130
10.3.1;Locating the Main Entry Point;130
10.3.2;Stub Code for the Classes;131
10.3.3;Verification;132
10.4;Conclusion;132
10.5;Further Reading;132
11;Chapter 7: CLR Execution Model II;133
11.1;JIT Compilation;133
11.1.1;Method Stub of a Type;133
11.1.2;JIT-Compiled Status: NONE;135
11.1.3;JIT-Compiled Status: JIT;139
11.1.4;JIT-Compiled Status: PreJIT;142
11.1.5;How Many Times a Method Is JIT Compiled;145
11.2;Execution State of the CLR;145
11.3;Conclusion;153
11.4;Further Reading;153
12;Index;154