[NEWS] Microsoft entwickelt neues "sicheres" OS - auf Basis von C#
-
Ich denke damit das jemand glaubt zuerst ein paar Links:
http://research.microsoft.com/os/singularity/
http://www.theinquirer.net/?article=27449So - wahrscheinlich noch mal lesen, damit man das auch wirklich glaubt.
Heute ist nicht der 1. April.
Darauf bin auch nur durch das tägliche blogsurfen gestossen: http://blog.fefe.de/?ts=bd958833
-
News schrieb:
So - wahrscheinlich noch mal lesen, damit man das auch wirklich glaubt.
Heute ist nicht der 1. April.
Was genau ist jetzt das unglaubliche daran? Dass die Sprache C# wirklich für was gut ist? Naja, lass sie mal forschen, interessant klingt es schon. Es liegt sowieso nahe, virtuelle Laufzeitumgebung und Betriebssystem zu vereinen (ein BS als Laufzeitumgebung, mit allen möglichen Sicherheitschecks und Kontrollen, darauf laufend nochmal eine virtuelle Laufzeitumgebung mit allen möglichen Sicherheitschecks wäre ja Verschwendung).
Ich finde diesen Schritt auch gar nicht so überraschend, vom Prinzip her war davon schon lange die Rede.
-
Optimizer schrieb:
News schrieb:
So - wahrscheinlich noch mal lesen, damit man das auch wirklich glaubt.
Heute ist nicht der 1. April.
Was genau ist jetzt das unglaubliche daran? Dass die Sprache C# wirklich für was gut ist?
Nicht C#, sondern ein "neuer" Nachfolger für Windows. Aber irgendwie gefällts mir!
-
Optimizer schrieb:
Es liegt sowieso nahe, virtuelle Laufzeitumgebung und Betriebssystem zu vereinen (ein BS als Laufzeitumgebung, mit allen möglichen Sicherheitschecks und Kontrollen, darauf laufend nochmal eine virtuelle Laufzeitumgebung mit allen möglichen Sicherheitschecks wäre ja Verschwendung).
Ich finde diesen Schritt auch gar nicht so überraschend, vom Prinzip her war davon schon lange die Rede.Müsste dadurch nicht auch ein guter Performanceschub erreicht werden können? Zur Zeit ist eine VM ja mehr oder weniger auf dem OS aufgesetzt. Wenn aber die VM das OS ist, dann müsste doch alles sehr schnell laufen. Denn viele VM Aufgaben decken sich mit denen eines OS, wie von Dir angemerkt.
Laut dem heutigen Artikel auf heise.de http://www.heise.de/newsticker/meldung/65804 wird die Performance um einiges steigen, in den manchen Punkten sogar Linux überholen. Nur halt RAM hungrig. Aber das ist heutzutage nahezu egal(sieht man an dem erfolg von Java und C#).
-
Ich denke auch, dass das die Performance (von .Net Programmen) steigern wird, weil im Grunde ein Layer mehr oder weniger komplett verschwindet. Ich denke auch, dass so ein System weniger RAM-hungrig sein wird, als für jedes Programm einen eigenen Prozess zu starten, der dann eine VM lädt, die dann das Programm ausführt... es gibt ja heute schon bei .Net das Konzept von Application Domains (die wohl den SIPs ähneln), die technisch nur eigene Threads sind, in der Praxis aber eigene Heaps haben und keinesfalls direkt kommunizieren dürfen, sondern nur über Sockets und andere Windows-Boardmittel, also keine AppDomain darf Objekte der anderen direkt referenzieren, usw. Ist natürlich wirklich wie zwei Programme, die aber im selben BS-Prozess laufen.
-
Diskussionen zum Thema Microsoft vs. Linux bitte in einem anderen Thread im nadrw Forum führen
-
@optimizer schrieb:
Optimizer schrieb:
Es liegt sowieso nahe, virtuelle Laufzeitumgebung und Betriebssystem zu vereinen (ein BS als Laufzeitumgebung, mit allen möglichen Sicherheitschecks und Kontrollen, darauf laufend nochmal eine virtuelle Laufzeitumgebung mit allen möglichen Sicherheitschecks wäre ja Verschwendung).
Ich finde diesen Schritt auch gar nicht so überraschend, vom Prinzip her war davon schon lange die Rede.Müsste dadurch nicht auch ein guter Performanceschub erreicht werden können? Zur Zeit ist eine VM ja mehr oder weniger auf dem OS aufgesetzt. Wenn aber die VM das OS ist, dann müsste doch alles sehr schnell laufen. Denn viele VM Aufgaben decken sich mit denen eines OS, wie von Dir angemerkt.
Die VM ist wie der Name schon sagt (VM = virtuelle Maschine) einfach eine virtuelle Maschine. Was bei Singularity wohl passiert, dass jedes Programm in einer VM eingesperrt wird. Der Unterschied zu bisher ist also, dass Programme immer in einer VM ausgeführt werden.
Laut dem heutigen Artikel auf heise.de http://www.heise.de/newsticker/meldung/65804 wird die Performance um einiges steigen, in den manchen Punkten sogar Linux überholen. Nur halt RAM hungrig. Aber das ist heutzutage nahezu egal(sieht man an dem erfolg von Java und C#).
in machen Punkten?! Der Artikel spricht vom starten einer Anwendung. Ansonsten kommt da natürlich wie bisher auch der normale Overhead der VM hinzu. => Performance verlust durch die VM bleibt der gleiche.
Wobei der Artikel natürlich die übliche heise Qualität aufweist: "Sichere Compiler wie C# und Java" etc.
-
kingruedi schrieb:
Was bei Singularity wohl passiert, dass jedes Programm in einer VM eingesperrt wird. Der Unterschied zu bisher ist also, dass Programme immer in einer VM ausgeführt werden.
Der Gedanke war halt, dass Checks, die normalerweise das BS und die VM machen, jetzt nur noch die VM macht. War jetzt aber nur ein Gedanke. Vielleicht liegen wir falsch. Ich weiß nicht hundertprozentig, wie
SIPs provide the strong isolation guarantees of OS processes (isolated object space, separate GCs, separate runtimes) without the overhead of hardware-enforced protection domains. In the current Singularity prototype SIPs are extremely cheap;
genau zu interpretieren ist. Allerdings ist
they run in ring 0 in the kernel’s address space.
etwas, was bisher nicht jeder Prozess von sich behaupten kann.
<Theorie>Die VM scheint hier, wie ein Treiber, keiner zusätzlichen Kontrolle und virtuellen Adressierung durch das BS mehr zu unterliegen, was den freien Raum für ihre eigene Kontrolle schafft und damit vielleicht insgesamt zu nicht mehr Gesamt-Overhead führt wie ein nativer Prozess im dritten Sicherheitsring hat.</Theorie>
-
Sprich die packen einfach die VM in Ring0. Sind die verrückt? Was erzählen die eigentlich von Sicherheit anstelle von Performance?
Sprich jeder Fehler in der VM legt den ganzen Computer lahm. Ein hängender SIP und der Rechner hängt.
Ich dachte an so etwas:
µKernel ---> VM(Programm)
Also geht es denen doch um Performance.
-
Also so wie ich das verstehe, soll der Kernel die VM sein. Also nur ganz ganz wenig Code für die Initialisierung der VM wahrscheinlich in ASM und ab diesem Punkt sollen dann schon die Kernel Dienste in der VM laufen.
Genau darum glaube ich, dass davon eine Sprache wie C# deutlich an Performance gewinnen wird - auch wenn die eigentliche Performance realistisch gesehen einem C Kernel ganz klar nachsteht wird.
-
@kingruedi soweit ich in dem windows file gelesen hab sieht die architekture so aus wie du sagst
ftp://ftp.research.microsoft.com/pub/tr/TR-2005-135.pdf
seite 7 ist die architecture
-
Hoffe ein Mod hält den Thread hier auch sauber vor unnötigen Diskussionen, die News hab ich auf anderen Seiten schon kommen und gehen sehen, weil die wieder gelöscht werden mussten, weil die ganzen Kommentare verschiedenster Art(meist unqualifizierte Aussagen von Fanatikern einer OS Ecke) keine weitere Diskussion zuließen.
Erstmal, Singularity wurde schon Ende August auf Channel9 vorgestellt in einem Video und es gibt auch schon von Ende 2004 eine Präsentation über das Projekt. Soviel erstmal zur Aktualität der News
.
Aber nun mal zur technisches Seite. Singularity ist ja ein reines Forschungsprojekt. Es ist der Versuch ein OS vollkommen in managed Code(sprich .Net Code) zu schreiben, was wohl auch prima gelungen ist. Der Channel9 Blog geht ziemlich auf die einzelnen technischen Details ein. Außer ein klein wenig Assembler für Interrupthandling auf LowLevel Ebene, ist ja das gesamte OS in C# geschrieben. Das ist schon ein gewaltiger technischer Fortschritt(gab ja wohl auch für Java Versuche, aber glaube MS hat als einzige die Manpower um das wirklich fertigzustellen und in zukünftige Produkte mal zu adoptieren).
Managed Code ist von Haus aus schon sicherer als normaler Code, schon das Sicherheitssystem vom .Net Framework ist sehr gut - Optimizer hat ja die AppDomains z.b. schon angesprochen. Bei Singularity gibts ja eine VM im ursprünglichen Sinne nicht mehr, da dort das OS ja selber die VM darstellt. Also verständlich dass das von der Performance nicht wirklich schlechter sein kann.
Also ich bin echt gespannt was die da in Zukunft noch so machen, bin ja eh begeisteter .Net Fan
Aber auch die anderen Projekte bei MS Research sind schon cool wenn man sich di mal durchschaut. Kenn selber einen der in Cambridge dort arbeitet, und der hat mal bissle über KI erzählt. Schon echt interessant.
-
kingruedi schrieb:
Sprich die packen einfach die VM in Ring0. Sind die verrückt? Was erzählen die eigentlich von Sicherheit anstelle von Performance?
Sprich jeder Fehler in der VM legt den ganzen Computer lahm. Ein hängender SIP und der Rechner hängt.
Ich dachte an so etwas:
µKernel ---> VM(Programm)
Also geht es denen doch um Performance.
Naja ein Treiber ist heute auch im Ring 0. Und einem ATI-Grafikkarten-Treiber traue ich fast noch weniger.
Wie der Ring 0 in Singularity aussieht, weiß ich zwar nicht, aber ich finde es z.B. sinnvoll, die Adress-checks zu entfernen. Ich kann für C#-Programme ohne unsafe code mit "Sicherheit" sagen, dass sie nicht versuchen werden, auf prozessfremden Speicher zuzugreifen, also warum jede Adressierung überprüfen?
µKernel ---> VM(Programm)
So dachte ich es auch, vielleicht habe ich irgendwo was anderes gesagt, wie ich meine?
-
-
Optimizer schrieb:
Naja ein Treiber ist heute auch im Ring 0. Und einem ATI-Grafikkarten-Treiber traue ich fast noch weniger.
Wie der Ring 0 in Singularity aussieht, weiß ich zwar nicht, aber ich finde es z.B. sinnvoll, die Adress-checks zu entfernen. Ich kann für C#-Programme ohne unsafe code mit "Sicherheit" sagen, dass sie nicht versuchen werden, auf prozessfremden Speicher zuzugreifen, also warum jede Adressierung überprüfen?
die agieren auf ring 0 wieso das den? Die haben ihren eigenen prozessor
-
mosta schrieb:
Optimizer schrieb:
Naja ein Treiber ist heute auch im Ring 0. Und einem ATI-Grafikkarten-Treiber traue ich fast noch weniger.
Wie der Ring 0 in Singularity aussieht, weiß ich zwar nicht, aber ich finde es z.B. sinnvoll, die Adress-checks zu entfernen. Ich kann für C#-Programme ohne unsafe code mit "Sicherheit" sagen, dass sie nicht versuchen werden, auf prozessfremden Speicher zuzugreifen, also warum jede Adressierung überprüfen?
die agieren auf ring 0 wieso das den? Die haben ihren eigenen prozessor
Na also die kommunizieren ja schon irgendwie auch noch mit dem Betriebssystem. Ist Ring 0 nicht der kernel mode?
Wikipedia schrieb:
Unter Windows ist ein Gerätetreiber eine Sammlung von Funktionen, die im Kernelmode laufen
-
Optimizer schrieb:
Naja ein Treiber ist heute auch im Ring 0. Und einem ATI-Grafikkarten-Treiber traue ich fast noch weniger.
Wie der Ring 0 in Singularity aussieht, weiß ich zwar nicht, aber ich finde es z.B. sinnvoll, die Adress-checks zu entfernen. Ich kann für C#-Programme ohne unsafe code mit "Sicherheit" sagen, dass sie nicht versuchen werden, auf prozessfremden Speicher zuzugreifen, also warum jede Adressierung überprüfen?
Natürlich ist das bisherige Treiber Konzept auch nicht gut gelungen. Die Archillesferse der meisten Betriebssysteme. Aber so etwas versucht man ja mit µKernel entgegen zu wirken. Treiber sollten auch nur im Usermode laufen. Bei neuen µKernel wird ja so viel wie möglich in den Usermode verlagert.
Singularity macht es anders, die verlagern alles in den Kernelmode. Ich halte das nicht für sinnvoll, da jeder kleine Fehler zu einem Systemfehler wird.
Die Addressierung wird doch eh von der Hardware geprüft. Ich denke eh, dass man den Ansatz wahrscheinlich durch die richtige hardware lösen sollte.
µKernel ---> VM(Programm)
So dachte ich es auch, vielleicht habe ich irgendwo was anderes gesagt, wie ich meine?
naja, der Pfeil sollte die Verschiebung auf die Usermode Ebene darstellen
-
aber was soll das verschieben in eine vm für vorteile bringen ausser mehr overhead . Das kann man doch auch mit threads realisieren. Nur hast du bei der thread lösung nicht jedesmal ne vm dazwischen die für mehr aufwand sorgt und an abstraktionsschichten fehlt es dem win doch nicht
-
Talla schrieb:
Also ich bin echt gespannt was die da in Zukunft noch so machen, bin ja eh begeisteter .Net Fan
Aber auch die anderen Projekte bei MS Research sind schon cool wenn man sich di mal durchschaut. Kenn selber einen der in Cambridge dort arbeitet, und der hat mal bissle über KI erzählt. Schon echt interessant.
kannste da mal was genaueres zu sagen weil KI Projekte ja meistens intressant sind;-)
-
mosta schrieb:
aber was soll das verschieben in eine vm für vorteile bringen ausser mehr overhead . Das kann man doch auch mit threads realisieren. Nur hast du bei der thread lösung nicht jedesmal ne vm dazwischen die für mehr aufwand sorgt und an abstraktionsschichten fehlt es dem win doch nicht
Die VM führt eben so etwas durch, wie Pointer Prüfung, Garbage Collection etc.