6 Stimmen

Sagen Sie mir noch einmal, warum wir sowohl .NET als auch Windows brauchen? Warum kann sich Windows nicht in die CLR verwandeln?

Genauso wie sich DOS in Windows verwandelt hat?

Es scheint, als ob wir am Ende drei Plattformen von Microsoft unterstützen und für sie entwickeln, und ich bin mir nicht sicher, wo die Grenzen liegen sollen.

Warum können die Vorteile der CLR (wie Typsicherheit, Speicherschutz usw.) nicht in Windows selbst integriert werden?

Oder in den Browser? Warum eine völlig andere virtuelle Maschine? (Mit wie vielen Ebenen der virtuellen Maschine haben wir es jetzt zu tun? Wir haben gerade Silverlight - und davor Flash - hinzugefügt, das innerhalb des Browsers läuft, der vielleicht innerhalb einer VM-Installation läuft...)

Ich kann rohes Windows für Server sehen, aber warum könnte es nicht eine CLR für Workstations geben, die direkt mit der Hardware spricht (oder zumindest nicht die ganze Windows-Legacy-Kugel und Kette)?

(ooppp - ich habe zwei Fragen hier. Zunächst einmal: Warum kann .net nicht in Windows integriert werden? Ich verstehe das mit der Abwärtskompatibilität - aber die Sicherheit von .NET könnte doch zumindest optional in Windows selbst sein, oder nicht? Es wäre nur ein weiterer Satz von vielen APIs).

Ich erinnere mich, dass eine der konkurrierenden Architekturen, die gegen MS-DOS auf dem IBM PC verkauft wurden, die UCSD-Pascal-Laufzeitumgebung war - eine VM.

12voto

John Rudy Punkte 36386

Und vergessen wir nicht, dass sich DOS nicht zu Windows entwickelt hat, zumindest nicht zu dem Windows, das wir heute kennen und lieben. DOS war das Betriebssystem, Windows 3.1 eine grafische Benutzeroberfläche, die auf diesem Betriebssystem aufbaute.

Als Windows 95 auf den Markt kam, gab es zwar kein verpacktes Produkt mit der Bezeichnung "Microsoft DOS" mehr, aber Windows 95 war architektonisch gesehen DOS 7.0 mit einer grafischen Benutzeroberfläche als Grundlage.

Dies setzte sich mit Win98 und WinME (auch bekannt als Win9X) fort.

Das Windows, das wir heute kennen (XP, Vista, 2003, 2008), hat seinen Kern aus dem Windows NT-Projekt, einem völlig eigenständigen Projekt. (Obwohl NT so konzipiert war, dass es mit 3.1 und später mit 9x-Binärdateien kompatibel war, und eine nahezu identische, aber erweiterte API verwendete).

DOS hat sich ebenso wenig in das uns bekannte Windows verwandelt wie der ursprüngliche Linux-Kern in KDE.

Die beiden APIs werden weiterhin nebeneinander existieren müssen, solange es Produkte gibt, die nativ für Windows entwickelt wurden und sich noch in einem Support-Zyklus befinden. In Anbetracht der Tatsache, dass die Windows-API noch in Windows Server 2008 und Windows 7 vorhanden ist, bedeutet das mindestens 2017. In Wahrheit wird es wahrscheinlich länger dauern, denn verwalteter Code ist zwar eine wunderbare Sache, aber nicht immer die beste Lösung.

Und ... Als Programmierer sollten Sie es besser wissen als jeder andere: Es ist nie so einfach, etwas zu tun, wie es von außen betrachtet erscheinen mag!

9voto

Daniel Earwicker Punkte 111630

Windows besteht aus mehreren Millionen Codezeilen, die meisten davon in C. Dies stellt eine enorme, jahrzehntelange Investition dar. Es wird ständig für die heutigen Benutzer gewartet (korrigiert). Es wäre völlig unmöglich, die Welt anzuhalten, während sie zehn Jahre lang jede Zeile in C# umschreiben und dann weitere zehn Jahre lang debuggen und optimieren, ohne ihr Geschäft völlig zu ruinieren.

Ein Teil des vorhandenen Codes könnte theoretisch so kompiliert werden, dass er in der CLR ausgeführt werden kann, doch würde dies keinen Nutzen bringen. Die Kompilierung einer großen Teilmenge von C in die CLR ist möglich (mit dem C++/CLI-Compiler), aber es aktiviert nicht automatisch die Garbage Collection, zum Beispiel. Um das zu erreichen, muss man von Grund auf neu entwerfen.

8voto

BobbyShaftoe Punkte 27949

Nun, zum einen ist die CLR kein Betriebssystem. Das ist ein ziemlich wichtiger Grund, warum nicht ... Ich meine, sogar das Forschungs-OS, Singularity, ist nicht nur die CLR. Ich denke, Sie sollten ein paar Bücher über den Windows-Kernel und allgemeine Betriebssysteme lesen.

6voto

BuddyJoe Punkte 67081

Davon ist Microsoft noch ein paar Windows-Versionen entfernt.
Aber sie würden mit etwas beginnen wie Singularität Glaube ich.

3voto

Dustin Getz Punkte 20462

Weil die Abwärtskompatibilität nicht mehr gegeben ist? und die Architektur der Mainstream-Chips nicht mit der VM-Architektur übereinstimmt? Sie hergestellte Hardware für eine Java-VM vor einer Weile, aber das hat niemanden interessiert.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X