Bag om Microsofts eksperimental-styresystem

Tags:    it-nyheder

<< < 12 > >>
Singularity er navnet på Microsofts eksperimentelle styresystem. Det kan give forskerne en ide om hvordan fremtidens styresystemer skal indrettes.

Læs hele nyheden her: http://www.udvikleren.dk/Redirect.aspx?mode=version2&id=2022



Lyder godt nok spændene!
Forstår dog bare ikke helt at de har bygget det op i C#... C og C++ er jo mere kontrollable og giver mere frirum...



For 98% af OS'et er det ret ligegyldigt om de bruger C++ eller C#
De skriver netop at de "har nogle kneb i ærmet", hvilket nok også er nødvendigt.



Et OS, i hver fald den grundlæggende del, bør skrive i assmebly og C. Fuld kontrol er ganske enkelt en nødvendighed hvis man vil producere noget der fungerer ordenligt.



Singularity bruger en klassisk C/assembly kerne til at opstarte kernen, men derefter overtages alt af en Sing# baseret kerne, som er kompileret med Barton compileren(Den kan kompilere C#/Sing# direkte til x86 maskinkode). Desuden indeholder Singularity, såvidt jeg husker, ingen adgang til at der nogensinde kan installeres un-managed programmer, dvs. man installere programmer i CIL, og Bartok oversætter dem så til x86 maskinkode. Det betyder at man ikke kan bruge pointers, og derfor kan alle programmer dele samme adresserum, uden at vide det. Det betyder at context-switches er elimineret, hvilket dybest set er ret genialt, må jeg sige.



Indlæg senest redigeret d. 13.03.2008 07:41 af Bruger #2330
".Net i kernen
Der er især to punkter, der gør Singularity til noget specielt. Det ene er, at styresystemet er udviklet i C#..."


Det er muligt at forfatteren har misfortolket begrebet "kerne", men hvis det ikke er tilfælde så bliver der tilsyneladende brugt .net i kernen.

Der ud over er det ikke lykkedes mig at finde ud af hvilken type kerne der er tale om. monolithic, microkernel, etc.



Felix, det er en ren microkernel der er tale om. De forskellige dele af systemet kan så kommunikere med hinanden ved hjælp af et kontrakt-baseret system(Se eventuelt Wikipedia om "Design by Contract").

Og nej, forfatter har ikke misfortolket kerne, der bliver rent faktisk brugt .NET direkte i kernen, men ikke i den version som vi almindeligvis tænker på(CIL), men derimod .NET kompileret til x86 maskinkode med Bartok-compileren.



Indlæg senest redigeret d. 13.03.2008 07:41 af Bruger #2330
Det lyder meget interessant, og det bliver spændende at se hvordan det kommer til at udarte sig.



@The-Freak:
Tak for uddybningen. Som udgangspunkt bruder jeg mig ikke om .net konceptet i forbindelse med et projekt som dette, men som du siger, det er ikke helt det .net vi kender og jeg ved ikke nok til at jeg kan retfærdiggøre min kritik.
Jeg vil læse op på det ved lejlighed.

But then again, jeg bryder mig heller ikke om microkerne designet som alle (tror jeg) kommercielle operativ systemer bruger i en form eller en anden.

Jeg er nok bare mærkelig på det punkt, men man har vel lov at have sin mening ;)

Under alle omstændigheder er da et spændende projekt som jeg helt sikkert vil følge med i udviklingen af.



Linux, Windows og Mac OS X er alle monolithic kernels - alle basale services er direkte integreret i kernerne, og derfor hvis servicen går ned, vil kernen efter al sandsynlighed gå ned, da servicesne som sagt kører sammen med kernen i ring 0, og er en del af kernen. Singularity er anderledes på disse punkter, fordi den først og fremmest er en ren microkernel, altså kører alle basale services uden for kernen, som helt almindelige programmer, og man snakker med disse igennem kanaler.

Derudover har Singularity ingen context-switches, fordi man udnytter SIP's - Software Isolated Processes. SIP'sne tillader at alle programmer kan køre i samme adresserum, uden at de kan se eller røre hinanden. Dette er gjort muligt af Bartok og managed sprog, fordi managed sprog ikke udnytter konceptet med pointers og pointer aritmetik. Man kan altså sige, at .NET er det som gør hele Singularity muligt, fordi .NET sprogene bliver kompileret til CIL, og operativsystemet sørger så for at kompilere on-demand vha. Bartok.



Ok, jeg har aldrig rigtig interesseret for lige netop dette emne, men ting ved jeg og der er at ingen af de nævnte er "pure" monolithic design da de bruger en modulbaceret løsning, hvis det er det rette udtryk.
Linux 0.01 var ren Monolithic kerne, men idag er det ikke længere tilfældet.

Du kan dog sagtens overbevise mig om at de ikke bruger microkernels. Jeg forvirer nogle gange begreberne og kan ikke lige nu huske hvad der egentlig definerer en microkernel.



<< < 12 > >>
t