Avatar billede computerpeter Nybegynder
07. november 2005 - 23:06 Der er 15 kommentarer

Hvordan kan dette lade sig gøre ?

Hej eksperter.

Jeg kan se at nogle fra microsoft har lavet et styresystem uden forbindelse til windows kernen
se: http://www.pcworld.dk/default.asp?Mode=2&ArticleID=6549
og at de har skrevet det i C#.
Men kræver det ikke .NET for at køre c# programmer, nogen der ved hvordan de har gjort det ?
Avatar billede nielle Nybegynder
07. november 2005 - 23:11 #1
Lyder interessant.

Nu er C# jo bare et programmerinsgsprog, og man kan da sagtens forestille sig at det også kunne bruges i en compiler som ikke laver MSIL-kode - og ikke er afhængigt af .NET. Det lader til at det bl.a. er det de gode forsker har gjort.
Avatar billede arne_v Ekspert
07. november 2005 - 23:17 #2
det er beskrevet i detaljer her:

ftp://ftp.research.microsoft.com/pub/tr/TR-2005-135.pdf

Code in Singularity is either verified or trusted. Verified code’s type and memory safety is
checked by a compiler. Unverifiable code must be trusted by the system and is limited to the
hardware abstraction layer (HAL), kernel, and parts of the run-time system. Most of the kernel is
verifiably safe, but portions are written in assembler, C++, and unsafe C#.

Hvilket betyder at der er en lille bitte kerne i unmanaged kode og så resten
i managed kode.

Hvis Windows var lavet på samme måde så ville det sige at måske ntoskrnl.exe
og kernel32.dll var unmanaged og de resterende megabyte efter megabyte af
alt muligt var managed kode.
Avatar billede arne_v Ekspert
07. november 2005 - 23:18 #3
+hal.dll
Avatar billede arne_v Ekspert
07. november 2005 - 23:21 #4
så der skal stadig noget unmanaged kode til at køre det men det er ikke så meget

det svarer meget til Jikes RVM som er en Java VM skrevet i Java
Avatar billede lasserasch Juniormester
08. november 2005 - 00:13 #5
Nu er dette bare et spørgsmål, og måske er det mig der ikke har forstået det helt korrekt, men jeg troede ikke man kunne kode i C, når det var et OS???

Er man ikke helt nede og snakke direkte med hardwaren uden en fortolker, når man koder et OS?

/Lasse
Avatar billede arne_v Ekspert
08. november 2005 - 00:19 #6
Jo.

Og derfor skal der også være en lille smule unmanaged kode.

I rigtige systemer brugt ude i virkeligheden er der store mængder unmanaged kode.

Men forsknings projekter har vist at man kan klare sig med meget lidt unmanaged
kode hvis man vil.

Lad os tage et eksempel. Grafik. Hvis du har en eneste unmanaged funktion som sætter
farven på en pixel, så kan du vel principielt kode resten af GUI komponenterne
managed.

Om det performer godt er en helt anden sag.
Avatar billede computerpeter Nybegynder
08. november 2005 - 01:15 #7
mange tak nielle og arne_v bare læg svar !
Avatar billede arne_v Ekspert
08. november 2005 - 08:20 #8
svar
Avatar billede nielle Nybegynder
08. november 2005 - 09:34 #9
Man kan sagtens kode i C når det er et OS; Jeg er f.eks. ret sikker på at det meste af Windows er programmeret i C og i C++. Formålet med compileren er jo netop at oversætte C-koden til maskine-nær kode.

Grunden til at C historisk er blevet valgt til at udvikle OS’er i, er at det ligger temmelig nær ved den maskinnære kode til at starte med. Imidlertid er det ikke krav at det skal være C, og der er intet i vejen for at gøre det i f.eks. C#.

Imidlertid ser det ud til at forskerne rent faktisk har lavet en slags .NET framework. Dette bygger direkte oven på HAL og har altså ikke et OS imellem. Det meste af Singularity’s kode er altså managed kode, og dette synes at have været formålet med projektet fra starten af – at se hvordan sådan et OS ville kunne se ud.

Jeg lægger gerne et svar, men jeg synes klart at arne_v fortjener de fleste point på denne her. :^)
Avatar billede arne_v Ekspert
08. november 2005 - 09:36 #10
nielle>

jeg tror at der er faldet en # ud i lasse's kommentar (C# ikke C passer bedre
i konteksten)
Avatar billede nielle Nybegynder
08. november 2005 - 09:45 #11
Det kan du måske have ret i - jeg er dog ikke helt sikker... ?
Avatar billede arne_v Ekspert
08. november 2005 - 09:54 #12
det må det næsten være

Windows                : C & C++
Linux                  : C
*BDS (inkl. Mac OS X)  : C
Solaris                : C
AIX                    : C
HP-UX                  : C
VMS                    : assembler & Bliss
OS/400                  : ???? (næppe C)
MVS                    : ???? (næppe C)

suveræn overvægt af C
Avatar billede nielle Nybegynder
08. november 2005 - 14:43 #13
Avatar billede nielle Nybegynder
21. november 2005 - 18:01 #14
Lukketid?
Avatar billede nielle Nybegynder
11. december 2005 - 19:34 #15
??
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester