Die Microsoft Shared Source CLI-Implementierung

Veröffentlicht: 14. Mai 2002 | Aktualisiert : 20. Jun 2004

Von David Stutz

Die Microsoft® Shared Source CLI-Implementierung (Common Language Infrastructure, CLI) ist ein Dateiarchiv mit kompilierbarem Quellcode für die ECMA-334 (C#)- und ECMA-335 CLI-Standards. Diese Standards sind zusammen ein groß;er Teil dessen, was das Microsoft .NET Framework bietet. Die Shared Source CLI-Implementierung enthält neben der CLI-Implementierung und dem C#-Compiler zahlreiche Tools, Dienstprogramme, zusätzliche Framework-Klassen und Beispiele. Die Implementierung kann auf den Betriebssystemen Microsoft Windows® XP und FreeBSD kompiliert und ausgeführt werden.

Auf dieser Seite

Wundersame Software
Flexibilität ist Standard
CLI-Grundlagen

Wundersame Software

Die Microsoft Shared Source CLI-Implementierung, die wir im Team auch liebevoll "Rotor" nennen, ist eine vollständige Implementierung der ECMA-334 (C#)- und ECMA-335 (CLI)-Standards in Quellcodeform. Es handelt sich um eine erstaunliche Software für Benutzer, die gern mit Programmiersprachen-Infrastruktur herumprobieren oder sie durchsuchen. Im Quellcode, der mehr als eine Million Zeilen umfasst, finden sich Compiler, Tools, Techniken für automatische Speicherverwaltung, JIT-Codegeneratoren (Just-in-Time), Komponenten- und Web-Service-Infrastruktur, Globalisierungs-Know-How, Sicherheitsprotokolle sowie vielfältige weitere beeindruckende Umsetzungen abstrakter Konzepte.

Microsoft hat die Shared Source CLI so konzipiert, dass Wissenschaftler, Studenten, Professoren und andere interessierte Entwickler moderne Computersprachen-Infrastruktur unterrichten, erlernen und experimentell untersuchen können. Dazu wurde der Quellcode der Windows-XP- und FreeBSD-Versionen der Software mit dem Shared Source-Ansatz für den Quellcodezugriff veröffentlicht. Die Lizenz für die Shared-Source-CLI-Implementierung erlaubt jedem Benutzer, den Code zu verwenden oder zu bearbeiten, solange keine kommerziellen Zwecke verfolgt werden.

Flexibilität ist Standard

Der ECMA-335 (CLI)-Standard beschreibt ein nicht sprachenabhängiges Laufzeitmodul, das leblose Metadatenpakete in selbstassemblierende, stabile und typsichere Softwaresysteme umwandeln kann. Die verwalteten Komponenten, aus denen sich diese Softwaresysteme zusammensetzen, können in verschiedenen Computersprachen geschrieben werden. Sie arbeiten dennoch stabil und zuverlässig zusammen. Das Geheimnis dieser Kooperationsfähigkeit ist die gemeinsam genutzte Laufzeitinfrastruktur der CLI. Diese Laufzeitinfrastruktur umfasst nicht nur Funktionen auf niedriger Ebene wie z. B. standardisierte Metadaten und eine Zwischensprache, sondern auch produktivitätsbezogene Funktionen auf hoher Ebene, beispielsweise universell verfügbare Klassenbibliotheken. Der CLI-Standard beschreibt auß;erdem ausführlich, wie nicht verwaltete Software sicher mit verwalteten Komponenten koexistieren kann. So können nicht nur bereits vorhandene Codebasen berücksichtigt werden, sondern es wird auch die reibungslose gemeinsame Nutzung von Computerressourcen und -verantwortlichkeiten ermöglicht.

Die Autoren des CLI-Standards erwarten, dass in Zukunft mehrere Implementierungen dieses Standards verfügbar sind. Jede dieser Implementierungen soll die gleichen grundlegenden Funktionen unterstützen, darüber hinaus jedoch auch einzigartige Funktionen wie z. B. zusätzliche Frameworks, Dienste, Dienstprogramme oder Sprachfeatures bereitstellen. Dieser Ansatz ist mit der Philosophie des C#-Vorgängers, der Sprache C und dem zugehörigen Laufzeitmodul, verwandt. In weit verbreiteten Veröffentlichungen und Büchern dokumentierten Brian Kernighan und Dennis Ritchie bereits Anfang der 70er Jahre, wie notwendig das richtige Verhältnis zwischen Portabilität und Typsicherheit ist. Gleichzeitig betonten die Autoren aber auch die Relevanz des ausdrücklichen Zugriffs auf die zugrundeliegende Hardware und Software. Ebenso wie das C-Laufzeitmodul wurde die CLI konzipiert, um die Leistungsfähigkeit verschiedener Plattformen zu nutzen und um vorhandene Tools, Sprachen und Laufzeitmodule optimal zu ergänzen.

Die Spezifikation, die die Schnittstelle zu diesem Interoperabilitätsmodul beschreibt, ist sehr umfangreich - für Implementierer möglicherweise eine frustrierende Erfahrung. Microsoft hat erkannt, dass das Schreiben einer funktionierenden Instanz dieses Moduls in mindestens einem Beispiel gezeigt werden sollte. Die Shared Source CLI schließ;t diese Lücke mit einer Implementierung, die zumindest eine - wenn auch nicht die einzige - Methode zum Erstellen einer portablen, programmiersprachenunabhängigen Version des CLI-Standards vorstellt.

CLI-Grundlagen

Denken Sie beim Laden der Shared Source CLI bitte daran, dass es sich um eine experimentelle und nicht kommerzielle Implementierung handelt! Der Quellcode ist zwar recht stabil, besitzt jedoch Betaqualität. Wir aktualisieren diese Version; Terminangaben für erwartete Aktualisierungen liegen jedoch noch nicht vor. Das Entwicklungsteam liest regelmäß;ig die Beiträge in der Newsgroup microsoft.public.shared_source.cli, Ihre Rückmeldungen sind also erwünscht. Auß;erdem wurde von der Universität von Pisa eine moderierte Shared Source CLI-Diskussionsliste erstellt, und DevelopMentor betreut eine Shared Source CLI-Diskussionsgruppe.

Die Shared Source CLI-Implementierung kann z. B. aus den folgenden Gründen interessant für Sie sein:

  • Es gibt erhebliche Unterschiede zwischen der Implementierung dieses Codes und der des Codes für die kommerzielle CLI-Implementierung von Microsoft, die beide dazu dienen, die Portabilität zu erleichtern und die Codebasis einfacher zugänglich zu machen. Wenn Sie jedoch als Entwickler an den genauen Einzelheiten virtualisierter Objektsysteme interessiert sind, und Sie wissen möchten, wie Objektframeworks entworfen werden, wie JIT-Compiler und Garbage Collectors funktionieren oder wie Microsoft Visual Studio® hinter den Kulissen für Sie arbeitet, werden Sie dieser Implementierung mit Sicherheit Ihre Aufmerksamkeit schenken!

  • Wenn Sie ein Dozent sind, der Schulungsunterlagen zu interessanten Themen erstellen und mit dieser Codebasis illustrieren möchte, oder wenn Sie Wissenschaftler sind, der Untersuchungen oder Prototypen auf der Grundlage dieses Quellcodes erstellen möchte, wird Ihnen diese Implementierung gelegen kommen. Benutzer, die z. B. mit programmgeführten Optimierungen arbeiten, beispielsweise mit Daten- und Codelayout oder Codekomprimierung, können die Betrachtungsfunktionen des Laufzeitmoduls zu ihrem Vorteil nutzen. Alternativ könnte ein Kurs zu Compiler-Interna C#-, Microsoft JScript®- oder JIT-Laufzeitcompiler als Beispiele verwenden. Die Liste möglicher Themen ist äuß;erst umfangreich.

  • Wenn Sie erwägen, eine eigene Version der CLI zu implementieren, oder wenn Sie mehr über die Methoden erfahren möchten, mit denen Compiler und Tools die Common Intermediate Language oder die Basisklassenbibliotheken verwenden können, stellt diese Implementierung schließ;lich einen unentbehrlichen Führer dar. Die Vollständigkeit dieses Angebots sowie seine liberalen Lizenzierungsbestimmungen machen die Shared Source CLI zu einem wertvollen Beispiel und Testszenario für jedermann.

Als Mitglied des Rotor-Entwicklungsteams bei Microsoft lade ich Sie ein, diesen Code zu laden, zu untersuchen und auszuprobieren. Der CLI-Standard wird noch für viele Jahre wichtig sein, und es gibt keinen besseren Weg, ihn wirklich zu verstehen, als damit zu experimentieren und diese Quellen zu kompilieren. Wir hoffen auß;erdem, dass dieser Code für Wissenschaftler und Dozenten zu einer Grundlage für zukünftige Innovationen wird. Die Möglichkeiten sind ausgesprochen vielfältig - teilen Sie Ihre Ideen und Ergebnisse mit uns!

Links zu verwandten Themen

Download

Laden Sie Shared Source CLI vom MSDN Download Center herunter.


Anzeigen: