Laden...

Singularity - Ein C# Betriebssystem

Erstellt von Nekromanter vor 18 Jahren Letzter Beitrag vor 17 Jahren 12.675 Views
Nekromanter Themenstarter:in
64 Beiträge seit 2005
vor 18 Jahren
Singularity - Ein C# Betriebssystem

Hallo!

Ich habe heute folgenden sehr interessanten Beitrag im Internet gefunden:

http://channel9.msdn.com/ShowPost.aspx?PostID=68302

Das lässt mich hoffen meinen Freund doch noch von C# überzeugen zu können (sein bisheriges Argument für C++ war immer dass es in Maschinencode umgesetzt wird...)

::So long, Nekromanter

M
456 Beiträge seit 2004
vor 18 Jahren

Original von Nekromanter
Hallo!

Ich habe heute folgenden sehr interessanten Beitrag im Internet gefunden:


>

Ich hab von dem Projekt schon vor einiger Zeit gehört. Es gibt auch ein paar Slides dazu:
http://research.microsoft.com/os/singularity/2004_12_07_OSDI_Singularity_WIP_External.ppt
Die Leute, die das OS schreiben, wollen übrigens auch bald den Sourcecode freigeben.

Das lässt mich hoffen meinen Freund doch noch von C# überzeugen zu können (sein bisheriges Argument für C++ war immer dass es in Maschinencode umgesetzt wird...)

Ja, und? IL wird auch in Maschienecode übersetzt 😉

I am Jack's smirking revenge.
I am Jack's raging bile duct.
I am Jack's cold sweat.
I am Jack's complete lack of surprise.
I am Jack's broken heart.
I am Jack's wasted life.

1.549 Beiträge seit 2004
vor 18 Jahren

ja aber erst reichlich spät, wenn man daran denkt ein OS zu schreiben. A
ber möglich wäre es schon wenn man einen Maschinen Code Compiler für C# schreiben würde (Müsste mit Hilfe der von Mono veröffentlichen source möglich sein).
Die frage ist aber warum sollte man die ganzen Vorteile von C# als Managet Sprache einfach über Bord werfen??
Doch nicht etwa nur weil vielleicht 3 oder 4% mehr Performance herauskommen!!
Aktuelle Rechner haben doch Rechenleistung im Überfluss.
Und selbst wenn man Argumentiert das Spiele noch immer 100% der zu Verfügung stehenden Ressourcen nutzen muss man bedenken das ein spiel das man jetzt beginnt zu entwickeln erst in frühestens 2 Jahren Fertig ist.
Und dank Mohr (oder Moor weis leider nicht wie man ihn schreibt) wissen wir ja das uns bis dorthin mehr als das doppelte an Rechenleistung zur Verfügung steht und mir fällt beim besten willen nicht ein wo man die noch sinnvoll verbraten kann

Wir Arbeiten eigendlich nicht wir nehmen nur das geld

49.485 Beiträge seit 2005
vor 18 Jahren

Hallo S.H.-Teichhof,

der Mensch heißt Moore und hat nichts über Rechenleistung gesagt, sondern nur über die Anzahl von Transistoren pro Chip.

Solange es noch Supercomputer gibt, gibt es wohl auch noch Probleme, die nach mehr Rechenleistung verlangen, als ein normaler PC bietet. Und mit jedem NP-schwierigen Problem kannst du jeden Rechner in die Knie zwingen. Für solche Probleme ist doppelte Rechenleistung ein Tropfen auf den heißen Stein.

Deine Aussage klingt mir ein bisschen so wie die von Bill Gates, dass kein Mensch mehr als 640kb Speicher brauchen wird, oder noch frühere von einem IBM Manager, der einen Weltbedarf von 5 Computern "vorausgesehen" hat. 🙂

herbivore

1.549 Beiträge seit 2004
vor 18 Jahren

na ja ok das es keine anwendenugen gibt habe ich nicht gesagt eher das der Privat anwender im moment rechenleistung im überfluss hat was auch stimmt!! natürlich gibt es video verarbeitung die Rechenleistung und Speicher ohne ende braucht aber in meinem ganzen bekanten kreiß nutzen nur 5 leute diese möglichkeiten also nicht wirklich die masse

Wir Arbeiten eigendlich nicht wir nehmen nur das geld

M
456 Beiträge seit 2004
vor 18 Jahren

Original von S.H.-Teichhof
ja aber erst reichlich spät, wenn man daran denkt ein OS zu schreiben. A
ber möglich wäre es schon wenn man einen Maschinen Code Compiler für C# schreiben würde (Müsste mit Hilfe der von Mono veröffentlichen source möglich sein).

Ist ja auch möglich. Die Leute von MS Research haben das ja auch bewiesen 😉

Die frage ist aber warum sollte man die ganzen Vorteile von C# als Managet Sprache einfach über Bord werfen??Doch nicht etwa nur weil vielleicht 3 oder 4% mehr Performance herauskommen!!
Aktuelle Rechner haben doch Rechenleistung im Überfluss.
Und selbst wenn man Argumentiert das Spiele noch immer 100% der zu Verfügung stehenden Ressourcen nutzen muss man bedenken das ein spiel das man jetzt beginnt zu entwickeln erst in frühestens 2 Jahren Fertig ist.

Wieso über Bord werfen? Es wurde extra ein spezieller C# Compiler (Bartok), der ebenfalls von MS Research entwickelt wurde, genutzt. Das ganze OS ist also verwalteter Code (wenn man mal vom Interrupt-Handling und booten absieht)

Und dank Mohr (oder Moor weis leider nicht wie man ihn schreibt) wissen wir ja das uns bis dorthin mehr als das doppelte an Rechenleistung zur Verfügung steht und mir fällt beim besten willen nicht ein wo man die noch sinnvoll verbraten kann

Na, sei dir da mal nich so sicher ... Irgendjemand wird immer noch was finden mit dem man Rechenzeit verbraten kann 😉

Software wird immer schneller langsamer, als Hardware schnell wird ... 👅

I am Jack's smirking revenge.
I am Jack's raging bile duct.
I am Jack's cold sweat.
I am Jack's complete lack of surprise.
I am Jack's broken heart.
I am Jack's wasted life.

49.485 Beiträge seit 2005
vor 18 Jahren

Hallo S.H.-Teichhof,

ich habe in meinem Leben zu oft gedacht, dass es keine sinnvollen Anwendungen für mehr Speicher, größere Festplatten und mehr Rechenleistung gibt, als das ich diese Meinung noch aufrecht erhalten kann. Ich denke, dass in Zukunft Anwendungen entstehen, von denen wir heute noch gar nichts wissen. KI wäre da ein Bereich.

herbivore

PS: Auch PovRay in Echtzeit wäre nett. Ich glaube da braucht man aber noch Faktor 1000 bei der Rechenleistung für.

M
456 Beiträge seit 2004
vor 18 Jahren

Original von herbivore
Hallo S.H.-Teichhof,

ich habe in meinem Leben zu oft gedacht, dass es keine sinnvollen Anwendungen für mehr Speicher, größere Festplatten und mehr Rechenleistung gibt, als das ich diese Meinung noch aufrecht erhalten kann. Ich denke, dass in Zukunft Anwendungen entstehen, von denen wir heute noch gar nichts wissen. KI wäre da ein Bereich.

herbivore

PS: Auch PovRay in Echtzeit wäre nett. Ich glaube da braucht man aber noch Faktor 1000 bei der Rechenleistung für.

Da du gerade PovRay erwähnst und der Trend ja zur Zeit eh in Richtung Multiprozessor-Kerne geht: Solche Programe wie Raytracer können ja von Rechenleistung nie genug kriegen und skalieren gerade auch auf MP-Maschinen recht gut (Schreib ja gerade selbst einen).
Auch KI-Syteme können von Multicore profitieren. Das trainieren/propagieren von Neuronalen-Netzen ist größtenteils Matrix- und Vektor-Arithmetik, die gut parallelisierbar ist.

I am Jack's smirking revenge.
I am Jack's raging bile duct.
I am Jack's cold sweat.
I am Jack's complete lack of surprise.
I am Jack's broken heart.
I am Jack's wasted life.

1.549 Beiträge seit 2004
vor 18 Jahren

OK OK ich gebe ja zu das es Theoretisch noch Verwendungszwecke für die Rechenleistung gibt. Mit meiner aussage zur Rechenleistung wollte ich auch Bloß meine andere aussage untermauern das es in Zukunft immer weniger um die Performance einer Sprache an sich gehen wir dun das diese Argument der C# Gegner an gewicht verlieren wird

Wir Arbeiten eigendlich nicht wir nehmen nur das geld

4.506 Beiträge seit 2004
vor 18 Jahren

Hallo beisammen!

Ich will mich eigentlich gar nicht in die Diskussion einmischen, aber zum Thema

Aber möglich wäre es schon wenn man einen Maschinen Code Compiler für C# schreiben würde (Müsste mit Hilfe der von Mono veröffentlichen source möglich sein).

habe ich noch eine Frage. Wenn man den IML Code in Maschinensprache übersetzt, gehen dann nicht solche tollen Eigenschaften wie Reflection oder andere Laufzeitabhängige Bedingungen verloren?

Ich hab mir da auch mal Gedanken drüber gemacht, aber das konnte ich mir nicht erklären, wie das mit kompletter Übersetzung möglich wäre...

Ciao
Norman-Timo

A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”

C
980 Beiträge seit 2003
vor 18 Jahren

Original von norman_timo
Wenn man den ML Code in Maschinensprache übersetzt, gehen dann nicht solche tollen Eigenschaften wie Reflection oder andere Laufzeitabhängige Bedingungen verloren?

Indeed, Bartok unterstützt u.a. keine Reflection ...

S
8.746 Beiträge seit 2005
vor 18 Jahren

Der IL-Code stellt Interoperabilität auf verschiedenen HW-Plattformen sicher. Mit Reflection hat das erstmal nix zu tun. Einen Maschinen-Compiler für IL gibt es schon und heisst ngen.exe und ist bei .NET bereits dabei. Allerdings kann man damit keine distributierbaren Anwendungen erzeugen (eben wegen Plattformunabhängigkeit).

Das ganze ist eine Frage der Ausführungsumgebung. Bartok versucht ja nativen Win32-Code ohne CLR-Zugriff zu erzeugen. Das ist sicher was anderes, als ein .NET-BS machen würde.

C
980 Beiträge seit 2003
vor 18 Jahren

Original von svenson
Das ganze ist eine Frage der Ausführungsumgebung. Bartok versucht ja nativen Win32-Code ohne CLR-Zugriff zu erzeugen. Das ist sicher was anderes, als ein .NET-BS machen würde.

Win32-Code? Da gibt's kein Win32 (=Windows) ... eher x86 Code 😉

Es geht im Übrigen nicht um ein .NET-OS, sondern um ein OS, welches grösstenteils in safe C# (alles bis auf unterste Layer in unsafe C# und etwas C++ (HAL)) geschrieben ist (C#, nicht .NET). Ist v.a. technisch Interessant (-> educational), da moderne typisierte Sprachen ganz andere Konzepte ermöglichen, aber auch fordern. Hier wurde z.b. eine Message-Passing Microkernel Architektur gewählt, die sich aber wohl stark von anderen klassischen Microkerneln unterscheiden dürfte ...

35 Beiträge seit 2006
vor 17 Jahren

Da bei Singularity ja eigentlich kein Windows Betriebsystem mehr enthält, müssen wir uns eigentlich auch umgewöhnen.
Oder liege ich da falsch? Oder wollen sie alles mit Framework so einstellen dass wir uns gar nicht umgewöhnen müssen?

Im großen und ganzen bin ich mir sicher dass eine neue Proggsprache kommen wird für Singularity. Wär doch gelacht 😁

S
8.746 Beiträge seit 2005
vor 17 Jahren

Niemand von uns wird Singularity je in den Händen halten. Reine Forschung.

35 Beiträge seit 2006
vor 17 Jahren

Forschung wird irgendwann für die Menscheit zur Verfügung gestellt😉
Das kommt schon irgendwann, ok es ist MS die sagen viel aber wenn Sing kommen sollte bin ich mir sicher dass es so verlaufen würde😉

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo xXeRaptorXx,

Forschung wird irgendwann für die Menscheit zur Verfügung gestellt

also die allermeisten Forschungsergebnisse sieht nie ein normalsterblicher Mensch, sondern sie werden nur von der Forschergemeinschaft wahrgenommen. Natürlich fließt der Wissensgewinn der Forschergemeinschaft in Produkte und Produktionsverfahren ein - nur halt sehr indirekt und nicht dadurch, dass ein Forschungsprototyp einfach veröffentlicht oder gar verkauft wird.

herbivore

35 Beiträge seit 2006
vor 17 Jahren

OK, hast Recht.
Aber ist es Fakt dass Sing nicht für uns Erscheint oder ist das einfach die Meinung der Community?

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo xXeRaptorXx,

naja, ich würde das schon für sehr, sehr sicher ansehen, dass Singularity nicht erscheint. Zumindestens nicht als kommerzielles Desktop-Betriebssystem. Die Erkenntnisse der Forschung werden zu einem kleinen Teil in Windows einfließen.

herbivore

35 Beiträge seit 2006
vor 17 Jahren

Schade eigentlich...
Wäre etwas neues gewesen.
Naja, werde irgendwann auf Linux zum Teil umsteigen denn schließlich laufen auf Linux nicht alle Win32 Programme wie zum Beispiel Visual Studio oder gar meine kleinen Programme xD

Gelöschter Account
vor 17 Jahren

Linux ist sowas von benutzerunfreundlich... ich könnt davon kotzen.
aber eine alternative zum windows und linux wär schon geil... ^^

6.862 Beiträge seit 2003
vor 17 Jahren

Hmm, Konzepte für alternative Systeme gibts viel, nen interessantes Projekt was ich damals gern verfolgt hab ist hydrixos. Aber wie bei vielen Hobbyprojekten ist das wohl auch eingeschlafen, obwol die Konzepte dahinter interessant waren.

Aber angenommen irgend ein Hobbyentwicklerteam bekommt die Ressourcen zusammen um ein einigermaßen anständiges OS zu schustern, es kann noch so gut sein, es wird untergehen...

Man muss sich nur mal überlegen was für Systeme heutzutage genutzt werden im Großteil der Computeranwendungen: Entweder Windows oder irgendwelche unixbasierte Systeme(Linux, MacOS und was weiß ich nicht alles) - damit deckt man dann bestimmt schon über 90 % der Desktop und Server Rechner ab. Okay, hinzu kommen ein paar Spezialsysteme für von mir aus µController wo dann irgend nen OSEK läuft oder so. Aber das wars dann auch bald schon. Es gäbe einfach keine Softwarebasis für ein neues Betriebssystem, außer es bietet bekannte Schnittstellen an, nur dann wirds ja wieder gezwungen in Richtung schon vorhanderen OSses.

Von daher gehe ich aus das in Zukunft auch weiterhin Betriebssysteme auf Basis der altbekannten vorherschen werden und bahnbrechende Neuerungen nicht rein kommen, sondern die sich langsam entwickeln.

Baka wa shinanakya naoranai.

Mein XING Profil.

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo talla,

Aber angenommen irgend ein Hobbyentwicklerteam bekommt die Ressourcen zusammen um ein einigermaßen anständiges OS zu schustern, es kann noch so gut sein, es wird untergehen...

naja, Linus Torvalds hat es geschafft, dass sein "einigermaßen anständiges OS" nicht untergegangen ist. 🙂 Oder meinst du mit deiner Aussage, dass das heute nicht mehr zu wiederholen wäre?

herbivore

6.862 Beiträge seit 2003
vor 17 Jahren

Jup, denke nicht dass man das wiederholen könnte. "Es waren andere Zeiten" hört sich auf den ersten Blick vielleicht einfach blöd an, aber es ist wirklich so. Heute ist die ganze IT Industrie viel breiter, komplexer geworden, viel mehr Menschen sind dort beschäftigt und involviert. Damals gings ja darum nen freies Unix zu schaffen und zu der Zeit hat man sich nunmal mehr mit der Konsole beschäftigt als mit irgendwelchen GUIs, und da waren Programme lange nicht so komplex wie heute. Außerdem konnte sich Linux dann mit den GNU Tools ne Menge Software holen, fertige Software die nicht mehr entwickelt werden musste. Das wäre bei nem neuen System das sich nicht an die vorhandenen anlehnen möchte, nicht der Fall.

