Download presentation
Presentation is loading. Please wait.
Published byKatrina Chase Modified over 9 years ago
1
Self-Contained CLI Assemblies Dipl.-Inf. Bernhard Rabe Operating Systems & Middleware Group Hasso-Plattner-Institute University of Potsdam
2
May 29 - June 1, 2006.NET Technologies'2006, Plzeň2 Outline Motivation Self-contained Assemblies Micro.NET Adaptive Linking Conclusions
3
May 29 - June 1, 2006.NET Technologies'2006, Plzeň3 Motivation Common Language Infrastructure (CLI) features: Loose coupling Dynamic linking is required at load time fusion engine (.dll vs..exe) Byte code consistency is verifiable Execution behavior depends on Base Class Library (BCL) implementation (.NET, Rotor, Mono, …) Comprehensive class library High memory requirements of runtime environment
4
May 29 - June 1, 2006.NET Technologies'2006, Plzeň4 C# Example public static int Main(string[] args) { Object obj=new Object(); return 1; }
5
May 29 - June 1, 2006.NET Technologies'2006, Plzeň5 AssemblyRef mscorlib B7 7A 5C 56 19 34 E0 89 TypeRef System.Object MemberRef.ctor Dynamic Linking newobj 0x0a000001 pop ldc.i4.1 ret mscorlib Assembly TypeDef System.Array System.Object MethodDef Equals.ctor ret usercode.exemscorlib.dll Main.ctor
6
May 29 - June 1, 2006.NET Technologies'2006, Plzeň6 Micro.NET CLR library independent deployment format Self-contained assemblies IL interpreter for small embedded devices (Lego Mindstorm) Micro.NET deals with.NET for resource limited systems memory processing power …
7
May 29 - June 1, 2006.NET Technologies'2006, Plzeň7 Runtime Memory Footprint Assembly Custom Library assemblies Base Class Library CLR Self-contained Assembly
8
May 29 - June 1, 2006.NET Technologies'2006, Plzeň8 Self-contained Assemblies No external references BCL independent Fewer memory consumption Metadata of assemblies Reduced startup delay type resolving Optimizations under investigation Whole program analysis Metadata Optimizations without Common Language Runtime (CLR) modifications
9
May 29 - June 1, 2006.NET Technologies'2006, Plzeň9 Avoiding Dynamic Linking Compile to native code e.g. CIL front-end no VM features: gc, sandbox code verification is challenging platform dependent Reduce the number of assemblies/references combine assemblies Streamlining dynamic linking
10
May 29 - June 1, 2006.NET Technologies'2006, Plzeň10 Configuration Linker tool library Adaptive Linking usercode.exe library Base Class Library self-contained assembly
11
May 29 - June 1, 2006.NET Technologies'2006, Plzeň11 Adaptive Linking PERWAPI library* based linker tool Combine referenced types into a self-contained assembly Types are processed recursively Fine granular linking (type level) * Queensland University of Technology (QUT), Australia
12
May 29 - June 1, 2006.NET Technologies'2006, Plzeň12 CIL of C# example (excerpt).class a{.method public hidebysig specialname rtspecialname instance void.ctor() cil managed {…}.method public hidebysig static void Main(string[] args) cil managed{.entrypoint.maxstack 1 newobj instance void [mscorlib]System.Object::.ctor() pop ldc.i4.1 ret }
13
May 29 - June 1, 2006.NET Technologies'2006, Plzeň13 Self-contained (excerpt).class Hello {.method public hidebysig specialname rtspecialname instance void.ctor() cil managed {…}.method public hidebysig static void Main(string[] args) cil managed{ … newobj instance void System.Object::.ctor() … }.class System.Object{.method public hidebysig specialname rtspecialname instance void.ctor() cil managed {…}.method family hidebysig virtual instance void Finalize() cil managed{…} }
14
May 29 - June 1, 2006.NET Technologies'2006, Plzeň14 Results PoCs run on Rotor, Mono, and Portable.NET without CLR modfications None CLR portable features internalcall System.Object::Equals(object obj).NET vs. Mono runtime pinvokeimpl Necessity for an highly portable BCL Source for Self-contained Assemblies
15
May 29 - June 1, 2006.NET Technologies'2006, Plzeň15 Conclusion Self-contained assemblies.NET on resource constrained systems reduced resource consumption Optimized deployment format for resource limited systems No CLR modifications required
16
May 29 - June 1, 2006.NET Technologies'2006, Plzeň16 CLR Memory Footprint Kernel Profile is smallest CLI conforming CLR Base Class Library (BCL) 145 types (ECMA 335 2nd) Runtime library 42 types (ECMA 335 2nd) BCL is embedded in mscorlib.dll mscorlib.dll ( 400Kb Compact Framework 1.0) mscorlib.dll ( 1.6Mb SSCLI 1.0)
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.