Microsoft Shared Source CLI Implementation alias Rotor  


Microsoft har lavet to implementationer af CLI samt C#, hvor man som udvikler har adgang til koden. Disse implementationer kaldes officielt "Shared Source CLI" - uofficielt er de bedre kendt under navnet Rotor. De to implementationer er til henholdsvis Windows XP og FreeBSD (www.freebsd.org).

Ifølge Microsoft består "The Shared Source CLI" angiveligt af kode, der implementerer både ECMAs CLI (Common Language Infrastructure) såvel som ECMAs specifikation af programmeringssproget C#. Dette valg af terminolgi synes nok lidt vel forvirrende. I det følgende vil vi derfor benytte betegnelsen Rotor til at angive implementationen af såvel CLI som C#.


Uanset teminologien består Rotor af følgende:

  • En implementation af CLR (Common Language Runtime) d.v.s. .NET frameworkets virtuelle maskine baseret på ECMA standarden ECMA-335 til dels Windows XP dels FreeBSD.

  • Compilere til C# (ECMA-334) samt JScript (desværre ingen Visual Basic .NET ;^(

  • Diverse basale udviklingsværktøjer så som assembler, disassembler, debugger, build værktøjer og metadata viewer

    Udover ovenstående medfølger der også testcases (hvilket er meget vigtigt, hvis der fortløbende skal laves forbedringer, udbygninger og alternative implementationer - som f.eks. den Linux portering af Rotor der nævnes nedenfor) samt naturligvis dokumentation.


    Selvom der ikke er tale om source kode til en total implementation af Microsofts normalt distribuerede .NET framework men kun til den standardiserede del, er der naturligvis som udgangspunkt tale om et særdeles interessant "produkt". Desværre er licensbetingelserne for Rotor i deres udformning nogle af de mest begrænsende, vi indtil nu har set indenfor "open source agtige" licensbetingelser. Ifølge disse licensbetingelser må Rotor ikke anvendes i kommerciel hensende hverken i sin originale såvel som i afledte former ("... You may not use or distribute this Software or any derivative works in any form for commercial purposes. ... "). Rotor må ifølge licensen kun benyttes i forbindelse med ikke-kommerciel udnyttelse ("... You may use this Software for any non-commercial purpose, subject to the restrictions in this license. ..."). Men det er en smule uklart, hvordan dette præcist skal fortolkes, idet der specifikt åbnes op for udnyttelse i uddannelsesmæssig sammenhæng ("... Some purposes which can be non-commercial are teaching, academic research, and personal experimentation. You may also distribute this Software with books or other teaching materials, or publish the Software on websites, that are intended to teach the use of the Software. ...").  Dette tyder jo på - om ikke andet inddirekte - at også nogle typer af kommerciel udnyttelse kan være mulig. Det anbefales klart, at man læser licensbetingelserne igennem inden en evt. brug.

    Men summa summarum kan det vist godt konkluderes, at Microsofts intention med softwaren udelukkende er af uddannelsesmæssig karakter. Betryggende er det da også, at man ikke behøver glemme alt det, man lærer ved at se på source koden ;^) ("... You may use any information in intangible form that you remember after accessing the Software. ...").

    Den forskellige operativsystem-understøttelse til Windows XP og FreeBSD er lavet i form af et såkaldt Platform Adaptation Layer (PAL). Det har en Linux udvikleren Shaun Bangay udnyttet til også at lave en Linux implementation af Rotor. Han har skrevet en artikel om sine oplevelser under konverteringen. Hvis man ellers kan se bort fra de noget religiøse (og Microsoft-fjendske ;^) holdninger, han lægger for dagen, kan artiklen bestemt anbefales - det er spændende læsning. Artiklen kan under titlen Rotor Comes to Linux . Samme sted findes også et link til download af koden.


    Læs mere om standardiseringen af .NET CLI og af C# i vores artikel Standardisering af .NET.

    Læs mere om nogle af de vigtigste open source projekter til .NET i vores artikel Åben kode .NET.

    Download af Shared Source CLI Beta og refresh af samme.