Okay, es kann natürlich passieren das irgendeine Entwicklergruppe ein OS schreibt das für irgend nen spezifischen Markt besser ist als vorhandene. Aber wo soll der Markt sein? Im Desktopmarkt hat Windows die Oberhand, da versucht sich Linux schon seit Jahren nen paar Pozente abzuknabbern und wirklich funktionieren tuts nicht. Grafik, Sound etc. -> MAC. Server -> Windows/Unix Derivate. Usw. Da ist kaum Platz für nen neues System sich durchzusetzen, selbst wenns gut ist. Es reicht nicht wenn es nen paar hundert Entwicklern gefällt. Es muss der großen Masse gefallen und das tut kein System wodrauf die gewohnte Software nicht läuft. Das ist nen Teufelskreis.

Baka wa shinanakya naoranai.

Mein XING Profil.

35 Beiträge seit 2006
vor 17 Jahren

Heutzutage haben die meisten Menschen keine Lust etwas anderes kennen zu lernen als Windows. Das ist ein Teil der Menschen: Neues wird sehr schwer angenommen obwohl es womöglich vieles besser machen würde.

Gelöschter Account
vor 17 Jahren

geil wäre ein os das den linux kernel und windows miteinander verbindet...

quasi das alle linux und windowsanwendungen drauf laufen würden..

1.549 Beiträge seit 2004
vor 17 Jahren

Und warum Wäre das soooo Geil?

was würde es Bringen?

Wir Arbeiten eigendlich nicht wir nehmen nur das geld

D
481 Beiträge seit 2005
vor 17 Jahren

Naja Linux und Windows zu verbinden hätte schon etwas. Ich denke da an zB die Stabilität von Linux und dazu die Benutzerfreundlichkeit von Windows bzw Spielemarkt. Jedoch nur realisierbar ist das ganz bestimmt nicht.

Dexter

Programmierer sind Maschinen die Koffein in Quellcode umsetzen.

B
1.529 Beiträge seit 2006
vor 17 Jahren

Möglich wäre das sicherlich schon (man denke nur an die Fähigkeit von NT POSIX-konforme Threads auszuführen).
Letzendlich stellt das OS aus Anwendungssicht nur ein paar Datentypen und ein API dar.
Man kann also durchaus ein OS programmieren, dass den Anwendungen verschiedene Systeme vorgaukelt.

Aber um wieder auf Singularity zurück zu kommen: der neue Ansatz für Singularity ist eigentlich der, dass es keine Nutzung der Hardware-Features zur Prozessisolation, Speichermanagement etc. gibt, sondern stattdessen alles in Software erledigt wird.
Da man dabei auf sämtliche Sicherheitsfeatures der CPU verzichten kann, spart man enorm viel Zeit (=Prozessortakte), vor allem beim Task-Switching.
Um trotzdem ein sicheres System zu erhalten, muss gewährleistet sein, dass kein Programm "illegalen" Maschinencode enthält. Und deshalb muss man sicherstellen, dass Programme ausschließlich von einem vertrauenswürdigen Compiler erzeugt werden.

Kurz gesagt: Singularity verschiebt die Ausführungssicherheit von der Laufzeit komplett zur Compile-Zeit.
Jetzt braucht man nur noch dem Compiler vertrauen, d.h. nur diese eine Komponente sehr, sehr, sehr, sehr,... gründlich testen, alle von ihm erzeugten Programme können nichts "böses" mehr anstellen.

Dies würde in der Praxis dann so laufen, dass Singularity einen (oder mehrere) vertrauenswürdige(n) System-Compiler enthält.
Ein Stück Software, dass laufen soll, würde immer entweder im Source oder in einer IL ausgeliefert werden (evtl. verschlüsselt und gehasht). Wenn der Admin dies nun gestattet (bzw. das Erteilen der Erlaubnis delegiert), wird die Software vom System-Compiler kompiliert. Das Kompilat kann anschließend keinen "bösen" Code enthalten.

Die Seite http://research.microsoft.com/os/singularity/ ist mit den ganzen Dokumenten sehr interessant zu lesen.

EDIT: spellcheck