Herdware schrieb:
@noxon
Das ist interessant. Ich lese diese Begrüdnung, mit der internen Version seit Vista bei NT6 zu bleiben, das erste mal.
So wurde das jedenfalls von Mark Russinovich gesagt.
Der war damals für die Kernelentwicklung von Windows verantwortlich, arbeitet jetzt aber am Azure Kernel und hat seit Win 7 nichts mehr mit der Windows Kernelentwicklung zu tun.
Außerdem, ist das wirklich nur eine Kernel-Versionnummer? Wenn das so ist, warum werden dann völlig "kernelfremde" Eigenschaften wie z.B. Aero Glass daran festgemacht?
Ich ging davon aus, dass das einfach die tatsächliche Versionsnummer des kompletten Betriebsystems (Windows NT) ist.
Da hast du schon recht. Etwas mit Kernel zu bezeichnen ist immer etwas schwierig, da jeder etwas anderes unter Kernel versteht.
Es ist vielmehr die Versionsnummer des Systems. Mit jedem Compiliervorgang ändert die sich, wenn du so willst auch wenn sich am Kernel nichts getan hat. Die Build Nummer ändert sich aber immer.
Die Major und Minor Nummern werden aber eigentlich hauptsächlich nur als Indikatoren für Entwickler genutzt, damit die wissen wie sie ein System zu identifizieren haben.
Einen wirklichen Zusammenhang mit dem Entwicklungsstand des Kernels gibt es da glaube ich schon lange nicht mehr.
yxterwd schrieb:
Quelle?
Die Anpassungen bei unsere Sowftware waren von XP auf Vista massiv. Bei der Umstellung von Vista auf 7 eher gering
Das glaube ich dir gerne. Beim Wechsel auf Vista wurde tatsächlich ein komplett neues Kernelkoonzept (MinWin-Kernel) eingeführt. Allerdings war nur ein sehr sehr geringer Teil davon implementiert. Die komplette implmentierung war erst in Windows 7 abgeschlossen.
Die großen Anpassungen in eurer Software hatte das aber bestimmt nicht zur Folge. Anwendersoftware hat ja mit dem Kernelspace nur sehr sehr selten etwas zu tun. Es sei denn ihr schreibt Gerätetreiber oder so etwas. Ansonsten dürften euch Änderungen am Kernel eigentlich gar nicht aufgefallen sein.
Die Ursachen für den massiven Anpassungsaufwand lagen wahrscheinlich hauptsächlich im neuen Sicherheitskonzept, das mit Vista eingeführt wurde. Das hatte auch zu der langen Entwicklungszeit beigetragen. Mitten in der Entwicklung von vista hat MS nämlich noch einmal alles über den Haufen geschmissen als eine Sicherheitsberaterin das Betriebssystem welches bis dahin nur eine Weiterentwicklung von XP war für völlig unsicher erklärt hat und darauf hin hat MS sich entschlossen das Sicherheitskonzept komplett neu zu entwerfen.
Das hat dann aber auch 2 Jahre länger gedauert als geplant und sehr viele inkompatibilitäten verursacht. Letztendlich ist Windows dadurch aber auch um einiges sicherer geworden.
Dadurch haben wir jetzt so schöne Features wie die Speicherverwürfelungstechnik ASLR, UAC, WIM, signierte Treiber und deutlich sicherere Dienste durch Session 0 Isolierung, Netzwerkzugriffbeschränkung und Rechteentzug.
Das Ganze wird natürlich von Version zu Version immer besser und das führt natürlich auch ab und zu immer wieder zu Inkompatibilitäten. Dienste sollten zum Beispiel keine Nutzeroberfächen haben. Dafür sind sie nicht gedacht und seit Windows 7 ist das auch nicht mehr möglich. Das ist eine weitere Verbesserung im Bereich Service Hardening. Leute die also GUIs in ihren Diensten verwendet haben waren mit Windows 7 auf einmal aufgeschmissen.
Aber zurück zum Kernel. Das der sich in Windows 7 stark geändert hat siehst du zum Beispiel auch daran, dass die kernel32.dll ihre Befehle nicht mehr wie sonst an die ntdll.dll weitergibt sondern an die neue kernelbase.dll. Die ntdll.dll gibt es aus Kompatibilitätsgründen zwar auch nicht, aber normalerweise läuft jetzt alles über die neue kernelbase.dll.
Die ntdll.dlll ist seit Jahren die zweitwichtigste Datei im System gewesen und die wurde mit Windows 7 abgelöst.
Microsofts Bemühung war es den Kernel so klein und kompakt wie möglich zu machen. Dann lassen sich sehr leicht Änderungen daran vornehmen ohne das man gleich das komplette Betriebssystem neu testen muss. Das ist nämlich der größte Aufwand den man beim Entwicklen betreiben muss. Das Testen des Systems.
Früher war es so, dass man nur eine kleine Änderung auf unterster Ebene durchführen musste und das pflanzte sich durch Abhängigkeiten gleich durch das ganze System fort, sodass man praktisch das ganze System wieder neu durchtesten musste. Alleine die Kompilierung von Windows dauert soweit ich mich erinnere über einen Tag und MS hat schon einen sehr leistungsstarken Rechner dort stehen.
Mit MinWin versucht man also die Entwicklungszyklen für das System zu reduzieren und Abhängigkeiten zwischen Kernel und dem Rest des Betriebssystems aufzulösen. Das das Konzept aufzugehen scheint, sieht man ja jetzt an dem Update und das diese ganze Entwicklung auf so etwas hinauslaufen sollte habe ich bereits vor ca. 3 Jahren einem Interview mit einem MS Mitarbeiter gehört.
Damals bestand der MinWin Kernel in Win 7 aus ca. 100 Dateien, 25MB on Disk und 40 MB im Ram wenn das System lief und man war noch nicht wirklich zufrieden mit dem Ergebnis. Man wollte das Ganze noch weiter verkleinern.
Wenn man bedenkt, dass der Kernel auch auf jedem System inklusive den Smartphones identisch ist, dann ist das aber auch nicht verwunderlich.
Quellen gibt es übrigens eine Menge. Ich kann sie dir leider nicht alle nennen.
Sie stammen alle irgendwo aus diesen Videos hier:
Channel 9
In diesen Videos wird es zwar nicht alles bestätigt, aber es dürfte ganz interessant sein, wenn man ein wenig über die diversen Kernel in Windows erfahren will.
Windows Server 2008 Kernel, MinWin vs ServerCore, HyperV
Inside Windows 7
Im Allgemeinen sind die Videos von Russinovich aber alle sehr interessant und auf jeden Fall immer sehr sehenswert.