Presentation laddar. Vänta.

Presentation laddar. Vänta.

SSCLI (Rotor) - Shared Source Common Language Infrastructure Johan Lindfors Microsoft.

Liknande presentationer


En presentation över ämnet: "SSCLI (Rotor) - Shared Source Common Language Infrastructure Johan Lindfors Microsoft."— Presentationens avskrift:

1 SSCLI (Rotor) - Shared Source Common Language Infrastructure Johan Lindfors Microsoft

2 Agenda  Introduktion till SSCLI  ECMA, CLR,.NET Framework  En överblick av  Exekeveringsmotorn  Ramverket  Kompilatorer och verktyg  Portabiltitet och tester

3 Agenda  Introduktion till SSCLI  ECMA, CLR,.NET Framework  En överblick av  Exekeveringsmotorn  Ramverket  Kompilatorer och verktyg  Portabiltitet och tester

4 Vad är SSCLI  En implementation av fulla ECMA standards  334: C#  335: Common Language Infrastructure (CLI)  En distribution av källkod, ej för kommersiellt bruk  Dokumenterad för att göra förändringar  Enkel att distribuera och publicera förändringar  “Cross-platform”  Koden byggs och exekverar på FreeBSD och Windows XP  Designad för att översätta till andra plattformar

5 Varför SSCLI  Underlätta utvecklingen för partners  Licensen möjliggör “säker” undersökning av kod  För utvecklare av alternativ till CLI  Stor, omfattande specifikation och kod  Bevisar att stöd för flera plattformar är möjligt  Demonstrerar interoperabilitet  För utvecklare av kompilatorer för CLI  JScript-kompilatorn visar dynamiska funktioner  C#-kompilatorn är mycket omfattande  IL-assemblering visar implementation av API’er på ännu lägre nivå

6 Innehåll  Paketerad som en zip-fil på 11 MB  1.9 miljoner rader kod  1.15 miljoner rader C och C++  625 tusen rader C#  125 tusen rader CIL (intermediate language)  Små doser av assembler  5900 källkodsfiler (9700 totalt)  Efter kompilering och länkning  1200 definerade typer  Ungefär 20 biblioteksfiler  Ungefär 22 applikationer

7 En överblick av CLI  Ett vanligt typsystem och en specifikation för integration av språk (CLS)  En motor med GC, SEH, säkerhet och verifiering  Ett filformat  PE/COFF med tillägg  Ett utbyggbart metadata-system  Ett “intermediate language”  CIL: Common Intermediate Language  Ett klassbibliotek  Tillgång till operativsystemet

8 .NET Framework och SSCLI  Både CLI och CLR implementerar den kompletta ECMA standarden  SSCLI är mer än ECMA men mindre än det kommersiella.NET Framework  Skillnader  JIT’ern och GC’n ersatta med en implementation som är lättare att översätta till andra plattformar  Många Windows-specifika funktioner är inte inkluderade: COM interoperabiltitet, Windows Formulär, ADO.NET, “Enterprise Services”, NGEN, och ASP.NET

9 Agenda  Introduktion till SSCLI  ECMA, CLR,.NET Framework  En överblick av  Exekeveringsmotorn  Ramverket  Kompilatorer och verktyg  Portabiltitet och tester

10 En överblick av…  Exekveringsmotorn  Hjärtat av komponent-orienterad infrastruktur  Konverterar metadata, resurser och CIL till exekverbar kod  Hanterar interoperabilitet med “unmanaged code”  Verifiering av IL och JIT kompilering  Felhantering mellan språk  Språkoberoende, objekthanterande typsystem  Automatisk heap och stack hantering  Laddning av dynamisk kod  Bevisbaserad säkerhet (kodbaserad säkerhet)

11 En överblick av…  Ramverket  Ett “verktyg” för utvecklaren  Bibliotek med basklasser  Samlingar, vektorer, strängar och andra komplexa datastrukturer  Flyttalsoperationer, globalisering och formatering  System tjänster (trådar, I/O, synkronisering, m.m.)  Säkerheten  Nätverksstöd, “regular expressions”, XML  Innehåller stöd för  “Reflection” och skräddarsydda attribut  “Remoting”, “unmanaged interop”, serialisering och “marshaling”  AppDomains, assemblies, GC m.m.

12 En överblick av…  Kompilatorer och verktyg  Komplett C#-kompilator (som också används)  JScript-kompilator skriven helt i C#  CLIX – “SSCLI program launcher”  Andra verktyg: resurs-kompilator, länkare, metadata läsare, assemblerare, disassemblerare  Debuggningsverktyg: cordbg för “managed code”, plus ett tillägg för “managed code” från C/C++

13 En överblick av…  Platform Adaptation Layer (PAL) i pal katalogen  Systemresurser konsumeras via PAL  Ungefär 250 delvis kompletta Win32 API’er  Funktioner som saknas i OS’et kan implementeras i PAL  En bra specifikation kan hittas i PAL_GUIDE.HTML  Trådhantering, schemaläggning, klockfunktioner  Synkron fil-I/O, asynkron nätverks-I/O  Synkronisering (kritiska sektioner, mutex, semaforer, händelser)  “Debuggning” och andra verktyg  För att “porta” behövs lite extra arbete  JIT  Liten dos maskinkod i exekveringsmotorn

14 Hur kompilerar och länkar jag?  Script och program  Script bistår med miljövariabler och kompileringen/länkningen  build, binplace, nmake, och resurskompilatorer  Verktyg för konfigurationen  gacutil – administrerar “global assembly cache”  sn – signerar applikationer  peverify – verifierar CIL  caspol – modifierar policy för “kodbaserad säkerhet”  storeadm – hanterar “isolated storage”

15 Tester  Väldigt användbart innan och vid förändringar!  Två områden: PAL och “managed code”  PAL  pvtrun.pl kan användas för automatisk testning  Kvalitet på “managed code”  rrun.pl  Tre primära områden  Verifiering av IL  Många små program  Tester för basklasserna

16 Shared Source Windows CE  1,5 miljoner rader Windows CE kod  Innehåller bland annat  Utforskaren (”Explorer”)  HTTP webb server  Protokoll implementationer av SOAP och uPNP  Microsoft Message Queuing (MSMQ)  Bluetooth och trådlösa nätverksdrivrutiner  ”Kerneln”  Filsystem

17 Mer information   Shared Source CLI kommer vidareutvecklas  Ytterligare utveckling från Microsoft  Planerna är inte klara – feedback önskas!  NNTP  microsoft.public.shared_source.cli  Maillistor och arkiv   (dotnet-rotor)

18

19 Definitioner  APIApplication Program Interface  IL Intermediate Language (CIL)  CLSCommon Language Specification  GCGarbage Collection  SEHStructured Exception Handling  PEPortable Executable  COFFCommon Object File Format  JITJust In Time  NGENNative GENerator  I/OInput / Output  PALPlatform Adaption Layer  uPNPUniversal Plug ’N Play  NNTPNetwork News Transfer Protocol


Ladda ner ppt "SSCLI (Rotor) - Shared Source Common Language Infrastructure Johan Lindfors Microsoft."

Liknande presentationer


Google-annonser