Ein auf Linux basierendes System läuft im Regelfall stabiler. Seitdem ich Linux verwende, habe ich noch keinen Absturz erlebt oder ist hat eine hängende Anwendung das ganze System lahm gelegt.
Ich kann nachvollziehen, dass du Linux als das stabiliere System empfindest, die Kerne sind aber als solche erstmal beide gleich stabil. Stabilitätprobleme haben in 99% der Fälle ihre Ursache in Treiberbugs und da kommen die unterschiedlichen Entwicklungsmodelle ins Spiel.
Bei Linux ist es die Regel, dass Treiber in den Linux-Entwicklungszweig aufgenommen und dort von Experten gewartet und stets zusammen mit dem Kernel ausgeliefert werden. So ist garantiert, dass Treiber und Kernel aufeinander abgestimmt sind und das erhöht in der Tat die Stabilität des Systems, was natürlich gut ist. Dieses Modell hat aber auch seine Nachteile. Hersteller sind gezwungen ihre Treiber im vollem Source an die Kernelentwickler "abzugeben" oder sie müssen mangels fester ABI (im Gegensatz zu NT) einen verhältnismässig hohen Wartungsaufwand in Kauf nehmen und erhalten gleichzeitig keine Mainstream-Unterstützung für Ihr Gerät. Da aber viele Hersteller die Quellen ihrer Treiber nicht offenlegen wollen oder das aus lizenztechnischen Gründen nicht können, existieren für viele Geräte unter Linux keine oder nur generische und damit oft featureseitig unvollständige Treiber. In der Praxis äußert sich das z.B. so, dass auf der mittlerweile über 2 Jahre alten (standard) Hardware eines Kollegen unter Linux die hardwarebeschleunigte Wiedergabe von HD Material immer noch nicht funktioniert, während dies unter Windows (bei gleichzeit längerer Grundakkulaufzeit) von Anfang an kein Problem war.
Bei Windows gibt es diese Verzahnung zwischen OS und Treiber in der Form nicht. Jetzt ist Microsoft natürlich nicht blöd und hat erkannt, dass die Stabilitätsprobleme ihrer Platform durch schlechte Treiber verursacht wurden und hat deswegen die Windows Logo Tests eingeführt. Wenn bei der Installation eines Treibers erkannt wird, dass das Binary diesen Test nicht bestanden hat, erscheint für den Nutzer ein tiefroter Warndialog und eine Auslieferung des Treibers per Windows Update findet sowieso schonmal nicht statt. Da das für den Käufer eines Gerätes eine schlechte Erfahrung ist, wollen Hersteller das natürlich vermeiden, weshalb heutzutage praktische alle Treiber in einem Standard-PC durch die Treibertests in den Microsoft-Labors auf Herz und Nieren geprüft wurden. Microsoft gibt die Tools auch frei heraus, sodass Hersteller die Qualität ihrer Treiber schon im Vorfeld testen können. Darüber hinaus müssen unter 64bit Versionen Treiber signiert sein, was (neben der erhöhten Systemsicherheit) dem Nutzer ermöglicht, bei Fehlern sehr schnell mit dem Finger auf den verantwortlichen Hersteller zu zeigen. Diese Maßnahmen haben mit der Zeit dazu geführt, dass auch unter Windows die Treiberqualität und damit die Systemstabilität deutlich gestiegen ist.
Die Erfahrungen mit der Stabilität eines Systems hängen also in beiden Fällen immer auch stark mit der verwendeten Hardware und den damit kommenden Treibern zusammen. Meine Erfahrung und die aus meinem Umfeld ist z.B., dass spätestens seit Vista SP2 keine Blue Screens mehr vorgekommen sind, die nicht auf defekte Hardware (zuletzt defekter RAM), zurückzuführen waren. Natürlich bleibt Software immer Software und so wird es auf beiden Plattformen immer noch unentdeckte Bugs geben. Die Qualität hat sich aber insbesondere bei Windows deutlich verbessert und man darf sich hier auch nicht von veralteten Erfahrungen leiten lassen. Ein aktuelles Windows 7 steht in der Stabilität einem Linux in nichts nach. Das ist auch nicht verwunderlich, denn schließlich werden mittlerweile auch mit Windows Server (also dem gleichen OS mit anderen "Paketen" installiert) riesige Datacenters betrieben, wo man sich die Instabilität aus früheren Zeiten einfach nicht mehr leisten kann.
Was das Hängen von Applikation bzw. dem Desktop angeht, ist es in der Tat so, dass Linux dem Nutzer hier mehr Optionen in die Hand legt das Problem zu lösen (z.B. Wechsel von Grafikserver auf Konsole). Hier wäre eine Nachbesserung sicherlich nicht verkehrt. Auf der anderen Seite, ist der Grafikserver von Windows aufgrund seiner zentralen Stellung für die Benutzung des OS deutlich stabiler als z.B. der X-Server + 3D Erweiterungen. Darüberhinaus ist der Grafikserver unter Windows in der Lage selbst nach einem Absturz des Grafiktreibers ein Recovery durchzuführen. Unter Linux stürzen dabei gleich alle GUI-Anwendungen mit ab. Ein Test von einem Kollegen und mir hat auch Interessantes bei einer Fork-Bomb (die extremste Form den Rechner unbenutzbar zu machen) zu Tage gebracht. Während Linux dem Benutzer hier erstmal mehr Möglichkeiten zur Eindämmung in die Hand legt (Konsole, spezielle Tastenkombinationen, Limits) als Windows, spielte Windows sogar noch fleißig ruckelfrei Musik ab, während unter Linux nachdem es zu spät war nichtmal mehr der SSH Server (Serverdienst!) antwortete.
Des Weiteren bietet eine monolithische Struktur keinesfalls nur Nachteile und es ist fraglich, inwieweit ein Kernel die NT-Struktur wirklich braucht. Ich sehe dies eben weniger gegenteilig, da viele Dinge die du genannt hast, schlichtweg nicht benötigt werden. Simple ist hier eben besser und effektiver.
Ich gebe dir prinzipiell Recht, dass einfach und effizient oft in direktem Zusammenhang stehen. Aber auch hier ist es sinnvoll einmal etwas tiefer zu schauen. Der Speicherverbrauch ist, nachdem man auch bei Linux mit dem PageCache gemerkt hat, dass es eine gute Idee ist den RAM zum Cachen zu benutzen, ziemlich ähnlich. Hier ist Windows 7 auch schon deutlich effizienter als es Vista war und die Windows 8 Developer Preview kommt auf ein WorkingSet von gerade mal knapp über 300MB mit Metro-Oberfläche inkl. 3D Effekten und allem Schnickschnack. Ein anderer Punkt ist Performance. Da habe ich in der Tat schon gesehen, dass Linux eine leicht höhere IO Performance erreicht hat als Windows, was evt. dem komplexeren IO System von Windows oder den unterschiedlichen Dateisystemen geschuldet ist. Höhere Komplexität kann also schon zu Performance einbußen führen, geht aber oft gleichzeit mit größerer Mächtigkeit einher. So stellt Windows nunmal über das komplexere IO System die Möglichkeit zur Verfügung sich in jede beliebige IO auf jedem beliebigen Layer einzuklinken, ohne dass dafür wie unter Linux oft Kernelpatches nötig sind. Dadurch bleibt der Kernelcode sauber und das System insgesamt modularer und flexibler. Für eine derart komplexe Software wie ein Betriebssystem ist das extrem wichtig. Nicht umsonst hat Linus Torvalds schon selbst mehrere Male den Linuxkernel als bloated bezeichnet.
Ein letzter Punkt ist auch, dass man nicht von seinen eigenen Anwendungsszenarien auf die von anderen schließen darf. Ich z.B. benötige ständig die Features die mir das mächtigere Sicherheitskonzept von Windows bietet (ACLs, nested Groups, feingranulare Rechte über RWX hinaus, Vererbung...). Dafür bin ich gerne bereit ein paar Taktzyklen zu opfern, denn es bringt mir nichts, wenn ich ein bisschen effizienter laufe, aber ein Problem schlichtweg nicht lösen kann.
Es lohnt sich also in jedem Fall die Vor- und Nachteile der Systeme für die eigenen Anwendungsszenarien abzuwägen und eine Hassrede in die eine oder andere Richtung ist und bleibt oberflächlich.
Text zur Anzeige gekürzt. Gesamten Beitrag anzeigen »